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