|
|
  |
Оптимальные способы модуляции и кодирования для коротких пакетов |
|
|
|
Oct 27 2012, 11:55
|
Частый гость
 
Группа: Свой
Сообщений: 154
Регистрация: 5-01-05
Из: г. Зеленоград
Пользователь №: 1 817

|
Цитата(Serg76 @ Oct 27 2012, 15:21)  Я думал об этом, когда предлагал Вам сверточный турбокод. возьмите циркулярный сверточный код, тогда не будет никакого хвостовика, правда процедуру кодирования надо 2 раза проводить, но думаю это не будет проблемой. кроме того, можно поиграться с длиной кодового ограничения для нужной помехоустойчивости (в пределах разумного, конечно, потому как сложность декодирования растет по экспоненте в зависимости от длины кодового ограничения), ну и плюс к этому куча разных алгоритмов мягкого декодирования. Кодирование два раза проводить не надо, только декодирование. Время кодирования даже уменьшится. Навскидку, сверточный код со скоростью 1/2 и кодовым ограничением 9 будет достаточно простым и мощным. Все простые сверточные турбо-коды будут хуже и потянут за собой и всё остальное.
|
|
|
|
|
Oct 27 2012, 12:17
|
Профессионал
    
Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775

|
Цитата(Grumbler_2002 @ Oct 27 2012, 14:55)  Кодирование два раза проводить не надо, только декодирование. Время кодирования даже уменьшится. Навскидку, сверточный код со скоростью 1/2 и кодовым ограничением 9 будет достаточно простым и мощным. Все простые сверточные турбо-коды будут хуже и потянут за собой и всё остальное. именно кодирование, сначала для вычисления состояния регистра кодера, а затем для получения проверочной части. Цитата(Aner @ Oct 27 2012, 15:07)  пакеты то размером 5-7 байт, и все, ...какое ещё сверточный код ?! ну и что?
|
|
|
|
|
Oct 27 2012, 12:52
|
Знающий
   
Группа: Участник
Сообщений: 691
Регистрация: 24-05-07
Пользователь №: 27 945

|
Цитата(Grumbler_2002 @ Oct 27 2012, 14:55)  Кодирование два раза проводить не надо, только декодирование. Время кодирования даже уменьшится. Навскидку, сверточный код со скоростью 1/2 и кодовым ограничением 9 будет достаточно простым и мощным. Все простые сверточные турбо-коды будут хуже и потянут за собой и всё остальное. Мне казалось по эффективности с турбо-кодами может сравнится только LDPC. Цитата(Aner @ Oct 27 2012, 15:07)  пакеты то размером 5-7 байт, и все, ...какое ещё сверточный код ?! Значит после кодера будет 10-14, мне это устраивает. Где-то видел софт в котором можно в виде блок схемы строить тракт и моделировать прием/передачу. Кажется таких программ существует множество. Что порекомендуете?
|
|
|
|
|
Oct 27 2012, 12:56
|
Профессионал
    
Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775

|
Цитата(_Макс @ Oct 27 2012, 15:52)  Мне казалось по эффективности с турбо-кодами может сравнится только LDPC. для LDPC коротковато будет Цитата(_Макс @ Oct 27 2012, 15:52)  Где-то видел софт в котором можно в виде блок схемы строить тракт и моделировать прием/передачу. Кажется таких программ существует множество. Что порекомендуете? Matlab, наверное
|
|
|
|
|
Oct 27 2012, 14:49
|
Знающий
   
Группа: Участник
Сообщений: 691
Регистрация: 24-05-07
Пользователь №: 27 945

|
Цитата(Serg76 @ Oct 27 2012, 16:43)  Для QPSK пригоден режим класса "А" или "АВ", в то время как для CPM видов можно использовать режим класса "С", который энергетически более предпочтителен, но и обладает, соответственно, большим уровнем нелинейных искажений, прежде всего по интермодуляции. Я всеже склонен полагать, что великое множество усилителей для того же 802.11, например, работают в классе C. Привести вам даташиты в доказательство к сожалению не смогу т.к. класс обычно умалчивается производителем.
|
|
|
|
|
Oct 27 2012, 16:10
|

Гуру
     
Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463

|
QUOTE (_Макс @ Oct 27 2012, 16:13)  Голова для того, чтобы думать)) Это вы ошибаетесь, глубоко! Голова для того чтобы ею есть. Думаю, что полезно еще и знать, обладать современными знаниями, практикой, опытом, а не только думать. Ряд законов природы, технологические возможности (на этом тех этапе развития) не перепрыгнешь. А только загонишь себя в тупик разочарований, думательной головой.
|
|
|
|
|
Oct 27 2012, 20:40
|
Частый гость
 
Группа: Участник
Сообщений: 159
Регистрация: 4-12-08
Пользователь №: 42 200

|
Цитата(_Макс @ Oct 27 2012, 17:49)  Я всеже склонен полагать, что великое множество усилителей для того же 802.11, например, работают в классе C А как же E?
|
|
|
|
|
Oct 27 2012, 21:13
|
Частый гость
 
Группа: Свой
Сообщений: 154
Регистрация: 5-01-05
Из: г. Зеленоград
Пользователь №: 1 817

|
Цитата(Serg76 @ Oct 27 2012, 16:17)  именно кодирование, сначала для вычисления состояния регистра кодера, а затем для получения проверочной части. Вы что-то путаете. При кодировании первые К-1 бит образуют начальное состояние кодера. После кодирования бит с К-го по N-ый по текущему и начальному состоянию кодера выбираем из таблицы значение оставшихся К-1 бит. Кодируем этот остаток и получаем закольцованную решетку. Таким образом, время кодирования уменьшается на К-1 бит по сравнению с приведением кодера в фиксированное известное состояние. При декодировании обычно первые L бит, где L - глубина декодирования, декодируются дважды, чтобы получить последние L бит информации, пользуясь закольцованностью решетки. Таким образом, длина пакета ограничивается снизу глубиной декодирования, которая зависит от относительной скорости кода и кодового ограничения. Для 1/2 и К<=9 это обычно 4-6К, то есть примерно от 36 бит для предложенного кода. Есть и другие ограничения, но, как мне кажется, проще промоделировать и определиться, задавшись целевыми потерями.
|
|
|
|
|
Oct 27 2012, 22:10
|
Профессионал
    
Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775

|
Цитата(Grumbler_2002 @ Oct 28 2012, 00:13)  Вы что-то путаете. При кодировании первые К-1 бит образуют начальное состояние кодера. После кодирования бит с К-го по N-ый по текущему и начальному состоянию кодера выбираем из таблицы значение оставшихся К-1 бит. Кодируем этот остаток и получаем закольцованную решетку. Таким образом, время кодирования уменьшается на К-1 бит по сравнению с приведением кодера в фиксированное известное состояние.
При декодировании обычно первые L бит, где L - глубина декодирования, декодируются дважды, чтобы получить последние L бит информации, пользуясь закольцованностью решетки. Таким образом, длина пакета ограничивается снизу глубиной декодирования, которая зависит от относительной скорости кода и кодового ограничения. Для 1/2 и К<=9 это обычно 4-6К, то есть примерно от 36 бит для предложенного кода. Есть и другие ограничения, но, как мне кажется, проще промоделировать и определиться, задавшись целевыми потерями. да ничего я не путаю. напоминаю, что передача пакетная. для циркулярных сверточных кодов начальное и конечное состояния кодера совпадают, необходимо просто вычислить это правильное начальное состояние. это и делается в первом проходе кодирования при нулевом состоянии кодера и таблички, про которую Вы говорили. Теперь зная правильное начальное состояние, кодируем исходный пакет и получаем проверочную часть. В DVB-RCS делается так.
|
|
|
|
|
Oct 27 2012, 23:06
|
Частый гость
 
Группа: Свой
Сообщений: 154
Регистрация: 5-01-05
Из: г. Зеленоград
Пользователь №: 1 817

|
Цитата(Serg76 @ Oct 28 2012, 02:10)  да ничего я не путаю. напоминаю, что передача пакетная. для циркулярных сверточных кодов начальное и конечное состояния кодера совпадают, необходимо просто вычислить это правильное начальное состояние. это и делается в первом проходе кодирования при нулевом состоянии кодера и таблички, про которую Вы говорили. Теперь зная правильное начальное состояние, кодируем исходный пакет и получаем проверочную часть. В DVB-RCS делается так. Там же сверточный турбо-код, нет? Для него ситуация несколько сложнее, но и всё равно не требуется двух проходов, а только несколько больше полутора. Как кодируется обычный сверточный код за один проход - я написал. Подкину Вам материальчик, чтобы было понятнее.
|
|
|
|
|
Oct 28 2012, 07:47
|
Профессионал
    
Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775

|
Цитата(Grumbler_2002 @ Oct 28 2012, 02:06)  Там же сверточный турбо-код, нет? Для него ситуация несколько сложнее, но и всё равно не требуется двух проходов, а только несколько больше полутора. Как кодируется обычный сверточный код за один проход - я написал. Подкину Вам материальчик, чтобы было понятнее. Да, там сверточный турбокод, я о них изначально и говорил, правда он там двубинарный, но сути дела это не меняет. зачем что-нибудь выдумывать, открываем рекомендацию по DVB-RCS, где черным по белому написано как производится процедура кодирования, а именно в два этапа, как я и описывал. как там можно сделать полтора прохода, - я не знаю, но по этой рекомендации я делал кодек и все работает на живом сигнале. даташит прилагаю
en_301790v010501p.pdf ( 1.46 мегабайт )
Кол-во скачиваний: 918P.S. за доку спасибо, эта статья у меня есть.
Сообщение отредактировал Serg76 - Oct 28 2012, 07:49
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|