Восстановление общих бит поля в поле HE-SIG-B
[
восстанавливает bits
,status
,cfgUpdated
] = wlanHESIGBCommonBitRecover(sym
,noiseVarEst
,cfg
)bits
, общие биты поля HE-SIG-B в IEEE® 802.11ax™ высокоэффективную многопользовательскую (HE MU) передачу.
Функция восстанавливается bits
от sym
, демодулированные и выравниваемые HE-SIG-B общие символы поля. The cfg
вход передачи, которая подвержена шуму канала с оценочным отклонением noiseVarEst
.
Функция также возвращается status
, результат декодирования канала содержимого и cfgUpdated
обновленные параметры передачи были восстановлены из декодированного поля HE-SIG-B.
Для получения дополнительной информации о восстановлении сигнала 802.11ax смотрите процедуру восстановления для примера пакета 802.11ax.
[
также усиливает демпфирование поднесущих с ортогональным частотным разнесением (OFDM) путем использования информации о состоянии канала bits
,status
,cfgUpdated
] = wlanHESIGBCommonBitRecover(sym
,noiseVarEst
,csi
,cfg
)csi
.
Восстановите информационные биты в общем поле HE-SIG-B формы волны WLAN HE MU.
Сгенерируйте сигнал HE MU для заданных информационных бит и объекта строения формата HE-MU.
AllocationIndex = 192;
cfgHE = wlanHEMUConfig(AllocationIndex,'SIGBCompression',false);
bits = [1;0];
waveform = wlanWaveformGenerator(bits,cfgHE);
Извлеките фрагменты L-SIG и HE-SIG-A из формы волны.
ind = wlanFieldIndices(cfgHE); rxLSIG = waveform(ind.LSIG(1):ind.LSIG(2),:); rxSIGA = waveform(ind.HESIGA(1):ind.HESIGA(2),:);
Создайте объект строения восстановления HE для пакета в формате HE-MU, задав пропускную способность канала и формат пакета.
cbw = cfgHE.ChannelBandwidth; cfgRecovery = wlanHERecoveryConfig('ChannelBandwidth',cbw,'PacketFormat','HE-MU');
Выполните демодуляцию OFDM, чтобы извлечь поля L-SIG и HE-SIG-A, принимая отсутствие шума канала.
noiseVarEst = 0; info = wlanHEOFDMInfo('L-SIG',cbw); lsigDemod = wlanHEDemodulate(rxLSIG,'L-SIG',cbw); sigaDemod = wlanHEDemodulate(rxSIGA,'HE-SIG-A',cbw); [~,~,lsigInfo] = wlanLSIGBitRecover(lsigDemod(info.DataIndices,:),noiseVarEst); cfgRecovery.LSIGLength = lsigInfo.Length; siga = wlanHESIGABitRecover(sigaDemod(info.DataIndices,:),noiseVarEst);
Обновите объект строения восстановления HE с помощью информационных бит HE-SIG-A.
cfg = interpretHESIGABits(cfgRecovery,siga);
Извлеките поле HE-SIG-B.
s = getSIGBLength(cfg); rxSIGB = waveform(ind.HESIGA(2)+(1:s.NumSIGBCommonFieldSamples),:);
Демодулируйте и декодируйте общее поле HE-SIG-B, отображая результат.
sigbDemod = wlanHEDemodulate(rxSIGB,'HE-SIG-B',cbw);
sigb = sigbDemod(info.DataIndices,:,:);
[bits,status,cfgUpdated] = wlanHESIGBCommonBitRecover(sigb,noiseVarEst,cfg);
disp(bits')
0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0
disp(status)
Success
Обновите объект строения восстановления HE WLAN путем интерпретации восстановленных информационных бит HE-SIG-A и HE-SIG-B.
Сгенерируйте сигнал HE MU
Создайте объект строения MU HE WLAN, задав значение индекса выделения 0
.
cfgHEMU = wlanHEMUConfig(0);
Сгенерируйте сигнал WLAN и индексы поля PPDU для указанного строения.
waveform = wlanWaveformGenerator(1,cfgHEMU); ind = wlanFieldIndices(cfgHEMU);
Восстановление бит L-SIG
Создайте объект строения восстановления WLAN, задающий формат пакета HE MU и длину поля L-SIG.
cfg = wlanHERecoveryConfig('PacketFormat','HE-MU','ChannelBandwidth','CBW20');
Декодируйте поле L-SIG и получайте информацию ортогонального частотного мультиплексирования (OFDM). Объект строения восстановления требует этой информации для получения длины L-SIG.
lsig = waveform(ind.LSIG(1):ind.LSIG(2)); lsigDemod = wlanHEDemodulate(lsig,'L-SIG',cfg.ChannelBandwidth); info = wlanHEOFDMInfo('L-SIG',cfg.ChannelBandwidth); lsigDemod = lsigDemod(info.DataIndices,:);
Восстановите биты L-SIG и связанную информацию, убедившись, что биты проходят проверку четности, и обновите объект строения восстановления с длиной L-SIG. В данном примере мы принимаем бесшумный канал. Для более реалистичных результатов можно передать форму волны через модель 802.11ax™ канала при помощи wlanTGaxChannel
Системная object™ и работа с полученной формой волны.
csi = ones(52,1); [lsigBits,failCheck,lsigInfo] = wlanLSIGBitRecover(lsigDemod,0,csi); cfg.LSIGLength = lsigInfo.Length;
Обновление объекта строения восстановления с помощью бит HE-SIG-A
Декодируйте поле HE-SIG-A и восстановите биты HE-SIG-A, гарантируя, что биты пройдут циклическую проверку избыточности (CRC).
siga = waveform(ind.HESIGA(1):ind.HESIGA(2));
sigaDemod = wlanHEDemodulate(siga,'HE-SIG-A',cfg.ChannelBandwidth);
sigaDemod = sigaDemod(info.DataIndices,:);
[sigaBits,failCRC] = wlanHESIGABitRecover(sigaDemod,0,csi);
disp(failCRC)
0
Обновите объект строения восстановления восстановленными битами HE-SIG-A. Отображение обновленного объекта. Значение свойства -1
или 'Unknown'
указывает неизвестное или неопределенное свойство, которое может быть обновлено после декодирования общих и пользовательских полей HE-SIG-B пакета MU.
[cfg,failInterpretation] = interpretHESIGABits(cfg,sigaBits)
cfg = 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
failInterpretation = logical
0
Обновление объекта строения восстановления с помощью общих бит поля HE-SIG-B
Декодируйте общее поле HE-SIG-B, гарантируя, что все каналы содержимого проходят CRC.
len = getSIGBLength(cfg);
sigbCommon = waveform(ind.HESIGA(2)+(1:len.NumSIGBCommonFieldSamples),:);
sigbCommonDemod = wlanHEDemodulate(sigbCommon,'HE-SIG-B',cfgHEMU.ChannelBandwidth);
sigbCommonDemod = sigbCommonDemod(info.DataIndices);
[sigbCommonBits,status,~] = wlanHESIGBCommonBitRecover(sigbCommonDemod,0,csi,cfg);
disp(status)
Success
Обновите объект строения восстановления с помощью восстановленных общих бит поля HE-SIG-B и отобразите обновленный объект. Поле возвращено следующим -1
или 'Unknown'
указывает неизвестное или неопределенное значение свойства, которое может быть обновлено после декодирования пользовательского поля HE-SIG-B пакета HE MU.
[cfg,failInterpretation] = interpretHESIGBCommonBits(cfg,sigbCommonBits,status)
cfg = 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: 0 NumUsersPerContentChannel: 9 RUTotalSpaceTimeStreams: -1 RUSize: -1 RUIndex: -1 STAID: -1 MCS: -1 DCM: -1 ChannelCoding: 'Unknown' Beamforming: -1 NumSpaceTimeStreams: -1 SpaceTimeStreamStartingIndex: -1
failInterpretation = logical
0
Обновление объекта Строения восстановления с помощью пользовательского поля HE-SIG-B Бит
Декодируйте пользовательское поле HE-SIG-B, гарантируя, что все пользователи пройдут CRC.
sigbUser = waveform(ind.HESIGB(1):ind.HESIGB(2));
sigbUserDemod = wlanHEDemodulate(sigbUser,'HE-SIG-B',cfgHEMU.ChannelBandwidth);
sigbUserDemod = sigbUserDemod(info.DataIndices,:);
[sigbUserBits,failCRC,~] = wlanHESIGBUserBitRecover(sigbUserDemod,0,csi,cfg);
disp(failCRC)
0 0 0 0 0 0 0 0 0
Обновите объект строения восстановления восстановленными битами пользовательского поля HE-SIG-B.
[user,failInterpretation] = interpretHESIGBUserBits(cfg,sigbUserBits,failCRC);
Отображение результатов интерпретации и третьего элемента user
выход.
disp(failInterpretation)
0 0 0 0 0 0 0 0 0
disp(user{3})
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: 0 NumUsersPerContentChannel: 9 RUTotalSpaceTimeStreams: 1 RUSize: 26 RUIndex: 3 STAID: 0 MCS: 0 DCM: 0 ChannelCoding: 'LDPC' Beamforming: 0 NumSpaceTimeStreams: 1 SpaceTimeStreamStartingIndex: 1
sym
- Демодулированные и выравниваемые символы HE-SIG-BДемодулированные и уравненные символы HE-SIG-B, заданные как комплексный вектор-столбец. Длина вектора равна количеству активных поднесущих, которое зависит от пропускной способности канала передачи.
Если ширина полосы пропускания канала составляет 20 МГц, задайте этот аргумент как вектор 52 на 1.
Если ширина полосы пропускания канала составляет 40 МГц, 80 МГц или 160 МГц, задайте этот аргумент как вектор 104 на 1. Этот вектор должен содержать объединенные повторения подканала 20 МГц.
The ChannelBandwidth
свойство cfg
вход определяет пропускную способность канала.
Типы данных: double
Поддержка комплексного числа: Да
noiseVarEst
- Оценка отклонения шумаОценка отклонения шума, заданная как неотрицательный скаляр.
Типы данных: double
cfg
- Параметры передачи HE MUwlanHERecoveryConfig
объектПараметры передачи HE MU, заданные как wlanHERecoveryConfig
объект.
csi
- Информация о состоянии каналаИнформация о состоянии канала, заданная как N вектор с реальным значением SD на 1, N котором SD является количеством поднесущих данных в поле HE-SIG-B.
Типы данных: double
bits
- Восстановленные общие биты поля HE-SIG-BВосстановлены общие биты поля HE-SIG-B для каждого содержимого канала поля HE-SIG-B, возвращенные в виде двоичного вектора-столбца или матрицы. Размер этого выхода зависит от пропускной способности канала передачи в соответствии с этой таблицей.
Пропускная способность канала/МГц | Размер bits |
---|---|
20 | 18 на 1 |
40 | 18 на 2 |
80 | 27 на 2 |
160 | 43 на 2 |
Типы данных: int8
status
- Результат декодирования канала содержимогоРезультат декодирования канала содержимого, возвращенный как одно из следующих значений.
'Success'
- Все каналы содержимого прошли циклическую проверку избыточности (CRC).
'ContentChannel1Fail'
- Канал 1 содержимого не справился с CRC, и количество символов HE-SIG-B, сигнализированных в поле HE-SIG-A, меньше 16.
'ContentChannel2Fail'
- Содержимое 2-й канал отказало CRC, и количество символов HE-SIG-B, сигнализированных в поле HE-SIG-A, меньше 16.
'UnknownNumUsersContentChannel1'
- Канал 1 содержимого не прошел CRC, и количество символов HE-SIG-B, сигнализированных в поле HE-SIG-B, составляет 16.
'UnknownNumUsersContentChannel2'
- Содержимое 2-й канал отказало CRC, и количество символов HE-SIG-B, сигнализированных в поле HE-SIG-B, составляет 16.
'AllContentChannelCRCFail'
- Во всех каналах содержимого ошибка CRC.
Если количество символов HE-SIG-B, сигнализируемых в поле HE-SIG-A, меньше 16, и любой канал содержимого отказывает CRC, поле HE-SIG-A определяет длину поля HE-SIG-B. Если количество символов HE-SIG-B, сигнализируемых в поле HE-SIG-A, составляет 16, и любой канал содержимого отказывает CRC, длина поля HE-SIG-B не определяется.
Типы данных: char
cfgUpdated
- Обновленные параметры передачи HE MUwlanHERecoveryConfig
объектОбновленные параметры передачи HE MU, восстановленные из декодированного поля HE-SIG-B, возвращенные как wlanHERecoveryConfig
объект.
[1] IEEE Std 802.11™-2016 (Редакция IEEE Std 802.11-2012). «Часть 11: Спецификации управления доступом к среде беспроводной локальной сети (MAC) и физического слоя (PHY)». Стандарт IEEE на информационные технологии - телекоммуникации и обмен информацией между системами. Локальные и столичные сети - Особые требования.
[2] P802.11ax/D4.1 IEEE. "Часть 11: Спецификации управления доступом к среде беспроводной локальной сети (MAC) и физического слоя (PHY). Поправка 1: Улучшения для высокоэффективной WLAN ". Проект стандарта на информационные технологии - телекоммуникации и обмен информацией между системами. Локальные и столичные сети - Особые требования.
wlanFieldIndices
| wlanHEDataBitRecover
| wlanHESIGABitRecover
| wlanHESIGBUserBitRecover
| wlanLSIGBitRecover
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.