|
Помехоустойчивый код с малой задержкой? |
|
|
|
Feb 12 2009, 16:46
|
Частый гость
 
Группа: Свой
Сообщений: 106
Регистрация: 28-09-05
Пользователь №: 9 035

|
Вопрос к специалистам по помехоустойчивому кодированию. Имеется свежеиспеченнная (мною) система с каскадным кодированием. Внешний код - Рида-Соломона с длиной блока 127, используется не только для коррекции ошибок, но и для отсеивания недекодируемых пакетов, т.е. вместо CRC. Внутренний - слабенький, 7-битные символы кодируются в символы с эквивалентной разрядностью где-то 9 бит, но зато декодируются по максимальному правдоподобию (демодулятор с мягким решением). Реализация программная. Вобщем, все по науке, работает неплохо, но...в некоторых применениях (внешняя аппаратура с тупыми протоколами типа запрос-ожидание ответа) слишком медленно. Понимаю, чудес не бывает, однако все же хотелось бы уменьшить задержку, не сильно теряя в помехоустойчивости. Что бы такое применить в качестве внешнего кода? Внутренний код (символы 7 бит) менять затруднительно, так что внешний сверточный с декодером Витерби отпадает... Заранее благодарен за советы.
|
|
|
|
|
Feb 12 2009, 17:57
|
Гуру
     
Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937

|
Цитата(kons @ Feb 12 2009, 20:44)  Спасибо, навели на мысли. В принципе, можно усилить внутренний код за счет отказа от внешнего. Получится хуже, но как опция low delay может быть, и сойдет... По поводу сверточного - в свое время думал, но что делать с постоянной составляющей? Я сверточных кодов с нулевым DC не нашел и придумать не сумел. А вообще - интересный вопрос: как соотносится помехоустойчивость сверточного и блочного кодов с равной избыточностью и при равной задержке в декодере? Получится лучше, усиление больше, если вам не требуется большого усиления то можно получить очень короткую задержку. Постоянную составляющую может можно другим способом убрать, например ипользуя модуляцию. Так всякие разные коды бывают, насколько я знаю самую короткую задержку при усилении порядка 6 Дб имеет решётчатая кодированная модуляция(TCM) она как раз на основе свёрточных кодов. Большее усиление можно получить с помощью блочных турбо кодов, но там и длина блока побольше будет. С меньшим усилением около 4.5 Дб есть код с длиной блока всего лишь 12 QPSK символов.
|
|
|
|
|
Feb 12 2009, 18:19
|
Профессионал
    
Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775

|
Цитата(kons @ Feb 12 2009, 20:44)  Спасибо, навели на мысли. В принципе, можно усилить внутренний код за счет отказа от внешнего. Получится хуже, но как опция low delay может быть, и сойдет... По поводу сверточного - в свое время думал, но что делать с постоянной составляющей? Я сверточных кодов с нулевым DC не нашел и придумать не сумел. А вообще - интересный вопрос: как соотносится помехоустойчивость сверточного и блочного кодов с равной избыточностью и при равной задержке в декодере? Сверточный по мощнее будет . К примеру расширенный код Голея (24,12) и все тот же НСК 1/2 (например, Intelsat (133,171) c K=7) имеют ЭВК 3,5 и 4 дБ при жестких алгоритмах декодирования при когерентной модуляции BPSK в канале AWGN. А если увеличить К то ЭВК будет еще больше. Цитата(petrov @ Feb 12 2009, 20:57)  ... С меньшим усилением около 4.5 Дб есть код с длиной блока всего лишь 12 QPSK символов. Наверное все тот-же расширенный Голей (24,12).
|
|
|
|
|
Feb 12 2009, 20:17
|
Частый гость
 
Группа: Свой
Сообщений: 106
Регистрация: 28-09-05
Пользователь №: 9 035

|
Цитата Получится лучше, усиление больше, если вам не требуется большого усиления то можно получить очень короткую задержку. Постоянную составляющую может можно другим способом убрать, например используя модуляцию. Лучше - вряд ли. В реальной жизни кроме AWGN еще и импульсные помехи бывают. А блочный код такие пачки очень неплохо давит, даже без перемежения. С модуляцией неохота связываться - полоса начинается всего-то от 100 Гц. Кстати, коды без DC - вообще темное дело, нашел по ним очень мало. Прикинул - можно использовать блочный внутренний код типа 8/13(эквивалентных). Не густо, но с мягким решением...надо сгенерить его и посчитать, что выйдет. За ссылку на 24D спасибо - штука очень интересная, хотя и не для данного применения. Цитата Я бы порекомендовал использовать в качестве внутреннего кода блоковый турбокод Возможно, я ошибаюсь, турбокоды смотрел крайне поверхностно, но так понял, что там длина блока нужна не маленькая + перемежение? Задержка, однако?
|
|
|
|
|
Feb 13 2009, 07:40
|
Частый гость
 
Группа: Свой
Сообщений: 106
Регистрация: 28-09-05
Пользователь №: 9 035

|
Цитата Кстати какой алгоритм с мягким решением используете для декодирования блоковых кодов, какой ЭВК получаете и какую разрядность квантователя в демодуляторе используете Алгоритм? Может, он как-нибудь красиво и называется, не знаю. По сути - просто поиск (перебором) кодового слова, находящегося на наименьшем евклидовом расстоянии от принятой последовательности отсчетов. Если еще построить таблицу опорных слов с учетом МСИ - декодер одновременно работает как простенький (+-1 отсчет) эквалайзер. Поскольку кодовых слов всего 128...256 - процессор не особо напрягается. Разрядность >12 бит, это непринципиально, но так вышло. На ARM что 4, что 32 бита - все одно... Цитата Турбокоды могут дать вам любую длину блока Как и любой блочный код. Весь вопрос - в помехоустойчивости при коротком блоке...Если не затруднит, киньте ссылочку на что-нибудь простенькое по турбокодам, желательно коротким.
|
|
|
|
|
Feb 13 2009, 08:18
|
Гуру
     
Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937

|
Цитата(kons @ Feb 12 2009, 23:17)  Лучше - вряд ли. В реальной жизни кроме AWGN еще и импульсные помехи бывают. А блочный код такие пачки очень неплохо давит, даже без перемежения. С модуляцией неохота связываться - полоса начинается всего-то от 100 Гц. Кстати, коды без DC - вообще темное дело, нашел по ним очень мало. Прикинул - можно использовать блочный внутренний код типа 8/13(эквивалентных). Не густо, но с мягким решением...надо сгенерить его и посчитать, что выйдет. За ссылку на 24D спасибо - штука очень интересная, хотя и не для данного применения. Обратите внимание что этот код и модуляция предлагались в качестве стандарта для 1000BASE-T Ethernet, там полоса тоже от нуля, в статье как раз картинки со спектрами есть.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|