В этом примере показано, как генерировать передачу 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, синтезированного с помощью 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);
Для передачи данных 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
Стандарт IEEE Std 802.11ac™-2013 IEEE для информационных технологий - Связь и обмен информацией между системами - Локальные и городские сети - Особые требования - Часть 11: Спецификации управления доступом к среде беспроводной локальной сети (MAC) и физического уровня (PHY) - Поправка 4: Улучшения для очень высокой пропускной способности для работы в диапазонах ниже 6 GY