Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Сверточный кодер-декодер


Автор: ViperYa 11.4.2012, 23:21
Всем доброго времени суток!
 Пишу дипломную работу на тему Сверточного кодирования, и соответственно декодирования данных.
 Кодер и декодер пишу на C#. Кодер как таковой готов, декодер по алгоритму Витерби тоже. С помехоустойчивостью пока не очень хорошо, но собираюсь попробовать использовать мягкое декодирование.. там посмотрим что получится.

 А вопрос состоит вот в чем: как лучше продемонстрировать работу кодера-декодера? В голове пока примитивные и не очень интересные варианты:
 1) Закодировать текст - зашумить - раскодировать
 2) То же самое, только с изображением..
 3) Отобразить на интерфейсе в виде решетчатой диаграммы процесс кодирования(и в особенности декодирования)

 Буду благодарен за все предложения, как по самой реализации кодирования(увеличение помехоустойчивости), так и по способу представления!

Автор: ksili 12.4.2012, 05:07
А ты как зашумлять собрался? 
Свёрточные вроде как хорошо борются с межсимвольной интерференцией. Есть смысл напустить на данные именно её (с разной величиной памяти канала), а потом типа победить её.

Добавлено через 7 минут и 40 секунд
По поводу повышения помехоустойчивости:

Добавлено через 11 минут и 38 секунд
"Хорошие" свёрточные коды могут быть найдены путём моделирования. Т.е. не придумано чёткой процедуры, что выбираем свёрточный код с такой то структурой и он будет иметь такие то свойства. Строят код, а потом проверяют насколько он хорош. Не знаю, можно ли в рамки дипломной работы уместить данное исследование. Скорее стоит исследовать и сравнить несколько конкретных свёрточных кодов (конечно не тех, какторые уже от начала до коца разжёваны в литературе).

Вообще для таких вопросов существует руководитель диплома. 

Автор: ViperYa 12.4.2012, 06:31
Зашумлять собрался простым случайным повреждением определенного числа битов кодовой последовательности.. Либо, когда сделаю мягкое декодирование - сложением с белым шумом..

Идея со сравнением сверточных кодов с разными параметрами достаточно хорошая.. Если как-то объединить с восстановлением данных, то что-то хорошее обрисовывается..
Цитата

Вообще для таких вопросов существует руководитель диплома. 

В нашем университете руководитель диплома - это просто формальность.. Он только дает направление, все остальное ты делаешь сам.. Никаких советов, никакой помощи
Основным  негласным "требованием" к дипломному проекту является его эффектность,  а не полезность или даже рабочесть.. А мне охота объединить хотя бы два из этих параметров)

Автор: ksili 12.4.2012, 06:38
Можешь посмотреть книгу М.Вернер "Основы кодирования". Там есть примеры свёрточных кодов и их работы в виде сетевых диаграмм (например в 21-битную последовательность вносится 5 ошибок и они исправляются). Если продемонстрировать динамически как работает такая диаграмма, как происходит восстановление данных, то может получиться эффектно. Книгу в сети можно найти в формате djvu.

Автор: ViperYa 12.4.2012, 06:55
Спасибо. Книга имеется, но именно в нее не заглядывал.. Сейчас посмотрю что там есть, т.к. 5 ошибок на 21 бит это очень впечатляет. 
У меня декодер Витерби исправляет со 100%-й вероятностью только 1-2 ошибки из 16 кодовых битов при скорости 1/2 и параметрах (7, 5)..

Автор: ksili 12.4.2012, 07:00
Я наверно немного преувеличил. Полезных (информационных) битов меньше. При кодировании они превращаются в 21 бит. Потом в них портится 5. В итоге декодер определяет правильный информационный вектор.

Добавлено через 2 минуты и 51 секунду
Кстати! я когда этот пример из книги разбирал по шагам (давно это было), я обнаружил ошибки (опечатки) в промежуточных состояниях декодера. Но результат всё равно верный - всё декодируется.

Автор: ViperYa 12.4.2012, 07:06
Нет-нет, все верно говоришь! Это весьма хороший результат - 23% испорченных данных.. Правда в книгах иногда берут кодовые последовательности и позиции ошибок такие, что исходные данные восстанавливаются очень легко, однако на других примерах всё получается гораздо плачевнее.. Ушел читать..

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)