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

|
Вопрос к специалистам по помехоустойчивому кодированию. Имеется свежеиспеченнная (мною) система с каскадным кодированием. Внешний код - Рида-Соломона с длиной блока 127, используется не только для коррекции ошибок, но и для отсеивания недекодируемых пакетов, т.е. вместо CRC. Внутренний - слабенький, 7-битные символы кодируются в символы с эквивалентной разрядностью где-то 9 бит, но зато декодируются по максимальному правдоподобию (демодулятор с мягким решением). Реализация программная. Вобщем, все по науке, работает неплохо, но...в некоторых применениях (внешняя аппаратура с тупыми протоколами типа запрос-ожидание ответа) слишком медленно. Понимаю, чудес не бывает, однако все же хотелось бы уменьшить задержку, не сильно теряя в помехоустойчивости. Что бы такое применить в качестве внешнего кода? Внутренний код (символы 7 бит) менять затруднительно, так что внешний сверточный с декодером Витерби отпадает... Заранее благодарен за советы.
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 19)
|
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, там полоса тоже от нуля, в статье как раз картинки со спектрами есть.
|
|
|
|
|
Feb 13 2009, 17:11
|
Профессионал
    
Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775

|
Цитата(kons @ Feb 13 2009, 19:53)  Почитал тут Кларка. Нет, это не алгоритм Чейза, а честный алгоритм максимального правдоподобия - принятый блочок всегда сравнивается со всеми возможными, благо их не так много. Читайте внимательнее с.160. Алгоритм Чейза это как раз и есть алгоритм максимального правдоподобия для последовательности. 2konsПо поводу турбокодов посмотрите на сайте AHA, круче их в этой области нет. Можно еще почитать у Скляра. Скажите какой вам нужен ЭВК, избыточность и длина блока, попробую подобрать код.
|
|
|
|
|
Feb 13 2009, 17:30
|
Профессионал
    
Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775

|
Цитата(kons @ Feb 13 2009, 20:14)  Алгоритм Чейза позволяет сравнивать последовательность не со всеми кодовыми словами, а с ограниченным набором слов-кандидатов. Поэтому он лишь приближается к идеальному алгоритму максимального правдоподобия. А последний состоит как раз в тупом сравнении со в с е м и словами. Да, действительно, вы правы, почему-то я был уверен, что метод 1 в алгоритме Чейза как раз и делает полный перебор всех возможных гипотез. Но в полном переборе и нет смысла, особенно если длина кодового слова большая. Я в своем декодере использовал метод 2, мне кажется наиболее оптимальный вариант, работает нормально.
|
|
|
|
|
Feb 17 2009, 17:38
|
Местный
  
Группа: Свой
Сообщений: 251
Регистрация: 26-07-05
Пользователь №: 7 117

|
Цитата(kons @ Feb 12 2009, 19:46)  хотелось бы уменьшить задержку, не сильно теряя в помехоустойчивости. Какая задержка вас устроит ?
|
|
|
|
|
Feb 17 2009, 18:56
|
Частый гость
 
Группа: Свой
Сообщений: 106
Регистрация: 28-09-05
Пользователь №: 9 035

|
Цитата Какая задержка вас устроит ? Ну, скажем, задержка в 3-5 байт максимум. И код - DC free.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|