|
Декодер Витерби, Программная реализация на C под ARM |
|
|
|
 |
Ответов
|
Jan 23 2014, 21:03
|
ʕʘ̅͜ʘ̅ʔ
    
Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691

|
С точки зрения быстродействия при программной реализации обмен будет быстрее, чем обратный проход:
На каждом шаге декодирования для каждого пути вам нужно будет сделать ACS и после поместить результат (метрику пути и обновленную историю пути) в другой массив. Одновременно с этим обновлять максимально правдоподобную путевую метрику и индекс массива, ей соответствующий.
В конце выбрать историю пути по получившемуся индексу и оттуда с нужной глубины взять информационный бит.
Очень быстро.
Что касается объема памяти:
Для указанного кода при 4-х битовых входных (реберных) метриках будет достаточно 11 бит для путевых метрик (при любой схеме нормализации). При 5 входных битах достаточно 12 бит для путевых метрик и т.д. Буду считать, что с разрядностью ваших входных метрик вы уложитесь в 16 бит для путевых.
Если при кодировании не используется выкалывание, то длина памяти путей должна быть > 5*7 т.е. > 35. Если используется, то память путей глубже. Буду считать, что не используется.
Итого для программной реализации схемы с обменом вам нужно
uint64_t path_history[2][64]; uint16_t path_metric[2][64];
Вы можете оценить, как ухудшится корректирующая способность декодера (зависимость Pош на выходе декодера от входного SNR) если укоротить память путей до 32. Если для вас это приемлемо (думаю, что да), то ресурсы будут такими:
uint32_t path_history[2][64]; uint16_t path_metric[2][64];
Скорость в этом случае тоже возрастет для целевой платформы ARM, т.к. при работе с памятью путей операции (чтение, сдвиг и запись) выплолняются со словами с нативной разрядностью.
Подробнее: Морелос-Сарагоса Р. Искусство помехоустойчивого кодирования. Методы, алгоритмы, применение / пер. с англ. В. Б. Афанасьева. — М.: Техносфера, 2006. — 320 с. — (Мир связи). — 2000 экз. — ISBN 5-94836-035-0
|
|
|
|
|
Jan 24 2014, 15:51
|
Знающий
   
Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748

|
Спасибо большое за столь исчерпывающий ответ. Я как раз по книге Морелоса-Сарагосы и реализовывал, скачав пример с его сайта (http://the-art-of-ecc.com/5_Convolutional/index.html). Лишнее убрал, что-то оптимизировал. Про прочтении книги меня смутила фраза про слишком большие затраты на чтение и запись путей, что существенно уменьшает быстродействие. Видимо, это относится к реализации на ПЛИС. Я использовал для хранения путей двумерные массивы размером 64*5 типа CHAR. В 5 байт запаковывал 40 бит, что чуть больше рекомендуемой длины. Примимаемые сигналы - спутниковые навигационные, поэтому может быть достаточно низкое отношение C/Ш. Из-за этого не взял 32 бита. В общем в понедельник в MATLAB промоделирую такую ситуацию, возможно, что не сильно снизится помехоустойчивость. 64 бита брать не хотелось опять из-за всё той же экономии памяти. В системе несколько десятков структур декодеров. С нормализацией надо будет аккуратно разобраться. Дело в том, что на вход декодера поступают 16-битные значения. Это из-за того, что такая разрядность приходит из коррелятора. Были попытки перейти на 8-битное или 4-битное представление данных, путем усечения младших разрядов. Не вышло. С/Ш сигнала может быть в очень широком диапазоне, поэтому нужно постоянно его измерять, чтобы понять, на сколько бит можно произвести усечение.
|
|
|
|
Сообщений в этой теме
Grizzzly Декодер Витерби Dec 26 2013, 16:02 andyp Цитата(Grizzzly @ Dec 26 2013, 20:02) Нео... Dec 26 2013, 16:21 Grizzzly Спасибо Вам большое. Да, поток непрерывный.
Цитата... Dec 26 2013, 16:50 thermit ЦитатаGrizzzly:
А почему из состояния с максимальн... Dec 26 2013, 17:57 andyp Цитата(thermit @ Dec 26 2013, 21:57) Смот... Dec 26 2013, 18:12  Grizzzly Цитата(andyp @ Dec 26 2013, 22:12) +1. Та... Dec 26 2013, 18:58   Fat Robot Ваши затраты памяти я оставлю без комментариев, ес... Jan 24 2014, 16:08    Grizzzly Цитата(Fat Robot @ Jan 24 2014, 20:08) Пр... Jan 24 2014, 16:36     Fat Robot Про память: я не пытался понять ваших выкладок.
... Jan 24 2014, 16:47      Grizzzly Цитата(Fat Robot @ Jan 24 2014, 20:47) По... Jan 24 2014, 17:40       Fat Robot В теории вам нужно бы иметь оценку отношения сигна... Jan 24 2014, 18:46        Grizzzly Угу, думал про поддиапазоны SNR, но решил не замор... Jan 25 2014, 07:06 Grizzzly И тогда уж, наверное, последний вопрос. Вернее, пр... Jan 25 2014, 12:59 Fat Robot Конечно, с точки зрения оптимизации вычислительных... Jan 25 2014, 16:04  Grizzzly Спасибо, уже смотрю. Jan 25 2014, 16:31
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|