Закажи экспресс-аудит своего дела онлайн всего за 199 ₽
и получи рекомендации по улучшению - Жми сюда !

Итеративное декодирование LDPC/турбо, полярные коды — разбираем на C++ и сравниваем с MATLAB

6a6f884a392b5053e7a03172425ad46e

Когда моделируешь помехоустойчивые коды, декодер обычно остаётся чёрным ящиком: пишешь ldpcDecode(llr, cfg, 30), comm.TurboDecoder или dvbs2ldpc(1/2) — и получаешь красивый «водопад» BER, не заглядывая внутрь. А самое интересное в современных кодах именно там: не в том, как закодировать, а в том, как декодер из зашумлённого сигнала достаёт правильные биты.

Первая часть заканчивалась предложением: «если интересно разобрать итеративное декодирование LDPC/турбо в деталях или полярные коды с последовательным отменением — пишите в комментариях». Написали — так что эта статья и есть ответ на запрос из комментариев. Читать первую часть необязательно: там мы прошли эволюцию кодов в сотовой связи от GSM до 5G по BER‑кривым в MATLAB, а всё нужное я напомню по ходу. Здесь — вскрываем сами декодеры.

Эта часть открывает ящик. Разберём три декодера, на которых держится всё современное кодирование:

belief propagation — итеративный обмен сообщениями по графу, ядро LDPC и всего 5G eMBB;

BCJR + итеративный обмен мнениями — то, что сделало турбо‑коды возможными;

successive cancellation — последовательное отменение в полярных кодах.

Чтобы видеть каждую строчку, MATLAB‑тулбокс не годится — он прячет алгоритм. Поэтому весь разбор идёт по коду небольшой библиотеки, которую я написал специально для этого — fec‑cpp: header‑only C++17, без единой внешней зависимости, только STL. Её можно прочитать целиком за вечер, и каждый декодер в ней — полсотни строк, которые делают ровно то, что написано в учебнике. Рядом с каждым разбором будет и MATLAB‑эквивалент — чтобы видеть контраст: одна строка тулбокса против явного алгоритма. А в конце — большое сравнение: прогоним обе реализации по одинаковым кодам и наложим их BER‑кривые на одни графики.

>>

Источник: habr.com

✅ Найденные теги: Ldpc, Декодирование, Итеративное, новости, Полярные, Турбо

Добавить комментарий

Новости других рубрик

Архив рубрики ~Лента новостей~: Полное руководство Anthropic по развитию навыков по методике Клода. Архив рубрики ~Лента новостей~: Apple делает ставку на то, что более дешевый ИИ привлечет небольших разработчиков. Архив рубрики ~Лента новостей~: Мы попробовали Claude Code в энтерпрайз-разработке и собрали за вас восемь проблем Архив рубрики ~Лента новостей~: Лиз Кендалл утверждает, что лейбористы заставят ИИ «работать на благо рабочих». Архив рубрики ~Лента новостей~: Инсайдеры Tesla признают, что беспилотное вождение — это полная катастрофа Архив рубрики ~Лента новостей~: Теперь можно купить клубнику, выращенную на ферме с искусственным интеллектом Архив рубрики ~Лента новостей~: Как я «переезжал» своего ИИ-агента с OpenClaw на Hermes и собрал все грабли (чтобы Вы не собирали) Архив рубрики ~Лента новостей~: Архаические люди использовали огонь в пещере между 1,8 и 1,1 миллиона лет назад. Его следы нашли в южноафриканской пещере Вондерверк