Генерация формы волны 802.11ac с кадрами MAC

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

Введение

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

Устройство под тестом (DUT) стимулировано с тестовыми векторами РФ, обычно через соединенную проводом ссылку. Пакетный коэффициент ошибок (PER) является метрикой, используемой, чтобы проверить производительность получателя в данном, получают степень сигнала в присутствии шума, интерференции или других нарушений. PER задан как количество неправильно декодируемых пакетов, разделенных на общее количество переданных пакетов.

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

  • Заголовок MAC

  • Структурируйте тело

  • FCS

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

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

IEEE 802.11ac Настройка формата VHT

Формат определенная настройка формы волны 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, переданный в каждом пакете, скремблирован с помощью случайного seed за каждый пакет. Это выполняется путем определения вектора seed инициализации скремблера. Допустимая область значений seed между 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). Один или несколько MPDUs разграничены, дополнены и агрегированы, чтобы создать агрегированный MPDU (A-MPDU). A-MPDU разграничен и дополнен, чтобы сформировать модуль эксплуатационных данных физического уровня (PSDU), который кодируется и модулируется, чтобы создать переданный пакет. Этот процесс инкапсуляции показывают в следующей схеме:

В этом примере PSDU создается содержащий один MPDU для каждого пакета. MPDU состоит из заголовка MPDU, кадр A-MSDU, содержащий, конкатенировал подкадры A-MSDU со случайными данными и допустимым FCS. Функция wlanMACFrame создает A-MPDU с разделителями EOF и дополнением, т.е. PSDU, как задано в [1]. Это также возвращает длину A-MPDU, который называют как Длина APEP, которая используется, чтобы установить свойство vhtCfg.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 a PSDU containing A-MPDU with EOF delimiters and padding
    [psdu, apepLength] = wlanMACFrame(msdu, macCfg, vhtCfg);

    % Convert the PSDU in hexadecimal format to bits
    decimalBytes = hex2dec(psdu);
    psduBits = reshape(de2bi(decimalBytes, bitsPerByte)', [], 1);

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

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

Сгенерируйте основополосную форму волны

Конкатенированные биты PSDU для всех пакетов, data, передаются в качестве аргумента wlanWaveformGenerator наряду с пакетным объектом vhtCfg настройки VHT. Это конфигурирует генератор формы волны, чтобы синтезировать 802.11ac форма волны VHT. Чтобы сгенерировать 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, может быть просмотрен с помощью DSP System Toolbox™ спектр анализатор. Как ожидалось пропускная способность сигнала на 160 МГц явно видима в основной полосе.

spectrumAnalyzer = dsp.SpectrumAnalyzer;
spectrumAnalyzer.SampleRate = fs;
spectrumAnalyzer.SpectrumType = 'Power density';
spectrumAnalyzer.RBWSource = 'Property';
spectrumAnalyzer.RBW = 100e3;
spectrumAnalyzer.FrequencySpan = 'Span and center frequency';
spectrumAnalyzer.Span = fs;
spectrumAnalyzer.SpectralAverages = 10;
spectrumAnalyzer.YLabel = 'PSD';
spectrumAnalyzer.YLimits = [-80 -40];
spectrumAnalyzer.Title = 'Baseband IEEE 802.11ac Waveform';
spectrumAnalyzer(txWaveform);

Сгенерируйте беспроводной сигнал Используя генератор сигнала РФ

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

Для просмотра документации необходимо авторизоваться на сайте