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

Этот пример показывает, как сгенерировать передачу 802.11ac™ IEEE ®, содержащую 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. The wlanWaveformGenerator функция может использоваться, чтобы сгенерировать форму волны, содержащую один или несколько пакетов. The wlanWaveformGenerator функция использует модули служебных данных физического слоя (PSDU) для каждого пакета и выполняет соответствующую обработку физического слоя, чтобы создать форму волны. PSDU, содержащий MAC-заголовок и действительный FCS, может быть сгенерирован с помощью wlanMACFrame функция. В этом примере синтезируется многопакетная форма волны основной полосы, содержащая пакеты MAC. Эта форма волны может быть загружена на генератор сигнала для передачи RF и использована для проверки 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

Строение генерации сигналов

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

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

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

В этом примере создается PSDU, содержащий один MPDU для каждого пакета. MPDU состоит из заголовка MPDU, системы координат A-MSDU, содержащего конкатенированные подкадры A-MSDU со случайными данными и действительными FCS. The 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, можно просмотреть с помощью DSP System Toolbox™ 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, теперь может быть загружена на генератор сигнала для выполнения тестов приемника. Instrument Control Toolbox™ используется для формирования радиочастотного сигнала с центральной частотой 5,25 ГГц RF с помощью генератора N5172B сигналов Keysight Technologies.

% 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: Улучшения для очень высокой пропускной способности