exponenta event banner

Генерация сигнала 802.11ac с кадрами MAC

В этом примере показано, как генерировать передачу IEEE ® 802.11ac™, содержащую кадры MAC, подходящие для выполнения тестов приемников с частотой ошибок пакетов радиосвязи (PER).

Введение

WLAN Toolbox™ может использоваться для генерации стандартных совместимых форм сигнала для выполнения тестов приемника. Базовый сценарий тестирования приемника WLAN показан на диаграмме ниже.

Тестируемое устройство (DUT) стимулируется RF тестовыми векторами, обычно через проводную линию связи. Частота ошибок пакета (PER) является метрикой, используемой для проверки производительности приемника при данной мощности принимаемого сигнала при наличии шума, помех или других нарушений. PER определяется как количество неправильно декодированных пакетов, деленное на общее количество переданных пакетов.

Последовательность проверки кадра (FCS) в кадре MAC используется для определения того, был ли кадр MAC правильно декодирован приемником, и, следовательно, был ли пакет принят с ошибкой. Общий MAC-кадр для IEEE 802.11ac содержит следующие поля:

  • Заголовок MAC

  • Корпус рамы

  • FCS

Данные для передачи с более высокого уровня содержатся в теле кадра MAC. Передатчик использует циклическую избыточную проверку над заголовком MAC и полем тела кадра для генерации значения FCS. Приемник вычисляет CRC и сравнивает его с принятым полем FCS, чтобы определить, произошла ли ошибка во время передачи.

В этом примере генерируется сигнал IEEE 802.11ac, состоящий из множества пакетов формата VHT. wlanWaveformGenerator функция может быть использована для генерации формы сигнала, содержащего один или более пакетов. wlanWaveformGenerator функция потребляет блоки данных услуг физического уровня (PSDU) для каждого пакета и выполняет соответствующую обработку физического уровня для создания формы сигнала. PSDU, содержащий заголовок MAC и допустимый FCS, может быть сгенерирован с помощью wlanMACFrame функция. В этом примере синтезируется многопакетный сигнал основной полосы частот, содержащий пакеты MAC. Этот сигнал может быть загружен в генератор сигнала для радиочастотной передачи и использован для тестирования PER приемника. Исходный код предоставлен загрузке, и играйте форму волны, используя генератор сигнала Keysight Technologies™ N5172B. Пример обработки показан на следующей диаграмме:

Конфигурация формата VHT IEEE 802.11ac

Специфичная для формата конфигурация сигнала VHT, синтезированного с помощью wlanWaveformGenerator функция описывается объектом конфигурации формата VHT, wlanVHTConfig. Свойства объекта содержат конфигурацию. В этом примере объект конфигурируется для полосы пропускания 160 МГц, 1 передающей антенны, 1 пространственно-временного потока и скорости QPSK 1/2 (MCS 1).

vhtCfg = wlanVHTConfig;             % Create packet configuration
vhtCfg.ChannelBandwidth = 'CBW160'; % 160 MHz channel bandwidth
vhtCfg.NumTransmitAntennas = 1;     % 1 transmit antenna
vhtCfg.NumSpaceTimeStreams = 1;     % 1 space-time stream
vhtCfg.MCS = 1;                     % Modulation: QPSK Rate: 1/2

Конфигурация генерации формы сигнала

wlanWaveformGenerator функция может быть сконфигурирована для генерации одного или более пакетов и добавления времени простоя между каждым пакетом. В этом примере будут созданы четыре пакета с периодом простоя 20 микросекунд.

numPackets = 4;   % Generate 4 packets
idleTime = 20e-6; % 20 microseconds idle period after packet

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

% Initialize the scrambler with a random integer for each packet
scramblerInitialization = randi([1 127],numPackets,1);

Создание PSDU для каждого пакета

Для передачи данных IEEE 802.11ac кадр MAC называется блоком данных протокола MAC (MPDU), заголовок MAC называется заголовком MPDU, и тело кадра является агрегированным блоком данных службы MAC (A-MSDU). Один или несколько MPDU разделяются, дополняются и агрегируются для создания агрегированного MPDU (A-MPDU). Блок A-MPDU разделяется и дополняется для формирования блока служебных данных физического уровня (PSDU), который кодируется и модулируется для создания передаваемого пакета. Этот процесс инкапсуляции показан на следующей диаграмме:

В этом примере создается PSDU, содержащий один MPDU для каждого пакета. MPDU состоит из заголовка MPDU, кадра A-MSDU, содержащего конкатенированные подкадры A-MSDU со случайными данными и допустимыми FCS. wlanMACFrame создает A-MPDU с разделителями EOF и дополнением, т.е. PSDU, как указано в [1]. Он также возвращает длину A-MPDU, называемую длиной APEP, которая используется для установки APEPLength свойства объекта конфигурации VHT. PSDU генерируется для каждого пакета и объединяется в вектор. data для передачи с wlanWaveformGenerator функция. Обработка для создания связанных битов PSDU data показано на диаграмме ниже:

% Create frame configuration
macCfg = wlanMACFrameConfig('FrameType', 'QoS Data');
macCfg.FrameFormat = 'VHT';     % Frame format
macCfg.MSDUAggregation = true;  % Form A-MSDUs internally
bitsPerByte = 8;                % Number of bits in 1 byte
data = [];

for i=1:numPackets
    % Get MSDU lengths to create a random payload for forming an A-MPDU of
    % 4048 octets (pre-EOF padding)
    msduLengths = wlanMSDULengths(4048, macCfg, vhtCfg);
    msdu = cell(numel(msduLengths), 1);

    % Create MSDUs with the obtained lengths
    for j = 1:numel(msduLengths)
        msdu{j} = randi([0 255], 1, msduLengths(j));
    end

    % Generate PSDU bits containing A-MPDU with EOF delimiters and padding
    [psdu, apepLength] = wlanMACFrame(msdu, macCfg, vhtCfg, 'OutputFormat', 'bits');

    % Set the APEP length in the VHT configuration
    vhtCfg.APEPLength = apepLength;

    % Concatenate packet PSDUs for waveform generation
    data = [data; psdu]; %#ok<AGROW>
end

Генерация сигнала основной полосы частот

Связанные биты PSDU для всех пакетов, data, передаются в качестве аргумента wlanWaveformGenerator функция вместе с объектом конфигурации пакета VHT vhtCfg. Это настраивает генератор сигнала для синтеза сигнала VHT 802.11ac. Для генерации 802.11n™ HT или других форм сигнала формата используйте другой объект конфигурации формата, например, wlanHTConfig или wlanNonHTConfig. Генератор формы сигнала дополнительно сконфигурирован с использованием пар имя-значение для генерации множества пакетов с заданным временем простоя между пакетами и начальными состояниями скремблера.

% Generate baseband VHT packets
txWaveform = wlanWaveformGenerator(data,vhtCfg, ...
    'NumPackets',numPackets,'IdleTime',idleTime, ...
    'ScramblerInitialization',scramblerInitialization);

fs = wlanSampleRate(vhtCfg);
disp(['Baseband sampling rate: ' num2str(fs/1e6) ' Msps']);
Baseband sampling rate: 160 Msps

Величина сигнала основной полосы частот отображается ниже. Обратите внимание на количество настроенных пакетов и время простоя.

figure;
plot(abs(txWaveform));
xlabel('Sample index');
ylabel('Magnitude');
title('Baseband IEEE 802.11ac Waveform');
legend('Transmit antenna 1');

Частотный спектр генерируемого сигнала во временной области, txWaveform, можно просмотреть с помощью Toolbox™ системы DSP dsp.SpectrumAnalyzer. Как и ожидалось, полоса пропускания сигнала 160 МГц хорошо видна на основной полосе частот.

spectrumAnalyzer = dsp.SpectrumAnalyzer;
spectrumAnalyzer.SampleRate = fs;
spectrumAnalyzer.SpectrumType = 'Power density';
spectrumAnalyzer.RBWSource = 'Property';
spectrumAnalyzer.RBW = 100e3;
spectrumAnalyzer.AveragingMethod = 'Exponential';
spectrumAnalyze.ForgettingFactor = 0.99;
spectrumAnalyzer.YLabel = 'PSD';
spectrumAnalyzer.YLimits = [-80 -40];
spectrumAnalyzer.Title = 'Baseband IEEE 802.11ac Waveform';
spectrumAnalyzer(txWaveform);

Генерация эфирного сигнала с помощью генератора ВЧ-сигнала

Сигнал основной полосы частот, созданный WLAN Toolbox, теперь может быть загружен в генератор сигнала для выполнения тестов приемника. Toolbox™ управления приборами используется для генерации радиочастотного сигнала с центральной частотой 5,25 ГГц с помощью генератора сигналов Keysight Technologies N5172B.

% Control whether to download the waveform to the waveform generator
playOverTheAir = false;

% Download the baseband IQ waveform to the instrument. Generate the RF
% signal at a center frequency of 5.25 GHz and output power of -10 dBm.
if playOverTheAir
    fc = 5.25e9; %#ok<UNRCH> % Center frequency
    power = -10;     % Output power
    loopCount = Inf; % Number time to loop

    % Configure the signal generator, download the waveform and loop
    rf = rfsiggen();
    rf.Resource = 'TCPIP0::192.168.0.1::inst0::INSTR';
    rf.Driver = 'AgRfSigGen';
    connect(rf);                  % Connect to the instrument
    download(rf,txWaveform.',fs); % Download the waveform to the instrument
    start(rf,fc,power,loopCount); % Start transmitting waveform

    % When you have finished transmitting, stop the waveform output
    stop(rf);
    disconnect(rf);
end

Избранная библиография

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