реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Декодер Витерби выдает пакетные ошибки, То ли лыжи не едут, то ли...
Muscat
сообщение Jul 7 2010, 06:02
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 277
Регистрация: 8-04-09
Из: Москва
Пользователь №: 47 382



Написал модель сверточного кодера/декодера Витерби.
Если ошибки отсутствуют, то декодирование происходит нормально - составляет решетку, выбирает оптимальные пути. При появлении ошибок в исходной последовательности начинает выдавать пакетные ошибки на выход

Это ошибки в канале


А это ошибки уже после декодера. Как видно появление одиночной ошибки не всегда вызывает пакетные, но часто приводит к тому, что следующая серия выходных бит оказывается ошибочной, и ошибки следуют до тех пор, пока не встретиться еще одна ошибка в канале. То есть визуально эффект похож на ошибку фазовой синхронизации в BPSK.


Я так понимаю, что ошибка кроется в механизме выбора выходного бита. На данный момент она организованна так - составляется матрица путей вида

1 2 3...1...4
2 1 3....2..4
1 2 2....3..4
1 2 3....1...4
И столбец метрики путей. (10 11 7 3)
Выбираем путь с минимальной метрикой - в нашем случае 3.
Значит принимаем за достоверный переход из 4 в 3, ему условно соответствует 1. Выдаем единицу на выход, из остальных метрик вычитаем тройку. Получаем новую матрицу, смещенную вправо на единицу. Повторяем операцию.

Что то здесь наверное неправильно? Как должен действовать механизм, определяющий что подать на выход?

Прикрепляю m.файлы в архиве

Прикрепленные файлы
Прикрепленный файл  Viterbi.7z ( 2.68 килобайт ) Кол-во скачиваний: 34
 


--------------------
Because it's there
Go to the top of the page
 
+Quote Post
petrov
сообщение Jul 7 2010, 08:29
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



По матрице путей надо на всю глубину обратно проходить чтобы переданный бит определить.
Go to the top of the page
 
+Quote Post
Muscat
сообщение Jul 7 2010, 08:54
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 277
Регистрация: 8-04-09
Из: Москва
Пользователь №: 47 382



Не понял

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

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

Сообщение отредактировал Muscat - Jul 7 2010, 08:56


--------------------
Because it's there
Go to the top of the page
 
+Quote Post
petrov
сообщение Jul 7 2010, 09:04
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Проход назад по матрице путей это ключевая обязательная операция. Нужно пройти по пути с минимальной метрикой через весь буфер обратно чтобы определить переданный бит.
Go to the top of the page
 
+Quote Post
Muscat
сообщение Jul 7 2010, 09:16
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 277
Регистрация: 8-04-09
Из: Москва
Пользователь №: 47 382



Если переданный бит определяется переходом, то зачем проходить через весь буфер, если искомый переход - последние 2 числа в строке буфера с минимальной метрикой?


--------------------
Because it's there
Go to the top of the page
 
+Quote Post
petrov
сообщение Jul 7 2010, 09:35
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(Muscat @ Jul 7 2010, 13:16) *
Если переданный бит определяется переходом, то зачем проходить через весь буфер, если искомый переход - последние 2 числа в строке буфера с минимальной метрикой?


Затем что обратный проход это и есть история переходов автомата максимально правдоподобно оценённая, cтрока никак не связана с тем куда выйдет путь с минимальной метрикой при обратном проходе.
Go to the top of the page
 
+Quote Post
Muscat
сообщение Jul 7 2010, 10:19
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 277
Регистрация: 8-04-09
Из: Москва
Пользователь №: 47 382



Наверное я плохо объяснил. В буфре у меня именно что пути и хранятся.

Ошибку кстати нашел, как обычно ей оказалась ошибка в индексе, которая вылезала при определенных условиях. Обнаружил выполняя переходы руками.
Декодер больше не размножает ошибки, данные согласуются с тем, что выдает bertool.
Буду разбираться с полиномиальным описанием и мягкими решениями

Кстати, посоветуйте какой нибудь хороший материал на русском? На английском читаю, но на русском все таки проще для понимания. Скляра читал.


--------------------
Because it's there
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 20:23
Рейтинг@Mail.ru


Страница сгенерированна за 0.01413 секунд с 7
ELECTRONIX ©2004-2016