Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Каскадный код и перемежитель
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
ikolmakov
Приветствую!
Я тут обнаружил что не могу грамотно объяснить почему перемежитель ставиться между кодером РС и сверточным кодером. Если рассуждать на пальцах, то понятнее если бы он стоял после сверточного кодера, что бы на приеме размазать выбитый пакет(ы) перед декодером Виттерби на одиночные битовые ошибки. Подскажите литературу, где это было бы подробно рассмотрено.
Serg76
Цитата(ikolmakov @ Sep 10 2011, 00:29) *
Приветствую!
Я тут обнаружил что не могу грамотно объяснить почему перемежитель ставиться между кодером РС и сверточным кодером. Если рассуждать на пальцах, то понятнее если бы он стоял после сверточного кодера, что бы на приеме размазать выбитый пакет(ы) перед декодером Виттерби на одиночные битовые ошибки. Подскажите литературу, где это было бы подробно рассмотрено.

Сверточный код обладает памятью, равной длине кодового ограничения, поэтому при достаточно высоком уровне ошибок в канале на выходе сверточного декодера ошибки будут носить пачечную структуру, с которой и призван бороться деперемежитель перед декодером РС. Этот каскадный код применяется в спутниковых каналах связи, структура которых близка к каналу с АБГШ, поэтому и ошибки в таком канале будут носить преимущественно одиночный характер, а посему и деперемежитель перед сверточным декодером не нужен.
brig01
Цитата(ikolmakov @ Sep 10 2011, 04:29) *
Приветствую!
Я тут обнаружил что не могу грамотно объяснить почему перемежитель ставиться между кодером РС и сверточным кодером. Если рассуждать на пальцах, то понятнее если бы он стоял после сверточного кодера, что бы на приеме размазать выбитый пакет(ы) перед декодером Виттерби на одиночные битовые ошибки. Подскажите литературу, где это было бы подробно рассмотрено.


Сверточный кодер не так чувствителен к груповой ошибке, как РС, собственно с чем борется "пережитель" . Кроме этого для перемежителя требуется цикловая синхронизация, выделение синхрогруппы проще сделать после того как часть ошибок исправлена Витерби.
Serg76
Цитата(brig01 @ Sep 15 2011, 08:32) *
Сверточный кодер не так чувствителен к груповой ошибке, как РС, собственно с чем борется "пережитель" .


Бред! При недостаточной корректирующей способности кода и достаточно большом уровне шума на входе декодера, сверточный декодер обладает эффектом размножения ошибок, который обусловлен структурой таких кодов, а именно наличием памяти. Т.е. даже неисправленная однократная ошибка может вызвать пакет ошибок на выходе декодера. Это ладно еще в алгоритме Витерби, но если взять алгоритм Фано (применяется для декодирования систематических сверточных кодов, так называемый алгоритм проб и ошибок) и подать на его вход групповую ошибку, то он вообще "заткнуться" может, образно говоря. Возьмите даже для примера обычный рекурентный скремблер, внесите одиночную ошибку в исходный поток и затем пропустите этот поток через скремблер и посмотрите, что будет на выходе.

А коды РС как раз и применяются для исправления блоков ошибок!

Цитата(brig01 @ Sep 15 2011, 08:32) *
Кроме этого для перемежителя требуется цикловая синхронизация, выделение синхрогруппы проще сделать после того как часть ошибок исправлена Витерби.


тоже ерунда. обычно нахождение и поддержание цикловой синхронизации не является большой проблемой даже при низком соотношении С/Ш на входе. У вас скорее сорвет демодулятор, чем фреймовую синхронизацию. Например, все в тех же турбокодах синхронизация остается работоспособной даже тогда, когда оптимальный декодер с мягким решением не способен уже исправлять ошибки.
brig01
Цитата(Serg76 @ Sep 15 2011, 23:48) *
Бред! При недостаточной корректирующей способности кода и достаточно большом уровне шума на входе декодера, сверточный декодер обладает эффектом размножения ошибок, который обусловлен структурой таких кодов, а именно наличием памяти. Т.е. даже неисправленная однократная ошибка может вызвать пакет ошибок на выходе декодера. Это ладно еще в алгоритме Витерби, но если взять алгоритм Фано (применяется для декодирования систематических сверточных кодов, так называемый алгоритм проб и ошибок) и подать на его вход групповую ошибку, то он вообще "заткнуться" может, образно говоря. Возьмите даже для примера обычный рекурентный скремблер, внесите одиночную ошибку в исходный поток и затем пропустите этот поток через скремблер и посмотрите, что будет на выходе.

А коды РС как раз и применяются для исправления блоков ошибок!



тоже ерунда. обычно нахождение и поддержание цикловой синхронизации не является большой проблемой даже при низком соотношении С/Ш на входе. У вас скорее сорвет демодулятор, чем фреймовую синхронизацию. Например, все в тех же турбокодах синхронизация остается работоспособной даже тогда, когда оптимальный декодер с мягким решением не способен уже исправлять ошибки.



Мы ж с вами понимаем что выделение цикловой синхронизации зависит от длины синхрогруппы и количества ошибок в РК, связка Витерби+РС исправляет ошибки 0.01(проверенно экспериментально для QAM256, есть протокол испытаний если интересно могу выслать) допустим длина синхрогруппы больше 128бит, к сожалению иногда меньше не сделаешь, при такой схеме построения кадра при малых С/Ш даже входа в синхронизм не будет.

Сверточный кодер, НЕ ТАК КАК Рида-Соломона, МЕНЕЕ чувствителен к групповой ошибке, косвенно мои слова подтверждают графики:

BER от SNR для Viterbi:

Нажмите для просмотра прикрепленного файла

BER от SNR для РС:

Нажмите для просмотра прикрепленного файла


PS. В Дальнейшем предлагаю больше оперировать фактами-графиками-ссылками, если в дискуссии этого не будет, значит и вступать в неё для себя я не вижу смысла.
Serg76
Цитата(brig01 @ Sep 16 2011, 14:08) *
допустим длина синхрогруппы больше 128бит, к сожалению иногда меньше не сделаешь, при такой схеме построения кадра при малых С/Ш даже входа в синхронизм не будет.


Еще раз говорю: ерунда полная. Сегодня специально проверил: в канале с вероятностью битовой ошибки 1е-2 (что соответствует примерно Eb/No=3 дБ, точнее не помню) декодер турбокода 16320 (R=7/8) на "ура" хватал фреймовую синхронизацию и стабильно ее удерживал. При этом длина самой синхронизации 32 бита. А этот код обеспечивает всего-навсего 1е-5 при соотношении Eb/No=4 дБ. А это значит, что при вероятности ошибки на входе 1е-2 этот декодер практически ничего исправлять не будет, хотя он реализован оптимально, с алгоритмом мягкого декодирования. Так что, как я и говорил, что даже в таком плохом канале блок синхронизации отрабатывает на отлично.

Цитата(brig01 @ Sep 16 2011, 14:08) *
Сверточный кодер, НЕ ТАК КАК Рида-Соломона, МЕНЕЕ чувствителен к групповой ошибке, косвенно мои слова подтверждают графики:

PS. В Дальнейшем предлагаю больше оперировать фактами-графиками-ссылками, если в дискуссии этого не будет, значит и вступать в неё для себя я не вижу смысла.

не зарывайтесь еще больше в дебри непонимания, вы не знаете о чем говорите. Эти графики здесь вообще не причем. Хотите фактов? Давайте обратимся к Кларку ("Кодирование с исправлением ошибок в системах цифровой связи", с.317). Надеюсь ему вы доверяете больше.
Цитирую: ... Ошибки на выходе декодера Витерби обычно группируются в пакеты, так что ошибки в последовательных символах кода РС будут некоррелированными. Однако степень корреляции на расстояниях, превышающих глубину декодирования, оказывается незначительной. Поскольку корреляция может вызвать ухудшение параметров декодера Витерби, следует применить перемежение. Это перемежение должно быть таким, чтобы никакие два символа на выходе декодера Витерби, расстояние между которыми меньше глубины декодирования, не принадлежали одному кодовому слову кода РС ...

Так что не надо фантазировать по поводу природы происхождения ошибок.

Еще к слову. Вы говорите, что сверточный декодер менее чувствителен к групповой ошибке, а значит менее подвержен ей. подскажите мне хоть одну систему передачи КВ диапазона (канал, для которого ошибка носит преимущественно пакетный характер), где перед сверточным декодером нет перемежителя? А ведь по-вашему получается, что он там и не нужен.
Grumbler_2002
Цитата(brig01 @ Sep 16 2011, 15:08) *
Сверточный кодер, НЕ ТАК КАК Рида-Соломона, МЕНЕЕ чувствителен к групповой ошибке, косвенно мои слова подтверждают графики:


Чтобы Вы не были так категоричны в своих суждениях, советую глянуть хотя бы Питерсона и Уэлдона, "Коды, исправляющие ошибки." Там есть раздел про пакетированные ошибки, как с ними справляется декодер Витерби и почему в таком канале при кодировании требуется перемежение после сверточного кода. Заодно уже и гляньте раздел про коды Рида-Соломона - будете приятно удивлены про их исправляющую способность вообще и про исправление пакетов ошибок в частности.

И раз уж Вы привели графики в защиту Вашего тезиса, то неплохо бы услышать и комментарии к ним - как Вы их понимаете.
brig01
Цитата(Grumbler_2002 @ Sep 17 2011, 03:31) *
Чтобы Вы не были так категоричны в своих суждениях, советую глянуть хотя бы Питерсона и Уэлдона, "Коды, исправляющие ошибки." Там есть раздел про пакетированные ошибки, как с ними справляется декодер Витерби и почему в таком канале при кодировании требуется перемежение после сверточного кода. Заодно уже и гляньте раздел про коды Рида-Соломона - будете приятно удивлены про их исправляющую способность вообще и про исправление пакетов ошибок в частности.

И раз уж Вы привели графики в защиту Вашего тезиса, то неплохо бы услышать и комментарии к ним - как Вы их понимаете.


Моя категоричность имеет под собой основу, у меня есть две корки декодеров свёрточный Витерби(мягкое решение) и Р-С, корки от фирмы "Alt...", когда я добавлял

коррелированную ошибку к закодированному слову то на выходе декодера Витерби BER был меньше. Кодовые скорости были подобранны так что SNRв=SNRrs при BER=10^-6. В данным момент собираю макет в симуляторе и буду

смотреть для разных интервалов корреляции, позже напишу отчёт.

Комментарий к графикам очень прост, у BER(SNR) Витерби крутизна меньше чем у Р-С, т.е и при скачке BER на входе декодера, BER на выходе нарастает помедленнее.

За книжку спасибо, где в книжке рассматривается алгоритм Витерби с мягким решением?
Serg76
Цитата(brig01 @ Sep 18 2011, 16:40) *
Комментарий к графикам очень прост, у BER(SNR) Витерби крутизна меньше чем у Р-С, т.е и при скачке BER на входе декодера, BER на выходе нарастает помедленнее.

Очуметь можно с такого разъяснения. Как все просто в этом мире оказывается. простота - не грех, как говорится.
2 Grumbler_2002 Вас устраивает такое объяснение?

Цитата(brig01 @ Sep 18 2011, 16:40) *
За книжку спасибо, где в книжке рассматривается алгоритм Витерби с мягким решением?

Да загляните в любую книжку по кодированию и в каждой найдете описание этого алгоритма. Отличие мягкого алгоритма от жесткого будет
заключаться только в расчете метрик. В жестком декодере это метрика Хемминга, в мягком - Эвклида (теорему Пифагора, надеюсь, помните),
что тут может быть сложного?
Grumbler_2002
Цитата(brig01 @ Sep 18 2011, 17:40) *
Комментарий к графикам очень прост, у BER(SNR) Витерби крутизна меньше чем у Р-С, т.е и при скачке BER на входе декодера, BER на выходе нарастает помедленнее.


Мы еще говорим про пакетированные ошибки? Расскажите, как их исправление связано, по Вашему мнению, с крутизной наклона кривой BER. В качестве примера можете взять CTC и TPC и обосновать их исправляющую способность по отношению к пакетированным ошибкам.

Вообще, моделька - это, конечно, хорошо, когда знаешь, что делаешь и получаешь.
brig01
Цитата(Grumbler_2002 @ Sep 20 2011, 03:58) *
Мы еще говорим про пакетированные ошибки? Расскажите, как их исправление связано, по Вашему мнению, с крутизной наклона кривой BER. В качестве примера можете взять CTC и TPC и обосновать их исправляющую способность по отношению к пакетированным ошибкам.

Вообще, моделька - это, конечно, хорошо, когда знаешь, что делаешь и получаешь.


Что для вас есть пакетированная ошибка? Какое у неё распределение? и какими кореляционными свойствами эта ошибка обладает?, может у нас

трудности с терминологией?. Спасибо за предложения но всё таки я остановлюсь на декодере свёрточном Витерби(мягкое решения) и Р-С, мы ж по

поводу них дискутируем.

"Вообще, моделька - это, конечно, хорошо, когда знаешь, что делаешь и получаешь." - подпишусь под каждым словом.

Болтологией можно заниматься долго, лучше раз увидеть чем сто раз мозг клевать. biggrin.gif

Ведь согласитесь что глупо отказываться от своих наблюдений и собственного опыта) тем более что можно очень легко на реализациях
посмотреть что есть на самом деле sm.gif
andyp
Цитата
Приветствую!
Я тут обнаружил что не могу грамотно объяснить почему перемежитель ставиться между кодером РС и сверточным кодером. Если рассуждать на пальцах, то понятнее если бы он стоял после сверточного кодера, что бы на приеме размазать выбитый пакет(ы) перед декодером Виттерби на одиночные битовые ошибки. Подскажите литературу, где это было бы подробно рассмотрено.


Ответ прост - чтобы размазать пакетные ошибки на выходе сверточного декодера по нескольким блокам Рида-Соломона. В этом случае пакеты ошибочных байт, появившиеся на выходе сверточного декодера например из-за замираний сигнала равномерно распределяются между несколькими блоками Рида-Соломона и успешно исправляются (исправляющей способности РС должно хватать, чтобы исправить среднее, а не пиковое количество ошибок). Этот перемежитель всегда работает по байтам.
Gold777
Цитата(brig01 @ Sep 15 2011, 08:32) *
Сверточный кодер не так чувствителен к груповой ошибке, как РС, собственно с чем борется "пережитель" . Кроме этого для перемежителя требуется цикловая синхронизация, выделение синхрогруппы проще сделать после того как часть ошибок исправлена Витерби.

Насколько мне известно РС как раз наоборот предназначен для исправления групповых ошибок
Dmitry-alt
Цитата(Gold777 @ Dec 13 2011, 19:16) *
Насколько мне известно РС как раз наоборот предназначен для исправления групповых ошибок


Групповых то групповых, но перемежение позволяет распределить один пакет ошибок который
РС не сможет исправить в одном блоке на несколько блоков, в каждом из которых исправление
будет успешным.

Лично проверял этот эффект в процессе разработки модулятора.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.