|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.04.2019, 09:56 | #1 |
Пользователь
Регистрация: 05.05.2015
Сообщений: 55
|
Декодер Витерби
Здравствуйте.
Написал декодер для сверточного кода памяти 2 и скорости 1/2 (5,7) на языке си. Руководитель поставил под сомнение правильность реализации. Поэтому прошу вас по возможности проверить. Проект https://yadi.sk/d/XJzfZkqWe3vlzw Сам пока не разобрался в двух моментах: 1. Нормализация метрик. В литературе приводится метод: "На каждом шаге декодирования значение наименьшей метрики пути сравнивается с порогом Т. Если Мmin > T, то величина Т вычитается из всех накопленных метрик." Можно ли на каждом шаге из всех метрик вычитать минимальную метрику? 2. Выбор из одинаковых метрик. Из литературы: "В этом случае можно просто бросить монетку." Не будет ли тогда ошибкой жесткий выбор (например, если М1 = М2, то всегда выбираем М1) ? Может, ещё что упустил. |
16.05.2019, 15:32 | #2 |
Пользователь
Регистрация: 05.05.2015
Сообщений: 55
|
Как правильно нормализовывать метрики?
Допустим, всегда передаются нули. Тогда метрика нулевого состояния декодера всегда будет равна нулю, а остальные метрики будут постоянно увеличиваться. И если вычитать минимальную метрику (т.е. ноль) из всех, то переполнения метрик не избежать. |
16.05.2019, 15:34 | #3 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,758
|
Так вы ж сами написали надо порог вычитать, а не мин. метрику.
|
16.05.2019, 15:58 | #4 |
Пользователь
Регистрация: 05.05.2015
Сообщений: 55
|
Если так, то наименьшая метрика = 0, и она никогда не превысит порог.
|
16.05.2019, 15:58 | #5 |
Пользователь
Регистрация: 05.05.2015
Сообщений: 55
|
Просто в инете встречается: либо сравнивать с порогом и вычитать порог, либо вычитать минимальную метрику. Но если возникла ситуация с нулём, то ни в том, ни в другом способе нормализация не происходит.
Последний раз редактировалось Programmer0; 16.05.2019 в 16:07. |
16.05.2019, 16:10 | #6 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,758
|
Что-то вы путаете. Кроме пороговой нормализации есть модулярная, но там метрики берутся по модулю 2*максимальную_разность_метрик.
И чем вас не устраивает 0? Это ж вроде значит, что вы нашли минимальный путь. |
16.05.2019, 16:50 | #7 |
Пользователь
Регистрация: 05.05.2015
Сообщений: 55
|
Если декодер работает в непрерывном режиме с обменом регистрами путей, то мне на каждой итерации декодирования надо вычислить метрики путей, входящих в каждое состояние(сложив метрику пути с расстоянием хэмминга перехода), и оставить выживший путь с наименьшей метрикой. Если на каком-то этапе произойдёт переполнение, то будет два пути с метрикой = 0, и можно выбрать не тот.
Последний раз редактировалось Programmer0; 16.05.2019 в 16:56. |
16.05.2019, 16:52 | #8 |
Пользователь
Регистрация: 05.05.2015
Сообщений: 55
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Кодер-Декодер | Katus | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 18.02.2012 03:21 |
Морзе декодер(с++) | jambas92 | Помощь студентам | 3 | 14.11.2010 11:32 |
Сравнение по витерби | Joker_kpi | Помощь студентам | 0 | 29.05.2010 21:00 |