Реализация HDL приемника WLAN

В этом примере показано, как спроектировать приемник беспроводной локальной сети (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-код для этого примера, у вас должен быть продукт 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  

Ссылки

  1. IEEE 802.11-2016 - Стандарт IEEE для Информационных технологий - Телекоммуникаций и обмена информацией между системными Локальными сетями и городскими компьютерными сетями - Конкретными требованиями - Часть 11: Беспроводное Среднее управление доступом (MAC) LAN и Физический уровень (PHY) Технические требования.

  2. Нэнда Кишор Чавали, 'Система и метод для обнаружения формата системы координат' (март 2013), US20130077718A1.

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

| | | |

Похожие темы