Основное моделирование ссылки WLAN

Этот пример показывает, как создать основную модель ссылки WLAN с помощью WLAN Toolbox™. Пакет IEEE® 802.11ac™ [1] VHT создан, проходится канал TGac. Полученный сигнал компенсируется и декодируется в порядке восстановить переданные биты.

Введение

Этот пример показывает, как простая симуляция получателя канала передатчика может быть создана с помощью функций из WLAN Toolbox. VHT передает и получает ссылку, реализован как показано в фигуре ниже. Пакет VHT передается через канал TGac, демодулируемый, и компенсируемые символы восстанавливаются. Компенсируемые символы декодируются, чтобы восстановить переданные биты.

Генерация формы волны

802.11ac передача VHT моделируется в этом примере. Параметры передачи для формата VHT 802.11™ стандарт сконфигурированы с помощью объекта настройки VHT. wlanVHTConfig создает объект настройки VHT. В этом примере объект сконфигурирован для пропускной способности канала на 20 МГц, MCS 5 и одной антенны передачи.

% Create a format configuration object for a SISO VHT transmission
cfgVHT = wlanVHTConfig;
cfgVHT.NumTransmitAntennas = 1;    % Transmit antennas
cfgVHT.NumSpaceTimeStreams = 1;    % Space-time streams
cfgVHT.APEPLength = 4096;          % APEP length in bytes
cfgVHT.MCS = 5;                    % Single spatial stream, 64-QAM
cfgVHT.ChannelBandwidth = 'CBW20'; % Transmitted signal bandwidth
Rs = wlanSampleRate(cfgVHT);       % Sampling rate

Один пакет VHT сгенерирован состоящий из обучения, и полей данных сигнала:

  • Non-HT короткое учебное поле (L-STF)

  • Поле обучения Нон-ХТа Лонга (L-LTF)

  • Поле Non-HT Signal (L-SIG)

  • Поле VHT Signal (VHT-SIG-A)

  • VHT короткое учебное поле (VHT-STF)

  • VHT длинное учебное поле (VHT-LTF)

  • Поле VHT Signal B (VHT-SIG-B)

  • Поле данных

Эти поля сгенерированы отдельно с помощью функций от WLAN Toolbox и конкатенированы, чтобы произвести пакет передачи VHT.

Первое поле в PPDU является L-STF и используется для запуска пакетной установки обнаружения и автоматического управления усилением (AGC). Это также используется для начальной оценки смещения частоты и крупной синхронизации синхронизации. Функция wlanLSTF генерирует поле L-STF во временном интервале с помощью некоторых параметров, включенных в объект cfgVHT настройки.

lstf = wlanLSTF(cfgVHT);

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

lltf = wlanLLTF(cfgVHT);

Поле L-SIG несет пакетную настройку, такую как скорость передачи данных, модуляция и уровень кода для формата non-HT. Функция wlanLSIG генерирует поле L-SIG во временном интервале.

lsig = wlanLSIG(cfgVHT);

Фигура ниже показов L-STF, поля L-LTF и L-SIG. Эти поля характерны для VHT, HT-Mixed и non-HT OFDM форматы передачи.

nonHTfield = [lstf;lltf;lsig]; % Combine the non-HT preamble fields

Определенные и учебные поля сигнала VHT сгенерированы после полей преамбулы non-HT. Цель поля VHT-SIG-A состоит в том, чтобы предоставить информацию, чтобы позволить получателю декодировать полезную нагрузку данных. VHT-SIG-A состоит из двух символов VHT-SIG-A1 и VHT-SIG-A2. Функция wlanVHTSIGA генерирует поле VHT-SIG-A во временном интервале.

vhtsiga = wlanVHTSIGA(cfgVHT);

Цель VHT-STF состоит в том, чтобы улучшить оценку управления усилением передачу MIMO и помочь получателю обнаружить повторяющийся шаблон, подобный полю L-STF. Функция wlanVHTSTF генерирует поле VHT-STF во временном интервале.

vhtstf = wlanVHTSTF(cfgVHT);

VHT-LTF обеспечивает среднее значение для получателя, чтобы оценить канал между передатчиком и получателем. В зависимости от количества потоков времени пробела это состоит из 1,2,4,6 или 8 символов VHT-LTF. Функция wlanVHTLTF генерирует VHT-LTF во временном интервале.

vhtltf = wlanVHTLTF(cfgVHT);

Поле VHT-SIG-B используется, чтобы установить скорость передачи данных и длину полезной нагрузки поля данных переданного пакета. Функция wlanVHTSIGB генерирует поле VHT-SIG-B во временном интервале.

vhtsigb = wlanVHTSIGB(cfgVHT);

Создайте преамбулу со сгенерированными и учебными полями сигнала для формата VHT.

preamble = [lstf;lltf;lsig;vhtsiga;vhtstf;vhtltf;vhtsigb];

Функция wlanVHTData генерирует временной интервал поле данных VHT. Настройка формата VHT cfgVHT задает параметры для генерации поля данных от битов PSDU. Свойство cfgVHT.PSDULength дает количество байтов, которые будут переданы в поле данных VHT. Это свойство используется, чтобы сгенерировать случайные биты PSDU txPSDU.

rng(0) % Initialize the random number generator
txPSDU = randi([0 1],cfgVHT.PSDULength*8,1); % Generate PSDU data in bits
data = wlanVHTData(txPSDU,cfgVHT);

% A VHT waveform is constructed by prepending the non-HT and VHT
% preamble fields with data
txWaveform = [preamble;data]; % Transmit VHT PPDU

Кроме того, форма волны для данной настройки формата может также быть сгенерирована с помощью одного вызова функции wlanWaveformGenerator функция. Эта функция может произвести один или несколько пакетов VHT. По умолчанию работа с окнами OFDM применяется к сгенерированной форме волны. Для получения дополнительной информации о работе с окнами OFDM см. wlanWaveformGenerator документацию.

Нарушения канала

Этот раздел моделирует эффекты беспроводной передачи. Переданному сигналу повреждают канал и AWGN. Уровень AWGN дан в dBs. В этом примере модель [2] канала TGac используется с Моделью-B профиля задержки. Поскольку эта задержка профилирует, когда расстояние между передатчиком и получателем больше, чем или равно 5 метрам, модель находится в Не Угол обзора (N-LOS) настройка. Это описано далее в справке для wlanTGacChannel.

% Parameterize the channel
tgacChannel = wlanTGacChannel;
tgacChannel.DelayProfile = 'Model-B';
tgacChannel.NumTransmitAntennas = cfgVHT.NumTransmitAntennas;
tgacChannel.NumReceiveAntennas = 1;
tgacChannel.LargeScaleFadingEffect = 'None';
tgacChannel.ChannelBandwidth = 'CBW20';
tgacChannel.TransmitReceiveDistance = 5;
tgacChannel.SampleRate = Rs;
tgacChannel.RandomStream = 'mt19937ar with seed';
tgacChannel.Seed = 10;

% Pass signal through the channel. Append zeroes to compensate for channel
% filter delay
txWaveform = [txWaveform;zeros(10,1)];
chanOut = tgacChannel(txWaveform);

snr = 40; % In dBs
rxWaveform = awgn(chanOut,snr,0);

% Display the spectrum of the transmitted and received signals. The
% received signal spectrum is affected by the channel
spectrumAnalyzer  = dsp.SpectrumAnalyzer('SampleRate',Rs, ...
            'ShowLegend',true, ...
            'Window', 'Rectangular', ...
            'SpectralAverages',10, ...
            'YLimits',[-30 10], ...
            'ChannelNames',{'Transmitted waveform','Received waveform'});
spectrumAnalyzer([txWaveform rxWaveform]);

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

В этом разделе временной интервал VHT-LTF извлечен от полученной формы волны. Форма волны принята, чтобы синхронизироваться с запуском пакета путем принятия задержки фильтра канала во внимание. VHT-LTF демодулируется и используется, чтобы оценить канал. Полученный сигнал затем компенсируется с помощью оценки канала, полученной из VHT-LTF.

В этом примере полученный сигнал синхронизируется с запуском пакета путем компенсации известной задержки фильтра канала. Для получения дополнительной информации о том, как автоматически обнаружить и синхронизироваться с полученным сигналом, смотрите следующие примеры:

chInfo = info(tgacChannel); % Get characteristic information
% Channel filter delay, measured in samples
chDelay  = chInfo.ChannelFilterDelay;
rxWaveform = rxWaveform(chDelay+1:end,:);

После синхронизации получатель должен извлечь соответствующие поля от полученного пакета. Функция wlanFieldIndices используется, чтобы возвратить запуск и демонстрационные индексы временного интервала конца всех полей относительно первой выборки в пакете. Эти индексы используются, чтобы извлечь обязательные поля для последующей обработки.

indField = wlanFieldIndices(cfgVHT);

Оценка шумовой степени после демодуляции OFDM требуется, чтобы выполнять коррекцию MMSE на полученных символах OFDM. В этом примере шумовая степень в полях VHT оценивается с помощью демодулируемых символов L-LTF. L-LTF извлечен от полученной формы волны и демодулируется с помощью функции wlanLLTFDemodulate.

indLLTF = indField.LLTF(1):indField.LLTF(2);
demodLLTF = wlanLLTFDemodulate(rxWaveform(indLLTF),cfgVHT);
% Estimate noise power in VHT fields
nVar = helperNoiseEstimate(demodLLTF,cfgVHT.ChannelBandwidth,cfgVHT.NumSpaceTimeStreams);

Чтобы извлечь VHT-LTF от полученного сигнала, запуск и индексы конца используются, чтобы сгенерировать вектор индексов.

indVHTLTF = indField.VHTLTF(1):indField.VHTLTF(2);

VHT-LTF используется, чтобы оценить канал между всеми пространственно-временными потоками и получить антенны. VHT-LTF извлечен от полученной формы волны и демодулируется с помощью функции wlanVHTLTFDemodulate.

demodVHTLTF = wlanVHTLTFDemodulate(rxWaveform(indVHTLTF,:),cfgVHT);

Оценка канала включает эффект прикладного пространственного отображения и циклических сдвигов в передатчике для много настройки антенны. wlanVHTLTFChannelEstimate функция возвращает предполагаемый канал между всеми пространственно-временными потоками, и получите антенны.

chanEstVHTLTF = wlanVHTLTFChannelEstimate(demodVHTLTF,cfgVHT);

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

figure
plot(20*log10(abs(chanEstVHTLTF)));
grid on;
title('Estimated Channel Response');
xlabel('Subcarrier index');
ylabel('Power (dB)');

Чтобы извлечь поле данных от полученного сигнала, запуск и индексы конца для поля данных используются, чтобы сгенерировать вектор индексов.

indData = indField.VHTData(1):indField.VHTData(2);

% Recover the bits and equalized symbols in the VHT Data field using the
% channel estimates from VHT-LTF
[rxPSDU,~,eqSym] = wlanVHTDataRecover(rxWaveform(indData,:),chanEstVHTLTF,nVar,cfgVHT);

% Compare transmit and receive PSDU bits
numErr = biterr(txPSDU,rxPSDU);

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

% Plot equalized symbols
constellationDiagram = comm.ConstellationDiagram;
constellationDiagram.ReferenceConstellation = wlanReferenceSymbols(cfgVHT);
% Compare received and reference constellation
constellationDiagram(reshape(eqSym,[],1));
constellationDiagram.Title = 'Equalized Data Symbols';

Приложение

Этот пример использует следующую функцию помощника:

Выбранная библиография

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

  2. Breit, G., Х. Сэмпэт, С. Вермани, и др. Приложение Модели Канала TGac. Версия 12. IEEE 802.11-09/0308r12, март 2010.