interpretHESIGABits

Обновите объект настройки восстановления с битами "SIG HE"

Синтаксис

cfgUpdated = interpretHESIGABits(cfg,bits)

Описание

пример

cfgUpdated = interpretHESIGABits(cfg,bits) обновления объект cfg настройки wlanHERecoveryConfig путем интерпретации восстановленных битов "SIG HE" bits. Функция заполняет свойства cfg, которые относятся к полю HE-SIG-A, и возвращает обновленный объект cfgUpdated.

Примеры

свернуть все

Восстановите Поле данных HE для пакета ФОРМАТА SU HE путем декодирования HE сигнальные поля, обновления неизвестных свойств в объекте настройки восстановления и передачи обновленного объекта в функцию Восстановления данных HE.

Создайте объект настройки ФОРМАТА SU HE, задав MCS, и извлеките пропускную способность канала.

cfgHESU = wlanHESUConfig('MCS',0);
cbw = cfgHESU.ChannelBandwidth;

Сгенерируйте форму волны для заданного объекта настройки.

bits = randi([0 1],8*getPSDULength(cfgHESU),1,'int8');
waveform = wlanWaveformGenerator(bits,cfgHESU);

Создайте объект настройки восстановления WLAN, задав известную пропускную способность канала и пакет ФОРМАТА SU HE.

cfgRx = wlanHERecoveryConfig('ChannelBandwidth',cbw,'PacketFormat','HE-SU');

Восстановите HE сигнальные поля путем получения полевых индексов и выполнения соответствующих операций демодуляции.

ind = wlanFieldIndices(cfgRx);
heLSIGandRLSIG = waveform(ind.LSIG(1):ind.RLSIG(2),:);
symLSIG = wlanHEDemodulate(heLSIGandRLSIG,'L-SIG',cbw);
info = wlanHEOFDMInfo('L-SIG',cbw);

Объедините поля L-SIG и RL-SIG для разнообразия и получите поднесущие данных.

symLSIG = mean(symLSIG,2);
lsig = symLSIG(info.DataIndices,:);

Декодируйте поле L-SIG, принимая бесшумный канал, и используйте поле длины, чтобы обновить объект восстановления.

[~,~,lsigInfo] = wlanLSIGBitRecover(lsig,0);
cfgRx.LSIGLength = lsigInfo.Length;

Восстановите и демодулируйте поле HE-SIG-A, получите поднесущие данных и восстановите биты "SIG HE".

heSIGA = waveform(ind.HESIGA(1):ind.HESIGA(2),:);
symSIGA = wlanHEDemodulate(heSIGA,'HE-SIG-A',cbw);
siga = symSIGA(info.DataIndices,:);
[sigaBits,failCRC] = wlanHESIGABitRecover(siga,0);

Обновите объект настройки восстановления с восстановленными битами "SIG HE" и получите обновленные полевые индексы.

cfgRx = interpretHESIGABits(cfgRx,sigaBits);
ind = wlanFieldIndices(cfgRx);

Получите и декодируйте Поле данных HE.

heData = waveform(ind.HEData(1):ind.HEData(2),:);
symData = wlanHEDemodulate(heData,'HE-Data', ... 
    cbw,cfgRx.GuardInterval,[cfgRx.RUSize cfgRx.RUIndex]);
infoData = wlanHEOFDMInfo('HE-Data',cbw,cfgRx.GuardInterval,[cfgRx.RUSize cfgRx.RUIndex]);
data = symData(infoData.DataIndices,:,:);
dataBits = wlanHEDataBitRecover(data,0,cfgRx);

Проверяйте, что возвращенные биты данных совпадают с битами передаваемых данных.

isequal(bits,dataBits)
ans = logical
   1

Обновите объект настройки восстановления HE WLAN путем интерпретации восстановленного информационного SIG HE "битов".

Создайте объект настройки WLAN HE-MU-format, установив индекс выделения на 0.

cfgHEMU = wlanHEMUConfig(0);

Сгенерируйте форму волны WLAN для заданной настройки формата и индексов поля PPDU.

waveform = wlanWaveformGenerator(1,cfgHEMU);
ind = wlanFieldIndices(cfgHEMU);

Декодируйте поле L-SIG и получите информацию об ортогональном мультиплексировании деления частоты (OFDM). Эта информация требуется, чтобы получать длину L-SIG, которая используется в объекте настройки восстановления.

lsig = waveform(ind.LSIG(1):ind.LSIG(2),:);
lsigDemod = wlanHEDemodulate(lsig,'L-SIG',cfgHEMU.ChannelBandwidth);
preHEInfo = wlanHEOFDMInfo('L-SIG',cfgHEMU.ChannelBandwidth);

Восстановите биты L-SIG и сопутствующую информацию, убедившись, что биты передают проверку четности. Для этого примера мы принимаем бесшумный канал. Для более реалистических результатов можно передать форму волны через 802.11ax™ модель канала при помощи Системы wlanTGaxChannel object™ и работать с полученной формой волны.

csi = ones(52,1);
[lsigBits,failCheck,lsigInfo] = wlanLSIGBitRecover(lsigDemod(preHEInfo.DataIndices,:,:),0,csi);

Декодируйте поле HE-SIG-A и восстановите биты "SIG HE", гарантируя, что биты передают контроль циклическим избыточным кодом (CRC).

siga = waveform(ind.HESIGA(1):ind.HESIGA(2),:);
sigaDemod = wlanHEDemodulate(siga,'HE-SIG-A',cfgHEMU.ChannelBandwidth);
preHEInfo = wlanHEOFDMInfo('HE-SIG-A',cfgHEMU.ChannelBandwidth);
[bits,failCRC] = wlanHESIGABitRecover(sigaDemod(preHEInfo.DataIndices,:,:),0,csi);

Создайте объект настройки восстановления WLAN, задав пакет HE-MU-format и длину поля L-SIG.

cfg = wlanHERecoveryConfig('PacketFormat','HE-MU','LSIGLength',lsigInfo.Length);

Обновите объект настройки восстановления с восстановленными битами "SIG HE". Отобразите обновленный объект. Поле, возвращенное как -1 или 'Unknown', указывает на неизвестное или неопределенное значение свойства, которое может быть обновлено после декодирования поля HE-SIG-B пакета HE-MU.

cfgUpdated = interpretHESIGABits(cfg,bits);
disp(cfgUpdated);
  wlanHERecoveryConfig with properties:

                    PacketFormat: 'HE-MU'
                ChannelBandwidth: 'CBW20'
                      LSIGLength: 878
                 SIGBCompression: 0
                         SIGBMCS: 0
                         SIGBDCM: 0
          NumSIGBSymbolsSignaled: 10
                            STBC: 0
                 LDPCExtraSymbol: 1
             PreFECPaddingFactor: 1
                  PEDisambiguity: 0
                   GuardInterval: 3.2000
                       HELTFType: 4
                 NumHELTFSymbols: 1
                UplinkIndication: 0
                        BSSColor: 0
                    SpatialReuse: 0
                    TXOPDuration: 127
                     HighDoppler: 0
                 AllocationIndex: -1
       NumUsersPerContentChannel: -1
         RUTotalSpaceTimeStreams: -1
                          RUSize: -1
                         RUIndex: -1
                           STAID: -1
                             MCS: -1
                             DCM: -1
                   ChannelCoding: 'Unknown'
                     Beamforming: -1
             NumSpaceTimeStreams: -1
    SpaceTimeStreamStartingIndex: -1

Входные параметры

свернуть все

Объект настройки восстановления перед интерпретацией битов "SIG HE", заданный как объект wlanHERecoveryConfig.

Восстановленные биты "SIG HE", заданный как 52 1 вектор столбца двоичных данных.

Типы данных: double

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

свернуть все

Обновленный объект настройки восстановления, возвращенный как объект wlanHERecoveryConfig. Свойства обновленного объекта заполняются в соответствии с восстановленными битами "SIG HE" bits. Поля HE-SIG-A заданы в Таблицах 28-18 и 28-19 [2].

Ссылки

[1] Станд. IEEE 802.11™– 2016. “Часть 11: Беспроводное Среднее управление доступом (MAC) LAN и Физический уровень (PHY) Спецификации". Стандарт IEEE для Информационных технологий – Телекоммуникаций и обмена информацией между системами – Локальными сетями и городскими компьютерными сетями – Конкретные требования.

[2] IEEE P802.11ax™/D3.1. “Часть 11: Беспроводное Среднее управление доступом (MAC) LAN и Физический уровень (PHY) Спецификации. Поправка 6: Улучшения для Высокой эффективности WLAN”. Стандарт IEEE для Информационных технологий – Телекоммуникаций и обмена информацией между системами – Локальными сетями и городскими компьютерными сетями – Конкретные требования.

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

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Смотрите также

Объекты

Функции

Введенный в R2019a

Для просмотра документации необходимо авторизоваться на сайте