HDL приемник OFDM

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

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

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

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

Следующий рисунок показывает архитектуру Приемника OFDM. Приемник производит вход в 1.92 членах Шотландского парламента. Эти выборки поток в Фильтр Rx. Выход от потока Фильтра Rx в Средство оценки Частоты и Корректор Частоты. Средство оценки Частоты и Корректор Частоты оценивают и правильный CFO соответственно и демонстрационный поток в Детектор Синхронизации последовательности (SS). Выход Детектора SS используется для синхронизации времени. Время синхронизировало демонстрационный поток в Демодулятор OFDM, который демодулирует вход и генерирует поднесущие частотного диапазона. Синтаксический анализатор Поднесущей анализирует поднесущие ссылки канала, поднесущие заголовка и поднесущие данных. Поток поднесущих ссылки канала в Средство оценки Канала, которое оценивает частотную характеристику канала. Эквалайзер Канала использует эти оценки, чтобы компенсировать заголовок и поднесущие данных в частотном диапазоне. Восстановление Заголовка восстанавливает информацию о заголовке с помощью компенсируемых каналом поднесущих заголовка. Средство оценки CPE оценивает общую ошибку фазы (CPE) в данных sub поставщики услуг, которые корректируются Корректором CPE. Восстановление данных использует информацию о заголовке и поднесущие CPE-исправленных-данных, чтобы декодировать биты данных.

Файловая структура

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

  • whdlOFDMReceiver.slx — Верхний уровень модель Simulink приемника OFDM

  • whdlOFDMRx.slx — Образец модели используется whdlOFDMReceiver.slx модель

  • whdlexamples.OFDMReceiverInit.m — Скрипт инициализации для whdlOFDMReceiver.slx инициализированный в InitFcn модели 'callback'.

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

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

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

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

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

  • dataIn — Входные данные в виде комплекса подписали 16-битный сигнал, произведенный в 1.92 членах Шотландского парламента.

  • validIn — Управляющий сигнал подтвердить dataIn в виде булева скаляра.

  • impairmentControl — Соедините шиной сигнал управлять нарушениями канала.

Шина impairmentControl включает следующие сигналы:

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

  • externalFrequencyOffset — Действительный 14-битный CFO со знаком с диапазоном от-7400 Гц до 7 400 Гц, обеспеченных внешне для коррекции CFO.

  • channelEqualizerControl — Управляющий сигнал указать, разрешить ли или отключить эквализацию канала в виде булева скаляра.

  • CPECorrectionControl — Управляющий сигнал указать, разрешить ли или отключить коррекцию CPE в виде булева скаляра.

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

  • выходные данные — Декодируемые биты выходных данных, возвращенные как булев скаляр.

  • validOut — Управляющий сигнал подтвердить выходные данные, возвращенные как булев скаляр.

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

Структура приемника

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

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

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

Подсистема Синхронизации Частоты и Времени включает, Синхронизация Настраивают подсистему и Оценку CFO и Коррекцию и подсистему Обнаружения SS.

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

Оценка CFO и подсистема Обнаружения SS включают подсистему Оценки CFO, Запустите Подсистему контроллера, Синхронизирующую Поисковую подсистему Сигнала и Коррекцию Частоты 1x подсистема, которые выполняют коррекцию частоты на входном сигнале.

Подсистема Оценки CFO использует циклический префиксный метод корреляции, чтобы оценить CFO входного сигнала. Подсистема CyclicPrefixCorrelator оценивает одно значение CFO для каждых шести символов OFDM путем усреднения всех оценок в шести символах OFDM. Подсистема AngleAtMaximum выбирает самый сильный пик корреляции для каждых шести символов OFDM и записывает его угол фазы. Подсистема AngleFilter реализует фильтр усреднения, чтобы составить в среднем все записанные углы фазы на срок 12 мс. Получившийся угол фазы служит итоговой оценкой CFO.

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

Смещение синхронизации, зарегистрированное в максимальном значении корреляции Искателем Пика Max, передается Синхронизации, Настраивают подсистему, чтобы синхронизировать синхронизацию.

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

Образуйте канал и оценка CPE и коррекция

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

Блок MATLAB function Парсинга Опорного сигнала разделяет символы OFDM, зарезервированные для вычисления оценок канала.

Символы OFDM, зарезервированные для вычисления оценок канала, передаются потоком через подсистему Оценки Канала. Блок OFDM Channel Estimator составляет в среднем оценки от этих двух символов и выводит итоговые оценки канала. Оценки передаются потоком в подсистему Эквализации Канала, которая хранит оценки в RAM и выполняет эквализацию канала частотного диапазона с помощью блока OFDM Equalizer для всех остающихся символов OFDM в системе координат.

Блок MATLAB function Парсинга Заголовка и Данных разделяет символы OFDM, соответствующие символы данных и заголовок.

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

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

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

Подсистема Восстановления Заголовка восстанавливает информацию о заголовке, чтобы декодировать биты данных. Частотный диапазон компенсируемый каналом поток поднесущих заголовка в подсистему Восстановления Заголовка. Блок LTE Symbol Demodulator выполняет BPSK мягкая демодуляция символа. Подсистема Кодирования Канала оборудована подсистемой Deinterleaver и блоком Viterbi Decoder. Подсистема Deinterleaver выполняет устраняющий чередование размер блока имеющий 72 и количество столбцов как 18. Блок Viterbi Decoder выполняет 1/2 уровень viterbi декодирование. Для получения дополнительной информации о подсистеме Deinterleaver, смотрите HDL пример Deinterleaver и Interleaver. Блок General CRC Syndrome Detector HDL Optimized использует 16-битную контрольную сумму CRC, чтобы подтвердить декодируемые биты от блока Viterbi Decoder. Если контрольная сумма CRC перестала работать, блок General CRC Syndrome Detector HDL Optimized генерирует сигнал ошибки.

Подсистема Восстановления данных использует информацию о заголовке, чтобы декодировать биты данных. Информация о заголовке хранится в регистрах. Эти регистры используются, чтобы получить доступ к информации о заголовке. Блок LTE Symbol Demodulator выполняет мягкий битный BPSK, QPSK, 16-QAM, или 64-QAM демодуляция символа, сопоставленная с типом модуляции, полученным из информации о заголовке. Подсистема Кодирования Канала оборудована Deinterleaver, Depuncturer и блоками Декодера Витерби. Каждый уровень кода присвоен предопределенный проколотый векторный шаблон. На основе уровня кода, полученного из информации о заголовке, подсистема Кодирования Канала выполняет устранение чередования и depuncturing, сопровождаемый декодированием viterbi. Для получения дополнительной информации о блоке Deinterleaver смотрите HDL пример Deinterleaver и Interleaver. Декодируемые биты передаются потоком через подсистему Дескремблера. Блок General CRC Syndrome Detector HDL Optimized использует 32-битную контрольную сумму CRC, чтобы подтвердить дескремблированные биты. Если контрольная сумма CRC перестала работать, блок General CRC Syndrome Detector HDL Optimized генерирует сигнал ошибки.

Диагностическое формирование шины

Диагностическая подсистема Формирования Шины создает сигнал шины для некоторых сигналов состояния приемника. Эта шина может использоваться, чтобы анализировать приемник, когда развернуто на оборудование.

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

Запустите приемник

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

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

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

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

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

Верификация и результаты

whdlexamples.OFDMRx.m скрипт является плавающей точкой MATLAB, эквивалентной из образца модели whdlOFDMRx.slx. Модель Simulink и плавающая точка MATLAB эквивалентный скрипт сравнены в HDL 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-код для этого примера, у вас должен быть HDL Coder™. Используйте makehdl и makehdltb команды, чтобы сгенерировать HDL-код и испытательный стенд HDL для подсистемы Приемника OFDM. Время генерации испытательного стенда зависит от времени симуляции.

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

       Resources       Usage
    _______________    _____

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

Смотрите также

Блоки

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте