exponenta event banner

wlanFieldIndices

Создание индексов полей PPDU

Описание

пример

ind = wlanFieldIndices(cfg) прибыль indструктура, содержащая индексы начала и окончания отдельных полей компонента, которые содержат сигнал блока данных протокола сходимости физического уровня основной полосы частот (PPDU).

Примечание

Для формата без высокой пропускной способности (не HT) эта функция поддерживает генерацию индексов полей только для модуляции OFDM.

пример

ind = wlanFieldIndices(cfg,field) возвращает индексы начала и окончания для указанного типа поля в строках матрицы ind.

Примеры

свернуть все

Создайте объект конфигурации формата WLAN HE-MU и используйте его для генерации формы сигнала HE MU с расширением пакета.

cfg = wlanHEMUConfig(192);
cfg.User{1}.NominalPacketPadding = 16; 
bits = [1;0;0;1];
waveform = wlanWaveformGenerator(bits,cfg);

Верните и просмотрите индексы полей PPDU.

ind = wlanFieldIndices(cfg);
disp(ind)
      LSTF: [1 160]
      LLTF: [161 320]
      LSIG: [321 400]
     RLSIG: [401 480]
    HESIGA: [481 640]
    HESIGB: [641 800]
     HESTF: [801 880]
     HELTF: [881 1200]
    HEData: [1201 3760]
      HEPE: [3761 3840]

Восстановите информационные биты в поле HE-SIG-A однопользовательского сигнала WLAN HE (HE-SU).

Создайте объект конфигурации формата WLAN HE-SU с настройками по умолчанию и используйте его для генерации формы сигнала HE-SU.

cfgHE = wlanHESUConfig;
cbw = cfgHE.ChannelBandwidth;
waveform = wlanWaveformGenerator(1,cfgHE);

Получите индексы полей WLAN, которые содержат поле HE-SIG-A.

ind = wlanFieldIndices(cfgHE);
rxSIGA = waveform(ind.HESIGA(1):ind.HESIGA(2),:);

Выполните демодуляцию мультиплексирования с ортогональным частотным разделением (OFDM) для извлечения поля HE-SIG-A.

sigaDemod = wlanHEDemodulate(rxSIGA,'HE-SIG-A',cbw);

Верните информацию OFDM до HE и извлеките демодулированные символы HE-SIG-A.

preHEInfo = wlanHEOFDMInfo('HE-SIG-A',cbw);
siga = sigaDemod(preHEInfo.DataIndices,:);

Восстановите информационные биты HE-SIG-A и другую информацию, предполагая отсутствие шумов канала. Просмотрите результат проверки четности.

noiseVarEst = 0;
[bits,failCRC] = wlanHESIGABitRecover(siga,noiseVarEst);
disp(failCRC);
   0

Извлеките очень высокопроизводительное короткое обучающее поле (VHT-STF) из сигнала VHT.

Создайте объект конфигурации формата VHT для передачи с несколькими входами/несколькими выходами (MIMO) с использованием 160-MHz полосы пропускания канала. Создайте соответствующий сигнал VHT.

cfg = wlanVHTConfig('MCS',8,'ChannelBandwidth','CBW160', ... 
    'NumTransmitAntennas',2,'NumSpaceTimeStreams',2);
txSig = wlanWaveformGenerator([1;0;0;1],cfg);

Определите индексы полей PPDU компонента для формата VHT.

ind = wlanFieldIndices(cfg)
ind = struct with fields:
       LSTF: [1 1280]
       LLTF: [1281 2560]
       LSIG: [2561 3200]
    VHTSIGA: [3201 4480]
     VHTSTF: [4481 5120]
     VHTLTF: [5121 6400]
    VHTSIGB: [6401 7040]
    VHTData: [7041 8320]

Форма сигнала PPDU VHT состоит из восьми полей, включая семь полей преамбулы и одно поле данных.

Извлеките VHT-STF из передаваемого сигнала.

stf = txSig(ind.VHTSTF(1):ind.VHTSTF(2),:);

Убедитесь, что VHT-STF имеет размер 640 на 2, соответствующий количеству выборок (80 для каждого сегмента полосы пропускания 20-MHz) и количеству передающих антенн.

disp(size(stf))
   640     2

Формирование сигнала VHT. Извлеките и демодулируйте длинное обучающее поле VHT (VHT-LTF) для оценки коэффициентов канала. Восстановите поле данных, используя оценку канала, и используйте это поле для определения количества битовых ошибок.

Настройте объект конфигурации формата VHT с двумя путями.

vht = wlanVHTConfig('NumTransmitAntennas',2,'NumSpaceTimeStreams',2);

Создайте случайный PSDU и создайте соответствующий сигнал VHT.

txPSDU = randi([0 1],8*vht.PSDULength,1);
txSig = wlanWaveformGenerator(txPSDU,vht);

Передача сигнала через канал MIMO TGac 2x2.

tgacChan = wlanTGacChannel('NumTransmitAntennas',2,'NumReceiveAntennas',2, ...
    'LargeScaleFadingEffect','Pathloss and shadowing');
rxSigNoNoise = tgacChan(txSig);

Добавьте AWGN к принятому сигналу. Установите дисперсию шума для случая, в котором приемник имеет 9-dB показатель шума.

nVar = 10^((-228.6+10*log10(290)+10*log10(80e6)+9)/10);
awgnChan = comm.AWGNChannel('NoiseMethod','Variance','Variance',nVar);
rxSig = awgnChan(rxSigNoNoise);

Определите индексы для VHT-LTF и извлеките поле из принятого сигнала.

indVHT = wlanFieldIndices(vht,'VHT-LTF');
rxLTF = rxSig(indVHT(1):indVHT(2),:);

Демодулируют VHT-LTF и оценивают коэффициенты канала.

dLTF = wlanVHTLTFDemodulate(rxLTF,vht);
chEst = wlanVHTLTFChannelEstimate(dLTF,vht);

Извлеките поле VHT-Data и восстановите информационные биты.

indData = wlanFieldIndices(vht,'VHT-Data');
rxData = rxSig(indData(1):indData(2),:);
rxPSDU = wlanVHTDataRecover(rxData,chEst,nVar,vht);

Определите количество битовых ошибок.

numErrs = biterr(txPSDU,rxPSDU)
numErrs = 0

Входные аргументы

свернуть все

Формат передачи, указанный как один из следующих объектов конфигурации: wlanHESUConfig, wlanHEMUConfig, wlanHERecoveryConfig, wlanHETBConfig, wlanVHTConfig, wlanHTConfig, wlanNonHTConfig, wlanDMGConfig, или wlanS1GConfig.

Пример: cfg = wlanVHTConfig

Имя поля PPDU, указанное как символьный вектор. Допустимый набор значений для этого ввода зависит от формата передачи, указанного в cfg вход.

Формат передачи (cfg)Допустимые значения имени поля (field)
wlanHESUConfig, wlanHEMUConfig, wlanHERecoveryConfig, или wlanHETBConfig

'L-STF', 'L-LTF', 'L-SIG', 'RL-SIG', 'HE-SIG-A', 'HE-SIG-B', 'HE-STF', 'HE-LTF', 'HE-Data', или 'HE-PE'

wlanDMGConfig

'DMG-STF', 'DMG-CE', 'DMG-Header', и 'DMG-Data' являются общими для всех направленных конфигураций физического уровня (PHY) с несколькими гигабитами (DMG).

Когда TrainingLength из wlanDMGConfig положительное, дополнительные допустимые поля 'DMG-AGC', 'DMG-AGCSubfields', 'DMG-TRN', 'DMG-TRNCE', и 'DMG-TRNSubfields'.

wlanS1GConfig

'S1G-STF', 'S1G-LTF1', и 'S1G-Data' являются общими для всех конфигураций под-один гигагерц (S1G).

Для 1-MHz или более 2-MHz короткой конфигурации преамбулы дополнительные допустимые поля: 'S1G-SIG' и 'S1G-LTF2N'.

Для конфигурации преамбулы длиной более 2-MHz дополнительные допустимые поля: 'S1G-SIG-A', 'S1G-DSTF', 'S1G-DLTF', и 'S1G-SIG-B'.

wlanVHTConfig

'L-STF', 'L-LTF', 'L-SIG', 'VHT-SIG-A', 'VHT-STF', 'VHT-LTF', 'VHT-SIG-B', или 'VHT-Data'

wlanHTConfig

'L-STF', 'L-LTF', 'L-SIG', 'HT-SIG', 'HT-STF', 'HT-LTF', или 'HT-Data'

wlanNonHTConfig

'L-STF', 'L-LTF', 'L-SIG', или 'NonHT-Data'

Типы данных: char | string

Выходные аргументы

свернуть все

Индексы Start и Stop, возвращаемые в виде матрицы структуры. Индексы соответствуют индексам начала и окончания полей, включенных в форму сигнала основной полосы частот, определяемую cfg вход.

При указании field ввод, функция возвращает ind как матрица N-by-2 uint32 значения, состоящие из индексов запуска и остановки поля PPDU. В этой таблице представлено измерение N матрицы N-by-2, возвращаемое на основе конкретного формата и конфигурации.

ФорматКонфигурацияind или определенная аналитика поля

не-HT

Матрица 1 на 2 для каждого поля

HT

Матрица 1 на 2 для каждого поля

Режим нулевого пакета данных (NDP), если PSDULength имущество wlanHTConfig объект - 0Пустая матрица

VHT и S1G

Матрица 1 на 2 для каждого поля

Режим NDP, если APEPLength имущества wlanVHTConfig или wlanS1GConfig объект - 0Пустая матрица

ОН (1)

Матрица 1 на 2 для каждого поля

Режим NDP, если APEPLength имущества wlanHESUConfig или wlanHESUConfig объект - 0Пустая матрица
При добавлении среднего значения в поле HE-Data для улучшения оценок канала для сценариев с высоким доплеровским значением

R-by-2 матрица при указании field ввод в качестве 'HE-Data', где R - количество блоков данных, разделенных периодами среднего значения

DMG (2)

Матрица 1 на 2 для каждого поля

Когда TrainingLength имущество wlanDMGConfig объект положительныйМатрица 1 на 2 при указании field ввод в качестве 'DMG-AGC' или 'DMG-TRN'
'DMG-AGCSubfields' является TrainingLength-by-2 матрица.
TrainingLength-by-2 матрица при указании field ввод в качестве 'DMG-TRNSubfields'
(TrainingLength/ 4) -by-2 матрица при указании field ввод в качестве 'DMG-TRNCE'
Когда TrainingLength имущество wlanDMGConfig объект - 0Пустая матрица при указании field ввод в качестве 'DMG-AGC', 'DMG-TRN', 'DMG-AGCSubfields', 'DMG-TRNSubfields', или 'DMG-TRNCE'.
  1. Как описано в разделе 27.3.11.16 из [1], можно добавить среднее поле в поле HE-Data для улучшения оценок канала для сценариев с высокой доплеровской частотой.

  2. Для DMG, 'DMG-AGC' область содержит подполя NTrainingLength, где NTrainingLength - 0-64 подполя. 'DMG-TRN' область содержит NTrainingLength  + (NTrainingLength/4) подполя. Как показано на этом рисунке, индексы для 'DMG-AGC' и 'DMG-TRN' перекрываются с индексами их соответствующих субполей, 'DMG-AGCSubfields' и 'DMG-TRNSubfields'.

Типы данных: uint32 | struct

Ссылки

[1] P802.11ax™/D4.1 IEEE. "Часть 11: Спецификации управления доступом к среде беспроводной локальной сети (MAC) и физического уровня (PHY). Поправка 1: Усовершенствования для высокоэффективной WLAN. " Проект стандарта на информационные технологии - телекоммуникации и обмен информацией между системами. Локальные и столичные сети - особые требования.

[2] IEEE Std 802.11™-2016 (версия IEEE Std 802.11-2012). «Часть 11: Спецификации управления доступом к среде беспроводной локальной сети (MAC) и физического уровня (PHY)». Стандарт IEEE для информационных технологий - телекоммуникации и обмен информацией между системами. Локальные и столичные сети - особые требования.

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.
Представлен в R2015b