Разработка декодера блочного турбокода на VHDL для ПЛИС Xilinx

20 000 руб. за проект
10 февраля 2020, 23:38 • 2 отклика • 17 просмотров
Задача: разработка модуля декодера блочного турбокода. Время выполнения - до 20 марта 2020 года. Общее описание: требуется разработать модуль декодера блочного турбокода, который будет являться составной частью более сложного проекта. Параметры турбокода: длина кодового слова - 4096 бит, длина информационной части - 3249 бит, кодирование по строкам и столбцам осуществляется с использованием расширенного кода Хэмминга (64, 57) (64-й бит осуществляет проверку на чётность). Реализуемый алгоритм декодирования - синдромное декодирование. Проект разрабатывается для ПЛИС Xilinx семейства Spartan-6 (xc6slx150). На вход разрабатываемого модуля поступают биты с выхода демодулятора, причём за такт может поступать от 4 до 8 бит, поэтому на входе разрабатываемого модуля необходимо реализовать блок FIFO для согласования скорости поступающих данных и дальнейшей работы декодера. Примечание: за 1 такт поступает 2 решения демодулятора, соответственно, для ФМ-4 демодулятор за 1 такт выдаёт 2+2=4 бита, для ФМ-8 он выдаёт 3+3=6 бит и т.д. Вследствие того, что данные поступают с выхода демодулятора, необходимо реализовать блок устранения фазовой неоднозначности и синхронизации, причём следует учесть, что за 1 такт поступает 2 решения демодулятора (соответственно, 4 бита для ФМ-4, 6 бит для ФМ-8 и 8 бит для ФМ-16). Критерием устранения фазовой неоднозначности и синхронизации будет являться обнаружение в потоке синхрокомбинации "1111 00 1111 00 11 00 1111 00 111111 0000 0000 11 000000 11 00 111111 00 11 000000" (64 бита). Поиск синхрокомбинации необходимо проводить на длине потока не менее 1 048 640 бит. После блока устранения фазовой неоднозначности реализуется непосредственно модуль декодирования блочного турбокода. Кодовые слова турбокода в потоке передаются сразу после передачи синхрокомбинации, количество кодовых слов между синхрокомбинациями может быть различным (например, 79 или 95). При обнаружении следующей синхрокомбинации она отбрасывается, и продолжается декодирование очередного кодового слова. Декодированная последовательность должна быть дескремблирована мультипликативным дескремблером V.35 (полином 20,3). После корректного декодирования и дескремблирования будет видна структура потока HDLC, т.е. при отсутствии нагрузки поток заполняется флагами вида 01111110. На выходе целесообразно поместить ещё один блок FIFO для согласования скоростей обрабатываемых данных и выходного потока. Таким образом, требуемая структура разрабатываемого модуля выглядит так: 1. Входной блок FIFO. 2. Блок устранения фазовой неоднозначности и синхронизации. 3. Синдромный декодер турбокода (4096, 3249). Важное примечание: есть рабочая модель синдромного декодера указанного турбокода, написанная на C++, я её предоставлю, она поможет справиться с задачей гораздо быстрее. 4. Мультипликативный дескремблер V.35 (полином 20,3). 5. Выходной блок FIFO. Нужно будет оттестировать работу для вышеуказанной ПЛИС. Предполагается использование разработанного модуля в реальном режиме времени для обработки сигнала, принимаемого из реального канала связи. Оплату в полном объёме я произведу после проверки работоспособности на имеющемся устройстве и устранения выявленных недочётов. Имеющиеся данные: есть различные варианты цифрового потока с выхода демодулятора ФМ‑4, которые необходимо использовать для тестирования разрабатываемых модулей (эти варианты будут отличаться только сдвигом фазового созвездия). Для каждого из вариантов могу предоставить, соответственно, цифровой поток после устранения фазовой неоднозначности, поток после декодирования турбокода (т.е. до дескремблера), и выходной поток после дескремблирования (с флагами HDLC). Если проект кажется чересчур сложным, можно упростить его, оставив возможность обработки данных только с демодулятора ФМ-4, т.е. на каждом такте на вход модуля декодера будет поступать 4 бита.