Michael358 0 18 апреля, 2019 Опубликовано 18 апреля, 2019 · Жалоба Здравствуйте. Написал декодер для сверточного кода памяти 2 и скорости 1/2 (5,7) на языке си. Руководитель поставил под сомнение правильность реализации. Поэтому прошу вас по возможности проверить. Сам пока не разобрался в двух моментах: 1. Нормализация метрик. В литературе приводится метод: "На каждом шаге декодирования значение наименьшей метрики пути сравнивается с порогом Т. Если Мmin > T, то величина Т вычитается из всех накопленных метрик." Можно ли на каждом шаге из всех метрик вычитать минимальную метрику? 2. Выбор из одинаковых метрик. Из литературы: "В этом случае можно просто бросить монетку." Не будет ли тогда ошибкой жесткий выбор (например, если М1 = М2, то всегда выбираем М1) ? Может, ещё что упустил. Viterbi.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
coding4dsp 0 18 апреля, 2019 Опубликовано 18 апреля, 2019 · Жалоба 50 минут назад, Michael358 сказал: Руководитель поставил под сомнение правильность реализации. BER не понравился? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Michael358 0 18 апреля, 2019 Опубликовано 18 апреля, 2019 · Жалоба 6 minutes ago, coding4dsp said: BER не понравился? Да. Кстати, сказал расписать исправляющую способность декодера (какие комбинации ошибочных бит исправляет). С этим тоже пока не могу разобраться. Из литературы: "минимальное расстояние между всеми путями решётки, называемое иногда свободным расстоянием кода, в данном случае равно 5. Это означает, что любая пара ошибок может быть исправлена..." А в каком промежутке(2 ошибки на сколько бит)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
coding4dsp 0 18 апреля, 2019 Опубликовано 18 апреля, 2019 · Жалоба А вам BER нравится? Сравнивали с эталоном из матлабовского bertool, например? Методом нормализации целочисленных метрик много: вычитание на каждом шаге минимальной, по модулю-2 и пр. Без нормальзации метрик BER становится правильным? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Michael358 0 18 апреля, 2019 Опубликовано 18 апреля, 2019 · Жалоба 18 minutes ago, coding4dsp said: А вам BER нравится? Сравнивали с эталоном из матлабовского bertool, например? Методом нормализации целочисленных метрик много: вычитание на каждом шаге минимальной, по модулю-2 и пр. Без нормальзации метрик BER становится правильным? Не сравнивал. С матлабом дел не имел. Не могу разобраться, как оценить BER своего декодера. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
coding4dsp 0 18 апреля, 2019 Опубликовано 18 апреля, 2019 · Жалоба 8 минут назад, Michael358 сказал: Не сравнивал. С матлабом дел не имел. Не могу разобраться, как оценить BER своего декодера. https://www.mathworks.com/help/comm/ug/estimate-ber-for-hard-and-soft-decision-viterbi-decoding.html Качайте, матлаб! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Michael358 0 18 апреля, 2019 Опубликовано 18 апреля, 2019 · Жалоба 5 minutes ago, coding4dsp said: https://www.mathworks.com/help/comm/ug/estimate-ber-for-hard-and-soft-decision-viterbi-decoding.html Качайте, матлаб! Придётся. Спасибо. А как правильно оценить работу своего декодера(с чем сравнивать матлабовские результаты)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
coding4dsp 0 18 апреля, 2019 Опубликовано 18 апреля, 2019 · Жалоба По bit error ratio (BER). Если ваш декодер правильно реализован, то графики BER совпадут с матлабовскими. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Michael358 0 18 апреля, 2019 Опубликовано 18 апреля, 2019 · Жалоба 8 minutes ago, coding4dsp said: По bit error ratio (BER). Если ваш декодер правильно реализован, то графики BER совпадут с матлабовскими. Т.е. сообразить функцию моделирования шума для своего декодера и посчитать количество ошибок? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
coding4dsp 0 18 апреля, 2019 Опубликовано 18 апреля, 2019 · Жалоба В первую очередь рассматривают АБГШ канал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Michael358 0 16 мая, 2019 Опубликовано 16 мая, 2019 · Жалоба Не разберусь, как правильно нормализовывать метрики. Допустим, всегда передаются нули. Тогда метрика нулевого состояния декодера всегда будет равна нулю, а остальные метрики будут постоянно увеличиваться. И если вычитать минимальную метрику (т.е. ноль) из всех, то переполнения метрик не избежать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petrov 7 16 мая, 2019 Опубликовано 16 мая, 2019 · Жалоба Michael358 Не разберусь, как правильно нормализовывать метрики. Допустим, всегда передаются нули. Тогда метрика нулевого состояния декодера всегда будет равна нулю, а остальные метрики будут постоянно увеличиваться. И если вычитать минимальную метрику (т.е. ноль) из всех, то переполнения метрик не избежать. Можно накапливать метрики путей с коэффициентом меньше, но близким к 1. Разница буквально такая же, как между интегратором и ФНЧ на постоянной составляющей, интегратор имеет бесконечный коэффициент передачи на нулевой частоте, ФНЧ конечный, и переполнений можно избежать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 16 мая, 2019 Опубликовано 16 мая, 2019 · Жалоба 2 hours ago, Michael358 said: Не разберусь, как правильно нормализовывать метрики. Допустим, всегда передаются нули. Тогда метрика нулевого состояния декодера всегда будет равна нулю, а остальные метрики будут постоянно увеличиваться. И если вычитать минимальную метрику (т.е. ноль) из всех, то переполнения метрик не избежать. вы теплое с мягким не путаете? выбираются наиболее вероятные метрики. Для жесткого кодера, это минимальная метрика, для мягкого максимальная. При этом всегда идет сравнение двух и выбор наиболее вероятной. У вас не будет подобной ситуации. ЗЫ. Вычитание минимальной это не для настоящих пацанов. Для настоящих пацанов модульная арифметика. Хотя на проце, вычитать наверное проще Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Michael358 0 16 мая, 2019 Опубликовано 16 мая, 2019 · Жалоба 2 hours ago, des00 said: вы теплое с мягким не путаете? выбираются наиболее вероятные метрики. Для жесткого кодера, это минимальная метрика, для мягкого максимальная. При этом всегда идет сравнение двух и выбор наиболее вероятной. У вас не будет подобной ситуации. Ну вот если передаются нули, то на каждом шаге декодирования в нулевое состояние приходит нулевой путь и путь с большей метрикой из другого состояния. Сначала выжившим будет выбираться нулевой путь, а метрики остальных состояний будут расти. Но когда метрика другого состояния переполнится, в этот момент в нулевое состояние придут два пути с метрикой = 0. И можно выбрать неправильный путь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 16 мая, 2019 Опубликовано 16 мая, 2019 · Жалоба 18 hours ago, Michael358 said: Ну вот если передаются нули, то на каждом шаге декодирования в нулевое состояние приходит нулевой путь и путь с большей метрикой из другого состояния. Сначала выжившим будет выбираться нулевой путь, а метрики остальных состояний будут расти. Но когда метрика другого состояния переполнится, в этот момент в нулевое состояние придут два пути с метрикой = 0. И можно выбрать неправильный путь. Вы руками решётку распишите на длину кодового ограничения. С чего она переполнится? У вас пути сольются, как кодовое ограничение будет, а потом останутся только пути с разницей на длинну кодового ограничения. В этом и есть идея витерби, отбрасывать наименее вероятные пути, в которых действительно, метрика, на жёстком решении, будет расти. Но они уже отброшены. Ручка, бумага и распишите решётки 3,5,7. Сами все увидите Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться