В этом примере показано, как реализовать основанный на 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 ### Model reference simulation target for whdlOFDMRx is up to date. Build Summary 0 of 1 models built (1 models already up to date) Build duration: 0h 0m 4.893s Number of header CRC failed = 0 per 4 Number of bit errors = 0 per 15208
Запустите OFDMRxFadingChannelResponseDisplay.m
скрипт, чтобы запустить приемник.
>> OFDMRxFadingChannelResponseDisplay
### Starting serial model reference simulation build ### Model reference simulation target for whdlOFDMRx is up to date. Build Summary 0 of 1 models built (1 models already up to date) Build duration: 0h 0m 0.928s Number of header CRC failed = 0 per 1 Number of bit errors = 0 per 3162
Вы видите график созвездия на осциллографе созвездия. Осциллографы могут быть активированы при помощи кнопки Control Scope в whdlOFDMReceiver.slx
модель.
Чтобы сгенерировать 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