В этом примере показано, как сгенерировать передачу 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
функция использует модули эксплуатационных данных физического уровня (PSDUs) для каждого пакета и выполняет соответствующую обработку физического уровня, чтобы создать форму волны. PSDU, содержащий заголовок MAC и допустимый FCS, может быть сгенерирован с помощью wlanMACFrame
функция. В этом примере синтезируется мультипакетная основополосная форма волны, содержащая пакеты MAC. Эта форма волны может загружаться на генератор сигнала для передачи RF и использоваться для тестирования 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 oversamplingFactor = 1.5; % Oversample waveform 1.5x nominal baseband rate
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, которая используется, чтобы установить 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
функция наряду с пакетным объектом vhtCfg
настройки VHT. Это конфигурирует генератор формы волны, чтобы синтезировать 802.11ac форма волны VHT. Чтобы сгенерировать 802.11n™ HT или другие формы волны формата, используйте объект настройки другого формата, например
, wlanHTConfig
или wlanNonHTConfig
. Генератор формы волны дополнительно сконфигурирован с помощью пар "имя-значение", чтобы сгенерировать несколько сверхдискретизированных пакетов с заданным временем простоя между пакетами и начальных состояний скремблера.
% Generate baseband VHT packets txWaveform = wlanWaveformGenerator(data,vhtCfg, ... 'NumPackets',numPackets,'IdleTime',idleTime, ... 'ScramblerInitialization',scramblerInitialization, ... 'OversamplingFactor',oversamplingFactor); fs = wlanSampleRate(vhtCfg,'OversamplingFactor',oversamplingFactor); disp(['Baseband sampling rate: ' num2str(fs/1e6) ' Msps']);
Baseband sampling rate: 240 Msps
Величина основополосной формы волны отображена ниже. Отметьте количество пакетов и сконфигурированное время простоя.
figure; plot(abs(txWaveform)); xlabel('Sample index'); ylabel('Magnitude'); title('Baseband IEEE 802.11ac Waveform'); legend('Transmit antenna 1');
Просмотрите спектр частоты сгенерированной формы волны области времени при помощи 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.Title = 'Baseband IEEE 802.11ac Waveform'; spectrumAnalyzer(txWaveform); release(spectrumAnalyzer)
Основополосная форма волны, созданная WLAN Toolbox, может теперь быть загружена на генератор сигнала, чтобы выполнить тесты приемника. Используйте Instrument Control Toolbox, чтобы сгенерировать сигнал RF с центральной частотой RF на 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.11™-2016 Стандарт IEEE для Информационных технологий - Телекоммуникаций и обмена информацией между системами - Локальными сетями и городскими компьютерными сетями - Конкретными требованиями - Часть 11: Беспроводное Среднее управление доступом (MAC) LAN и Физический уровень (PHY) Технические требования.