В этом примере показано, как спроектировать приемник беспроводной локальной сети (WLAN), который может восстановить информацию и поле данных о сигнала с сигнала WLAN. Модель Simulink® в этом примере оптимизирована для генерации HDL-кода и аппаратной реализации.
Пример поддерживает опции полосы пропускания одно входа одно выхода (SISO) 20 МГц для невысокопроизводительного (non-HT), высокопроизводительных (HT) форматов системы координат, и очень высокопроизводительного (VHT). Для получения дополнительной информации о форматах системы координат WLAN и структуре системы координат, смотрите Структуру WLAN PPDU (WLAN Toolbox). Блок-схема показывает общий обзор проекта приемника WLAN. Пример Синхронизации Времени и Частоты HDL WLAN заменяет функциональность блока Time и Frequency Synchronization в этом примере. Этот блок принимает форму волны входа Rx и выходное время, и частота синхронизировала форму волны.
Чтобы спроектировать приемник WLAN, наряду с блоком Time и Frequency Synchronization, модель требует еще нескольких блоков как показано в блок-схеме.
Блок OFDM Demodulation преобразует сигнал временной области в поднесущие частотного диапазона. Использование блока Channel Estimator демодулировало устаревшие длинные учебные поля (L-LTFs) сигнала WLAN оценить частотную характеристику канала. Чтобы компенсировать пилота и поднесущие данных фрагмента non-HT сигнала WLAN, эквалайзер канала использует предполагаемую частотную характеристику канала. Фрагмент non-HT сигнала WLAN включает устаревшее поле SIGNAL (L-SIG), высокопроизводительные поля 1 и 2 SIGNAL (HT-SIG 1 и 2), очень высокопроизводительные поля A SIGNAL и B (VHT-SIG-A и VHT-SIG-B) и устаревшее Поле данных. Точно так же канал оценивается с помощью демодулируемого HT или VHT LTFs сигнала WLAN компенсировать пилота и поднесущие данных HT или фрагмент VHT сигнала WLAN. HT или фрагмент VHT сигнала WLAN включают VHT-SIG-B, HT-данные и VHT-данные.
После эквализации оценка общей ошибки фазы (CPE) non-HT выполняется с помощью пилотов non-HT. Предполагаемый CPE используется к поднесущим исправленных данных фрагмента non-HT сигнала WLAN. Точно так же HT или оценка общей ошибки фазы (CPE) VHT выполняются с помощью HT или пилотов VHT. Предполагаемый CPE используется к поднесущим исправленных данных HT или фрагменту VHT сигнала WLAN. Общие ошибочные исправленные данные шума фазы используются для обнаружения формата системы координат, сигнала и восстановления Поля данных.
Структурируйте детектор формата, и восстановление поля SIGNAL обнаруживает формат системы координат между non-HT, HT, и VHT структурирует и декодирует переданные биты от полей L-SIG сигнала WLAN, HT-SIG 1 и 2 и VHT-SIG-A 1 и 2. Если обнаруженный формат системы координат является non-HT, контроллер формата системы координат передает non-HT CPE исправленные данные к Восстановлению данных. В качестве альтернативы, если обнаруженный формат системы координат является HT или VHT, контроллер формата системы координат передает HT или исправленные данные VHT CPE к Восстановлению данных. Восстановление данных декодирует переданные биты из L-данных о полях данных WLAN, HT-данных и VHT-данных с помощью параметров сигнала, таких как модуляция и кодируя схему (MCS) и длина модуля эксплуатационных данных протокола (PSDU) сходимости физического уровня. VHT-SIG-B также декодируется как часть Восстановления данных для системы координат VHT. Пример подтверждает модель приемника Simulink® WLAN выход при помощи функций MATLAB® в WLAN Toolbox™.
Откройте wlahdlReceiver.slx
модель, чтобы запустить пример. Этот рисунок показывает общий обзор модели приемника WLAN.
modelname = 'wlanhdlReceiver';
open_system(modelname);
Время и синхронизация частоты
Time and frequency synchronization
подсистема выполняет фильтрацию приемника и крупное время и оценка частоты и коррекции на отфильтрованном сигнале. Затем подсистема точно настраивает время и оценку частоты и коррекции, чтобы удалить любые остаточные смещения. wlanhdlReceiverInit.m
файл инициализирует коэффициенты фильтра.
Откройте WLANTimeAndFrequencySynchronization
подсистема, чтобы видеть процесс синхронизации.
open_system([modelname '/WLANHDLReceiver/WLANTimeAndFrequencySynchronization'],'force');
Демодуляция OFDM
Блок OFDM Demodulator преобразует сигналы временной области в поднесущие частотного диапазона. Блок обеспечивает гибкость, чтобы изменить длину БПФ параметров ортогонального мультиплексирования деления частоты (OFDM), Длину циклического префикса, Количество левых защитных поднесущих и Количество правильных защитных поднесущих во время времени выполнения. В этом примере, для опции полосы пропускания на 20 МГц, длина циклического префикса (CP) варьируется для различных полей по сигналу WLAN. Например, первый символ L-LTF использует длину CP 32, второй символ L-LTF использует длину CP 0, и остающиеся поля сигнала WLAN используют длину CP 16. В этом примере параметр длины БПФ устанавливается на 64, и Количество левых защитных поднесущих и Количество правильных защитных параметров поднесущих установлены в 4 и 3, соответственно.
open_system([modelname '/WLANHDLReceiver/OFDMDemodulation']);
OFDMDemodulationParameterCalculator
Функция MATLAB управляет параметрами блоков Демодулятора OFDM для различных полей пакета WLAN. OFDMDemodulationParameterCalculator
Функция MATLAB вычисляет количество используемых поднесущих, чтобы определить количество символов OFDM в пакете WLAN.
Оценка канала Non-HT и эквализация
NonHTChannelEstAndEqualize
подсистема используется для оценки канала L-LTF. Вход дан блоку OFDM Channel Estimator. Блок OFDM Channel Estimator реализует оценку наименьших квадратов (LS) для оценки канала и выполняет усреднение на оценках от двух символов L-LTF сигнала WLAN. Блок OFDM Equalizer использует усредненную оценку канала результанта, чтобы выполнить эквализацию нулевого принуждения (ZF) на данных.
open_system([modelname '/WLANHDLReceiver/NonHTChannelEstAndEqualize']);
HT или оценка канала VHT и эквализация
HTorVHTChannelEstAndEqualize
подсистема похожа на NonHTChannelEstAndEqualize
подсистема. Для настройки SISO, только одного HT или VHT LTF существует, таким образом составление в среднем отключено в блоке OFDM Channel Estimator.
open_system([modelname '/WLANHDLReceiver/HT_VHTChannelEstAndEqualize']);
Non-HT общая оценка шума фазы и коррекция
NonHTCPEEstAndCorrection
подсистема оценивает общий шум фазы или остаточное смещение частоты для фрагмента non-HT сигнала WLAN. Оценка CPE требует ссылок, таких как пилот non-HT положения, экспериментальная последовательность non-HT и псевдошумовая (PN) последовательность как описано в уравнении 17-25 в [1]. wlanhdlRxinint.m
скрипт инициализирует эти известные ссылки и хранит их в 1D интерполяционных таблицах в подсистеме. PolarityGenerator
подсистема дает полярность пилотов на основе номера символа. Ссылочные пилоты умножаются с полярностью для оценки CPE. Предполагаемый CPE усреднен на всех пилотных поднесущих в символе OFDM и используется для коррекции поднесущих данных фрагмента non-HT пакета WLAN.
open_system([modelname '/WLANHDLReceiver/NonHTCPEEstAndCorrection']);
HT или общая оценка шума фазы VHT и коррекция
HTorVHTCPEEstAndCorrect
подсистема похожа на NonHTCPEEstAndCorrect
подсистема. Эта подсистема выполняет оценку CPE и коррекцию с помощью HT или экспериментальных положений VHT и HT или экспериментальной последовательности VHT.
open_system([modelname '/WLANHDLReceiver/HT_VHTCPEEstAndCorrection']);
Структурируйте идентификацию формата и контроллер
Чтобы восстановить информацию и поле данных о сигнала с сигнала WLAN, необходимо использовать формат системы координат приемника WLAN. Этот пример поддерживает non-HT, HT и форматы системы координат VHT. FrameFormatDetector
подсистема обнаруживает формат системы координат как non-HT, HT или VHT путем буферизации 3 символов OFDM после L-LTFs, при выходе NonHTCPEEstAndCorrect
подсистема. Эта блок-схема описывает обнаружение формата системы координат. Для получения дополнительной информации см. [2].
Signal Recovery
подсистема декодирует MCS от первого символа L-SIG. Если MCS не 0, FrameFormatDetector
подсистема обнаруживает формат системы координат как non-HT. Если MCS 0, он проверяет схему модуляции символа OFDM 2. Если схема модуляции символа 2 является QBPSK, подсистема обнаруживает формат как HT. Если схема модуляции символа 2 является BPSK, это проверяет схему модуляции символа OFDM 3. Если схема модуляции символа 3 является QBPSK, подсистема обнаруживает формат как VHT. Если схема модуляции символа 3 является BPSK, подсистема обнаруживает формат как non-HT.
Если FrameFormatDetector
подсистема обнаруживает формат системы координат как non-HT, затем остающиеся символы OFDM, включая символы OFDM 2 и 3, обработаны как L-данные. FrameFormatController
подсистема передает выход NonHTCPEEstAndCorrect
подсистема к DataRecovery
подсистема, чтобы декодировать L-данные.
Если FrameFormatDetector
подсистема обнаруживает формат системы координат как HT или VHT, FrameFormatController
подсистема передает выход HT_VHTCPEEstAndCorrect
подсистема к DataRecovery
подсистема, чтобы восстановить HT-данные или VHT-данные.
Восстановление сигнала
SignalRecovery
подсистема восстанавливает информацию о заголовке, чтобы декодировать биты данных от L-SIG, HT-SIG и полей VHT-SIG. Выход NonHTCPEEstAndCorrect
подсистема, соответствующая, чтобы сигнализировать о полях, передается потоком в SignalRecovery
подсистема. Блок Symbol Demodulator выполняет BPSK и мягкую демодуляцию символа QBPSK на полях сигнала в пакете WLAN. Декодирование канала включает Deinterleaver
подсистема и блок Viterbi Decoder.
Deinterleaver
подсистема выполняет устранение чередования на демодулируемых данных символа размер блока имеющий 48 и количество столбцов как 16. Блок Viterbi Decoder выполняет 1/2 уровень viterbi декодирующий на устраненных чередование данных. Для получения дополнительной информации о Deinterleaver
подсистема, смотрите HDL Interleaver и Deinterleaver.
L-SIG использует четность, чтобы проверять ошибку в поле WLAN L-SIG, тогда как 8-битный контроль циклическим избыточным кодом (CRC) используется, чтобы проверять ошибку в WLAN HT-SIG 1 и 2 и поле VHT-SIG-B. Блок General CRC Syndrome Detector HDL Optimized используется для выявления ошибок CRC и ParityCalculator
подсистема выполняет вычисление блоков четности. Если контрольная сумма CRC или сбои четности, полевое восстановление сигнала возвращает состояние проверки четности или CRC (Передача или Сбой).
open_system([modelname '/WLANHDLReceiver/FrameFormatDetectionAndSignalRecovery/SignalBitRecovery']);
Восстановление данных
DataRecovery
подсистема использует поля сигнала WLAN, чтобы декодировать биты данных. Регистры используются, чтобы хранить информацию поля сигнала WLAN. Эти регистры получают доступ к информации о поле сигнала WLAN. Блок Symbol Demodulator выполняет мягко-битный BPSK, QPSK, 16-QAM, или 64-QAM демодуляция символа, сопоставленная с типом модуляции, полученным из информации о поле сигнала WLAN. Deinterleaver
подсистема состоит из различного deinterleavers для non-HT и HT или данных VHT. deinterleaver для данных non-HT сконфигурирован с размером блока 48 и количеством столбцов как 16. deinterleaver для HT или данных VHT сконфигурирован с размером блока 52 и количеством столбцов как 13. Decoder
подсистема оборудована блоками Depuncturer и Viterbi Decoder. Каждая скорость кода присвоена предопределенный проколотый векторный шаблон. На основе скорости кода, полученной из WLAN, сигнализируют об информации о поле, Decoder
подсистема выполняет depuncturing, сопровождаемый декодированием Viterbi. Декодируемые биты передаются потоком через Descrambler
подсистема.
open_system([modelname '/WLANHDLReceiver/DataRecovery']);
Этот пример использует модели Simulink и три файла MATLAB.
wlanhdlReceiver.slx
— Откройте модель Simulink приемника OFDM верхнего уровня.
wlanhdlReceiverInit.m
— Этот скрипт инициализируется в InitFcn
коллбэк whdlhdlReceiver.slx
. Этот скрипт использует wlanWaveformGenerator.m
сгенерировать входную форму волны к примеру.
wlanhdlRxParameters.m
— Сгенерируйте входные параметры согласно Стандартному IEEE 802.11-2016, чтобы запустить wlanhdlReceiver.slx
модель. Параметры соответствуют non-HT, HT и форматам системы координат VHT для полосы пропускания на 20 МГц.
wlanhdlMATLABRxReference.m
— Реализуйте MATLAB эквивалентный приемник WLAN с плавающей точкой с помощью функций от продукта WLAN Toolbox.
Вводы и выводы к модели в качестве примера описаны ниже
dataIn — Входные данные в виде комплекса подписали 16-битный сигнал, произведенный в 20 членах Шотландского парламента.
validIn — Управляющий сигнал подтвердить dataIn в виде булева скаляра.
запуск — Управляющий сигнал сбросить приемник в виде булева скаляра.
выходные данные — Декодируемые биты выходных данных, возвращенные как биты.
validOut — Управляющий сигнал подтвердить порт выходных данных, возвращенный как булев скаляр.
diagBus — Сигнал состояния с диагностическими выходными параметрами, возвращенными как сигнал шины.
Эта модель в качестве примера принимает форму волны как вход наряду с допустимым, и запустите сигналы. Модель возвращает декодируемые информационные биты как выход наряду с допустимым сигналом. wlanhdlReceiverInit.m
скрипт предоставляет вход модели. wlanWaveformGenerator.m
функция в скрипте генерирует смешанный режим HT, кадр на 20 МГц, который передается через канал TGac с профилем задержки Модели A. Аддитивный белый Гауссов шум (AWGN) в отношении сигнал-шум (SNR) на 35 дБ добавляется с другими ухудшениями канала, такими как CFO на 10 кГц и смещение синхронизации 25.
fprintf('\n Simulating WLAN HDL receiver \n'); out = sim(modelname); fprintf('\n HDL simulation complete. Data decoded. \n');
Simulating WLAN HDL receiver HDL simulation complete. Data decoded.
Проверьте выходные параметры этого примера с помощью функций WLAN Toolbox™. Задайте ту же входную форму волны к модели Simulink и к MATLAB эквивалентный приемник. Сравните выходные параметры, чтобы подтвердить пример.
fprintf('\n Comparing WLAN MATLAB reference receiver \n') wlanhdlMATLABRxReference; fprintf('\n MATLAB simulation complete. \n'); simOut = squeeze(out.rxBits(out.rxBitsValid)); errSig = (bitxor(logical(psdu),simOut)); err = sum(errSig); hConstData = out.headerConstellation(out.headerConstellationValid); figure; plot(hConstData,'o'); xlabel('In-Phase'); ylabel('Quadrature') title('Equalized Signal Field Constellation'); m = double(max(abs([real(hConstData(:)); imag(hConstData(:))])) * 1.1); axis([-m m -m m]); dConstData = out.dataConstellation(out.dataConstellationValid); figure; plot(dConstData(1:end-NSc*4),'o'); % Remove last 4 symbols corresponding to idle time xlabel('In-Phase'); ylabel('Quadrature') title('Equalized Data Field Constellation'); m = double(max(abs([real(dConstData(:)); imag(dConstData(:))])) * 1.1); axis([-m m -m m]); figure; plot(errSig); xlabel('Sample Number'); ylabel('Error Magnitude'); legend('Error') title('Error Magnitude Between Simulink and MATLAB WLAN Receiver Output'); if err == 0 fprintf('\n Simulink and MATLAB outputs match \n'); else fprintf('\n Simulink and MATLAB outputs do not match \n'); end
Comparing WLAN MATLAB reference receiver MATLAB simulation complete. Simulink and MATLAB outputs match
Чтобы сгенерировать HDL-код для этого примера, у вас должен быть продукт HDL Coder™. Сгенерировать HDL-код и испытательный стенд HDL для WLANHDLReceiver
подсистема, используйте makehdl
и makehdltb
команды. Получившийся HDL-код синтезировался для оценочной платы Xilinx® Zynq®-7000 ZC706. Таблица показывает место сообщения и результаты использования ресурса маршрута. Проект соответствует синхронизации с тактовой частотой 198 МГц.
F = table(... categorical({'Slice LUT'; 'Slice Registers'; 'RAMB36'; 'RAMB18';... 'DSP48'}),... categorical({'50411'; '67571'; '200'; '23'; '194'}),... 'VariableNames',... {'Resources','Usage'}); disp(F);
Resources Usage _______________ _____ Slice LUT 50411 Slice Registers 67571 RAMB36 200 RAMB18 23 DSP48 194
IEEE 802.11-2016 - Стандарт IEEE для Информационных технологий - Телекоммуникаций и обмена информацией между системными Локальными сетями и городскими компьютерными сетями - Конкретными требованиями - Часть 11: Беспроводное Среднее управление доступом (MAC) LAN и Физический уровень (PHY) Технические требования.
Нэнда Кишор Чавали, 'Система и метод для обнаружения формата системы координат' (март 2013), US20130077718A1.
Depuncturer | OFDM Channel Estimator | OFDM Equalizer | OFDM Demodulator | Viterbi Decoder