exponenta event banner

Приемник OFDM HDL

В этом примере показано, как реализовать беспроводной приемник на основе OFDM с использованием блоков Simulink ®, оптимизированных для генерации кода HDL и реализации аппаратного обеспечения.

Модель, показанная в этом примере, принимает данные и декодирует их на основе мультиплексирования с ортогональным частотным разделением каналов (OFDM). Основная цель этого примера состоит в моделировании пользовательского приемника беспроводной связи МДЧ ЛПВП, который может восстанавливать информацию в сценарии реального времени и поддерживает скорости передачи данных до 3 Мбит/с. Эта модель позволяет настраивать параметры: типы модуляции символов, такие как BSPK, QPSK, 16-QAM и 64-QAM, а также кодовые скорости 1/2, 2/3, 3/4 и 5/6 через кодирование с проколом. Эта модель позволяет управлять такими нарушениями, как смещение несущей частоты (CFO), смещение фазы несущей (CPO) и релейный канал замирания, которые существенно влияют на систему связи на основе OFDM.

Приемник в этом примере работает совместно с передатчиком в примере передатчика OFDM HDL. Приемник в этом примере имеет функцию эквивалента MATLAB ® с плавающей запятой, описанную в примере ссылок на OFDM MATLAB.

Архитектура модели

На следующем рисунке показана архитектура приемника OFDM. Приемник производит выборку входного сигнала с частотой 1,92 мс. Эти образцы поступают в фильтр Rx. Выходные данные потока Rx Filter поступают в модуль оценки частоты и модуль коррекции частоты. Блок оценки частоты и блок коррекции частоты и соответствующий финансовый директор, соответственно, и поток выборок в детектор синхронизирующей последовательности (SS). Выходной сигнал детектора SS используется для синхронизации времени. Поток синхронизированных по времени выборок поступает в демодулятор OFDM, который демодулирует входной сигнал и генерирует поднесущие частотной области. Анализатор поднесущих анализирует опорные канальные поднесущие, поднесущие заголовка и поднесущие данных. Опорные поднесущие канала поступают в блок оценки канала, который оценивает частотную характеристику канала. Корректор канала использует эти оценки для выравнивания поднесущих заголовка и данных в частотной области. Восстановление заголовка восстанавливает информацию заголовка с использованием поднесущих заголовка, выровненных по каналу. Блок оценки CPE оценивает общую фазовую ошибку (CPE) в поднесущих данных, которые корректируются корректором CPE. Восстановление данных использует информацию заголовка и подкорректированные CPE поднесущие данных для декодирования битов данных.

Структура файла

Для создания этого примера используются две модели Simulink и три файла MATLAB.

  • whdlOFDMReceiver.slx - Модель симулятора приемника OFDM верхнего уровня

  • whdlOFDMRx.slx - Эталонная модель, используемая whdlOFDMReceiver.slx модель

  • whdlexamples.OFDMReceiverInit.m - Сценарий инициализации для whdlOFDMReceiver.slx инициализировано в модели InitFcn обратный вызов.

  • whdlexamples.OFDMRxParameters.m - Функция инициализации для whdlOFDMRx.slx инициализировано в рабочей области модели и InitFcn отзыв

  • whdlexamples.OFDMTx.m - MATLAB эквивалентная функция передатчика с плавающей запятой для генерации формы сигнала передатчика. Генерируемая форма сигнала передатчика используется в whdlexamples.OFDMReceiverInit.m сценарий

Интерфейс приемника

На этом рисунке показана модель верхнего уровня в этом примере.

Входные данные модели:

  • dataIn - входные данные, заданные как сложный подписанный 16-битный сигнал, дискретизированный на 1,92 мс.

  • validIn - управляющий сигнал для проверки dataIn, указанный как логический скаляр.

  • Обесценение Контроль - сигнал шины для управления нарушениями канала.

Шина управления ухудшением качества содержит следующие сигналы:

  • frequencyOffsetCorrenseType - управляющий сигнал, указывающий, следует ли выбирать Use internally estimated frequency offset или Use externally provided frequency offset опция для коррекции смещения, заданная как логический скаляр.

  • externalFrequencyOffset - действительный подписанный 14-битный финансовый директор с диапазоном от -7400 Гц до 7400 Гц, предоставляемый внешне для коррекции финансового директора.

  • startEqualizerControl - управляющий сигнал, указывающий, следует ли включать или отключать выравнивание канала, указанное как логический скаляр.

  • CPECorureControl - управляющий сигнал, указывающий, следует ли включить или отключить коррекцию CPE, заданную как логический скаляр.

Выходные данные модели:

  • DataOut - декодированные биты выходных данных, возвращаемые как логический скаляр.

  • ValidOut - управляющий сигнал для проверки dataOut, возвращаемый как логический скаляр.

  • diagBus - сигнал состояния с диагностическими выходами, возвращаемый как сигнал шины.

Структура получателя

Подсистема OFDM-приемника выполняет набор операций в последовательности. Эта подсистема использует whdlOFDMRx.slx ссылочная модель. Эта ссылочная модель инициализируется в рабочей области модели и в модели. InitFcn обратный вызов с использованием whdlexamples.OFDMRxParameters функция. На следующем рисунке показаны подсистемы верхнего уровня в ссылочной модели.

Синхронизация и демодуляция OFDM

Подсистема синхронизации и демодуляции OFDM выполняет частотную и временную синхронизацию и демодуляцию OFDM.

Подсистема синхронизации частоты и времени включает в себя подсистему регулировки синхронизации и подсистему оценки и коррекции финансового директора и обнаружения SS.

Подсистема оценки и коррекции финансового директора и обнаружения SS включает подсистему оценки финансового директора и обнаружения SS и подсистему коррекции частоты Nx, которые выполняют коррекцию частоты для входного сигнала. Оценка из подсистемы оценки финансового директора и обнаружения SS используется для коррекции частоты, если для сигнала frequencyOffsetCorriceType на интерфейсе модели верхнего уровня установлено значение Use internally estimated frequency offset. ExternalFrequencyOffset используется для коррекции частоты, если для сигнала frequencyOffsetCorriveType установлено значение Use externally provided frequency offset.

Подсистема оценки финансового директора и обнаружения SS включает подсистему оценки финансового директора, подсистему контроллера запуска, подсистему поиска синхросигнала и подсистему коррекции частоты 1x, которые выполняют коррекцию частоты входного сигнала.

Подсистема оценки финансового директора использует метод корреляции циклического префикса для оценки финансового директора входного сигнала. Подсистема коррелятора префиксов определяет одно значение финансового директора для каждых шести символов OFDM путем усреднения всех оценок в шести символах OFDM. Подсистема AneyAtMaximum выбирает самый сильный пик корреляции для каждых шести символов OFDM и записывает его фазовый угол. Подсистема AneyFilter реализует фильтр усреднения для усреднения всех зарегистрированных фазовых углов в течение 12 мс. Результирующий фазовый угол служит конечной оценкой финансового директора.

Подсистема поиска сигнала синхронизации реализует корреляцию SS. Обнаружение SS выполняется путем непрерывной перекрестной корреляции принятого сигнала с сигналом SS во временной области. Кроме того, энергия сигнала в диапазоне коррелятора вычисляется на каждом временном шаге и затем масштабируется для генерации порога. Подсистема Max Peak Searcher начинает поиск максимального пика корреляции через 12 мс и поиск через каждые 3 мс временного окна. Подсистема записывает смещение синхронизации по времени. Функциональный блок Start Controller указывает подсистеме Max Peak Searcher окончание длительности 12 мс.

Смещение синхронизации, записанное при максимальном значении корреляции устройством поиска максимальных пиков, передается в подсистему регулировки синхронизации для синхронизации синхронизации.

Блок демодулятора OFDM демодулирует синхронизированные выборки и генерирует поднесущие.

Оценка и коррекция канала и CPE

Подсистема оценки и коррекции канала и CPE оценивает частотную характеристику канала, выравнивает канал, выполняет оценку CPE и корректирует CPE.

Функциональный блок MATLAB анализа опорного сигнала разделяет символы OFDM, зарезервированные для вычисления оценок канала.

Символы OFDM, зарезервированные для вычисления оценок канала, передаются в потоковом режиме через подсистему оценки канала. Блок оценки канала OFDM усредняет оценки из двух символов и выводит окончательные оценки канала. Оценки поступают в подсистему выравнивания каналов, которая сохраняет оценки в ОЗУ и выполняет выравнивание канала в частотной области с использованием блока корректора OFDM для всех оставшихся символов OFDM в кадре.

Функциональный блок MATLAB анализа заголовка и данных разделяет символы OFDM, соответствующие символам заголовка и данных.

Выравниваемые по каналу частотной области поднесущие данных проходят через подсистему оценки и коррекции общей фазовой ошибки. В процессе оценки частоты всегда имеется небольшая ошибка оценки из-за нарушений канала. Эта ошибка оценки приводит к смещению остаточной частоты в выравниваемых по каналу поднесущих. Это приводит к тому, что CPE во всех поднесущих в символе OFDM изменяется от символа к символу. Подсистема оценки CPE оценивает CPE по каждому символу OFDM, используя 12 пилотных поднесущих. Пилот-сигналы являются известными поднесущими, и любое вращение фазы в принятых символах оценивается с использованием пилот-сигналов. Оценки, взятые из того же символа, усредняются для получения окончательной оценки. Символ сохраняется в функциональном блоке MATLAB буфера символов во время оценки. Как только оценка готова, символ считывается из этого буферного блока, и подсистема коррекции CPE корректирует CPE в поднесущих данных с этой оценкой.

Восстановление заголовка и данных

Подсистема восстановления заголовка и данных восстанавливает информацию заголовка и биты данных.

Подсистема восстановления заголовка восстанавливает информацию заголовка для декодирования битов данных. Выравниваемые по каналу частотной области поднесущие заголовка поступают в подсистему восстановления заголовка. Блок демодулятора символов LTE выполняет мягкую демодуляцию символов BPSK. Подсистема канального кодирования оснащена подсистемой обращенного перемежителя и блоком декодера Витерби. Подсистема обращенного перемежения выполняет обратное перемежение с максимальным размером блока 72 и количество столбцов как 18. Блок декодера Витерби выполняет декодирование витерби со скоростью 1/2. Для получения дополнительной информации о подсистеме обращенного перемежителя см. пример перемежителя HDL и обращенного перемежителя. Блок оптимизации HDL детектора синдрома общего CRC использует 16-битную контрольную сумму CRC для проверки достоверности декодированных битов из блока декодера Витерби. Если контрольная сумма CRC завершается неуспешно, блок оптимизации HDL детектора синдрома общего CRC генерирует сигнал ошибки.

Подсистема восстановления данных использует информацию заголовка для декодирования битов данных. Информация заголовка сохраняется в регистрах. Эти регистры используются для доступа к информации заголовка. Блок демодулятора символов LTE выполняет мягкую битовую BPSK, QPSK, 16-QAM или 64-QAM демодуляцию символов, связанную с типом модуляции, извлеченным из информации заголовка. Подсистема канального кодирования оснащена блоками Deinterleaver, Depuncturer и Viterbi Decoder. Каждой кодовой скорости назначается предопределенный проколотый векторный шаблон. На основе кодовой скорости, извлеченной из информации заголовка, подсистема канального кодирования выполняет обратное перемежение и депункционирование с последующим декодированием витерби. Для получения дополнительной информации о блоке обращенного перемежителя см. пример перемежителя HDL и обращенного перемежителя. Декодированные биты передаются в потоковом режиме через подсистему дескремблера. Блок оптимизации HDL детектора синдрома общего CRC использует 32-битную контрольную сумму CRC для проверки дескремблированных битов. Если контрольная сумма CRC завершается неуспешно, блок оптимизации HDL детектора синдрома общего CRC генерирует сигнал ошибки.

Формирование диагностической шины

Подсистема формирования диагностической шины создает сигнал шины для некоторых сигналов состояния приемника. Эта шина может использоваться для анализа приемника при развертывании на аппаратном обеспечении.

Биты данных декодируются в подсистеме восстановления данных. Декодированные биты вытекают из приемника и сохраняются в рабочей области в подсистеме захвата битов данных в модели приемника верхнего уровня. Подсистема декодера диагностики декодирует информацию заголовка, закодированную источником, и подсчитывает количество синхронизированных кадров, количество проходов и отказов CRC заголовка, а также количество проходов CRC данных и отказов в сигнале шины, сформированном в подсистеме формирования диагностической шины. В блоках отображения Simulink отображается информация о декодере диагностики.

Запуск получателя

Подключите приемник к передатчику в примере передатчика OFDM HDL и запустите модель Simulink. Для получения дополнительной информации о том, как соединить передатчик и модели Simulink приемника с обратной связью, см. пример ссылок на OFDM MATLAB HDL.

Следующие файлы описывают процедуру инициализации, формирования входных данных, запуска и проверки whdlOFDMReceiver.slx модель с использованием whdlexamples.OFDMReceiverInit.m сценарий инициализации. В разделе «Пользовательская конфигурация кадра» этих файлов можно выбрать пользовательскую форму сигнала передатчика и повреждение канала.

  • OFDMRxRealTimeSimulationDisplay.m - Этот сценарий имитирует канал в сценарии реального времени. Можно выбрать любое доступное ухудшение канала и запустить сценарий. Сценарий отображает выходные данные и генерирует графики предполагаемого сдвига частоты и корреляции SS.

  • OFDMRxFadingChannelResponseDisplay.m - Этот сценарий имитирует только канал замирания. Можно выбрать только ухудшение канала замирания и запустить сценарий. Сценарий отображает выходные сигналы и генерирует графики импульсной характеристики канала и сравнения оцененной частотной характеристики с частотной характеристикой, полученной из импульсной характеристики.

Примечание.Эти файлы недоступны в пути поиска MATLAB. Чтобы скопировать эти файлы локально в путь пользователя, необходимо открыть этот пример.

Проверка и результаты

whdlexamples.OFDMRx.m скрипт представляет собой эквивалент ссылочной модели MATLAB с плавающей запятой whdlOFDMRx.slx. Модель Simulink и сценарий эквивалента MATLAB с плавающей запятой сравниваются в примере ссылок OFDM MATLAB.

Запустить OFDMRxRealTimeSimulationDisplay.m скрипт для запуска приемника.

>> OFDMRxRealTimeSimulationDisplay
### Starting serial model reference simulation build
### Successfully updated the model reference simulation target for: whdlOFDMRx

Build Summary

Simulation targets built:

Model       Action                       Rebuild Reason                         
================================================================================
whdlOFDMRx  Code generated and compiled  whdlOFDMRx_msf.mexa64 does not exist.  

1 of 1 models built (0 models already up to date)
Build duration: 0h 7m 49.951s

 Number of header CRC failed = 0 per 4

 Number of bit errors = 0 per 15208

Запустить OFDMRxFadingChannelResponseDisplay.m скрипт для запуска приемника.

>> OFDMRxFadingChannelResponseDisplay
### Starting serial model reference simulation build

Build Summary

0 of 1 models built (1 models already up to date)
Build duration: 0h 3m 24.336s

 Number of header CRC failed = 0 per 1

 Number of bit errors = 0 per 3162

График созвездия можно увидеть в области действия созвездия. Области можно активировать с помощью кнопки Control Scope в whdlOFDMReceiver.slx модель.

Создание кода HDL

Для создания кода HDL в этом примере необходимо иметь Coder™ HDL. Использовать makehdl и makehdltb команды для генерации кода HDL и средства тестирования HDL для подсистемы приемника OFDM. Время генерации testbench зависит от времени моделирования.

Полученный код HDL синтезируется для платы оценки Xilinx ® Zynq ® -7000 ZC706. Данные об использовании ресурсов, связанных с размещением и маршрутом, приведены в таблице ниже. Максимальная частота работы - 202 МГц.

       Resources       Usage
    _______________    _____

    Slice Registers    46642
    Slice LUT          38457
    RAMB36             14   
    RAMB18             12   
    DSP48              88   

См. также

Блоки

Связанные темы