exponenta event banner

wlanVHTSIGBRecover

Восстановление информационных битов VHT-SIG-B

Описание

пример

recBits = wlanVHTSIGBRecover(rxSig,chEst,noiseVarEst,cbw) возвращает восстановленные биты информации из VHT-SIG-B1поля [] для однопользовательской передачи. Входные данные включают в себя принятое поле VHT-SIG-B, оценку канала, оценку дисперсии шума и полосу пропускания канала.

recBits = wlanVHTSIGBRecover(rxSig,chEst,noiseVarEst,cbw,userNumber,numSTS) возвращает восстановленные информационные биты многопользовательской передачи для интересующего пользователя, userNumberи количество пространственно-временных потоков, numSTS.

пример

recBits = wlanVHTSIGBRecover(___,Name,Value) задает параметры алгоритма, используя один или несколько аргументов пары имя-значение.

пример

[recBits,eqSym] = wlanVHTSIGBRecover(___) возвращает выровненные символы, eqSym, используя аргументы из предыдущих синтаксисов.

пример

[recBits,eqSym,cpe] = wlanVHTSIGBRecover(___) возвращает общую фазовую ошибку, cpe.

Примеры

свернуть все

Восстановление битов VHT-SIG-B в совершенном канале, имеющем полосу пропускания канала 80 МГц, один пространственно-временной поток и одну приемную антенну.

Создать wlanVHTConfig объект, имеющий полосу пропускания канала 80 МГц. С помощью объекта создайте сигнал VHT-SIG-B.

cfg = wlanVHTConfig('ChannelBandwidth','CBW80');
[txSig,txBits] = wlanVHTSIGB(cfg);

Для полосы пропускания канала 80 МГц имеется 242 занятые поднесущие. Размеры массива оценки канала для этого примера должны быть [Nst, Nsts, Nr] = [242,1,1]. В примере предполагается идеальный канал и одна приемная антенна. Поэтому задайте оценку канала в виде вектора столбца единиц, а оценку дисперсии шума в виде нуля.

chEst = ones(242,1);
noiseVarEst = 0;

Восстановление VHT-SIG-B. Убедитесь, что принятые биты информации идентичны переданным битам.

rxBits = wlanVHTSIGBRecover(txSig,chEst,noiseVarEst,'CBW80');
isequal(txBits,rxBits)
ans = logical
   1

Восстановите поле VHT-SIG-B с помощью корректора нулевого давления в канале AWGN с полосой пропускания канала 160 МГц, одним пространственно-временным потоком и одной приемной антенной.

Создать wlanVHTConfig объект, задающий полосу пропускания канала 160 МГц. С помощью объекта создайте сигнал VHT-SIG-B.

cfg = wlanVHTConfig('ChannelBandwidth','CBW160');
[txSig,txBits] = wlanVHTSIGB(cfg);

Передача передаваемого VHT-SIG-B через канал AWGN.

noiseVarEst = 0.1;
awgnChan = comm.AWGNChannel('NoiseMethod','Variance','Variance',noiseVarEst);
rxSig = awgnChan(txSig);

Восстановите поле VHT-SIG-B, указав выравнивание с нулевым усилием. Убедитесь, что полученная информация не содержит битовых ошибок.

chEst = ones(484,1);
recBits = wlanVHTSIGBRecover(rxSig,chEst,noiseVarEst,'CBW160','EqualizationMethod','ZF');
numErr = biterr(txBits,recBits)
numErr = 0

Восстановление VHT-SIG-B в канале 2x2 MIMO для SNR = 10 дБ и приемника, который имеет показатель шума 9 дБ. Убедитесь, что информационные биты восстановлены правильно.

Установите полосу пропускания канала и соответствующую частоту дискретизации.

cbw = 'CBW20';
fs = 20e6;

Создайте объект конфигурации VHT с полосой пропускания 20 МГц и двумя путями передачи. Генерация сигналов L-LTF и VHT-SIG-B.

vht = wlanVHTConfig('ChannelBandwidth',cbw,'NumTransmitAntennas',2, ...
    'NumSpaceTimeStreams',2);

txVHTLTF = wlanVHTLTF(vht);
[txVHTSIGB,txVHTSIGBBits] = wlanVHTSIGB(vht);

Передача сигналов VHT-LTF и VHT-SIG-B через канал 2x2 TGac.

tgacChan = wlanTGacChannel('NumTransmitAntennas',2, ...
    'NumReceiveAntennas',2, 'ChannelBandwidth',cbw,'SampleRate',fs);
rxVHTLTF = tgacChan(txVHTLTF);
rxVHTSIGB = tgacChan(txVHTSIGB);

Добавьте белый шум для SNR = 10dB.

chNoise = comm.AWGNChannel('NoiseMethod','Signal to noise ratio (SNR)',...
    'SNR',10);

rxVHTLTF = chNoise(rxVHTLTF);
rxVHTSIGB = chNoise(rxVHTSIGB);

Добавьте дополнительный белый шум, соответствующий приемнику с показателем шума 9 дБ. Дисперсия шума равна k * T * B * F, где k - постоянная Больцмана, T - температура окружающей среды, B - полоса пропускания канала (частота дискретизации), F - показатель шума приемника.

nVar = 10^((-228.6+10*log10(290)+10*log10(fs)+9)/10);
rxNoise = comm.AWGNChannel('NoiseMethod','Variance','Variance',nVar);

rxVHTLTF = rxNoise(rxVHTLTF);
rxVHTSIGB = rxNoise(rxVHTSIGB);

Демодулируйте сигнал VHT-LTF и используйте его для генерации оценки канала.

demodVHTLTF = wlanVHTLTFDemodulate(rxVHTLTF,vht);
chEst = wlanVHTLTFChannelEstimate(demodVHTLTF,vht);

Восстановите информационные биты VHT-SIG-B. Отображение графика рассеяния выровненных символов.

[recVHTSIGBBits,eqSym,cpe] = wlanVHTSIGBRecover(rxVHTSIGB,chEst,nVar,cbw);
scatterplot(eqSym)

Figure Scatter Plot contains an axes. The axes with title Scatter plot contains an object of type line. This object represents Channel 1.

Отображение общей фазовой ошибки.

cpe
cpe = 0.0485

Определите количество ошибок между переданными и принятыми информационными битами VHT-SIG-B.

numErr = biterr(txVHTSIGBBits,recVHTSIGBBits)
numErr = 0

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

свернуть все

Принятое поле VHT-SIG-B, указанное как матрица NS-by-NR. NS - количество выборок и увеличивается с пропускной способностью канала.

Пропускная способность каналаНЕ УТОЧНЕНО
'CBW20'80
'CBW40'160
'CBW80'320
'CBW160'640

NR - количество приемных антенн.

Типы данных: double
Поддержка комплексного номера: Да

Оценка канала, заданная как массив NST-by-NSTS-by-NR. NST - количество занятых поднесущих. NSTS - количество пространственно-временных потоков. Для многопользовательских передач NSTS - общее количество пространственно-временных потоков для всех пользователей. NR - количество приемных антенн.

NST увеличивается с пропускной способностью канала.

ChannelBandwidthКоличество занятых поднесущих (NST)Количество поднесущих данных (NSD)Количество поднесущих пилот-сигнала (NSP)
'CBW20'56524
'CBW40'1141086
'CBW80'2422348
'CBW160'48446816

Оценка канала основана на VHT-LTF.

Оценка дисперсии шума, заданная как неотрицательный скаляр.

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

Полоса пропускания канала, указанная как 'CBW20', 'CBW40', 'CBW80', или 'CBW160'.

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

Номер пользователя в многопользовательской передаче, указанный как целое число, имеющее значение от 1 до NUsers. NUsers - общее число пользователей.

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

Количество пространственно-временных потоков в многопользовательской передаче, указанное как вектор. Число пространственно-временных потоков является 1-by-NUsers вектором целых чисел от 1 до 4, где NUsers - целое число от 1 до 4.

Пример: [1 3 2] - количество пространственно-временных потоков для каждого пользователя.

Примечание

Сумма векторных элементов пространственно-временного потока не должна превышать восьми.

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

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'PilotPhaseTracking','None' отключает отслеживание фазы пилот-сигнала.

Смещение выборки символа OFDM, представленное в виде доли длины циклического префикса (CP), указанного как пара, разделенная запятыми, состоящая из 'OFDMSymbolOffset' и скаляр в интервале [0, 1]. Указанное значение указывает начальное местоположение демодуляции OFDM относительно начала CP. Стоимость 0 представляет начало CP и значение 1 представляет конец CP.

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

Метод выравнивания, указанный как пара, разделенная запятыми, состоящая из 'EqualizationMethod' и одно из этих значений.

  • 'MMSE' - Приемник использует компенсатор минимальной среднеквадратической ошибки.

  • 'ZF' - Приемник использует нуль-форсирующий эквалайзер.

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

Отслеживание фазы пилот-сигнала, определяемое как разделенная запятыми пара, состоящая из 'PilotPhaseTracking' и одно из этих значений.

  • 'PreEQ' - Включить отслеживание фазы пилот-сигнала, которое функция выполняет перед любой операцией выравнивания.

  • 'None' - Отключить отслеживание пилотной фазы.

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

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

свернуть все

Восстановленные информационные биты VHT-SIG-B, возвращенные в виде вектора столбца Nb-by-1. Nb - количество восстановленных информационных битов VHT-SIG-B и увеличивается с пропускной способностью канала. Выходные данные для одного пользователя определяются userNumber.

Количество выходных битов пропорционально пропускной способности канала.

ChannelBandwidthNb
'CBW20'26
'CBW40'27
'CBW80'29
'CBW160'29

Для получения информации о значении каждого бита в поле см. VHT-SIG-B.

Выровненные символы, возвращаемые в виде вектора NSD-by-1 столбца. NSD - количество поднесущих данных.

НРД увеличивается с пропускной способностью канала.

ChannelBandwidthNSD
'CBW20'52
'CBW40'108
'CBW80'234
'CBW160'468

Общая фазовая ошибка в радианах, возвращаемая как скаляр.

Подробнее

свернуть все

VHT-SIG-B

Поле B сигнала очень высокой пропускной способности (VHT-SIG-B) используется для многопользовательского сценария для настройки скорости передачи данных и точной настройки приема MIMO. Он модулируется с использованием MCS 0 и передается в одном символе OFDM.

Поле VHT-SIG-B состоит из одного символа OFDM, расположенного между VHT-LTF и частью данных PPDU формата VHT.

Поле В сигнала очень высокой пропускной способности (VHT-SIG-B) содержит фактическую скорость и значение длины A-MPDU для каждого пользователя. Подробное описание поля VHT-SIG-B см. в разделе 21.3.8.3.6 стандарта IEEE ® Std 802.11™-2016. Количество битов в поле VHT-SIG-B изменяется в зависимости от полосы пропускания канала, и назначение зависит от того, выделен ли сценарий для одного пользователя или для нескольких пользователей. Для конфигураций с одним пользователем та же информация доступна в поле L-SIG, но поле VHT-SIG-B включено в целях обеспечения непрерывности.

Область

Назначение PPDU MU VHT (биты)

Назначение PPDU SU VHT (биты)

Описание

 

20 МГц

40 МГц

80 МГц, 160 МГц

20 МГц

40 МГц

80 МГц, 160 МГц

 

VHT-SIG-B

B0-15 (16)

B0-16 (17)

B0-18 (19)

B0-16 (17)

B0-18 (19)

B0-20 (21)

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

УКВ-СКУ

B16-19 (4)

B17-20 (4)

B19-22 (4)

Н/Д

Н/Д

Н/Д

Четырехразрядное поле, включаемое только для многопользовательских сценариев.

Зарезервировано

Н/Д

Н/Д

Н/Д

B17–19 (3)

B19-20 (2)

B21-22 (2)

Все

Хвост

B20-25 (6)

B21-26 (6)

B23-28 (6)

B20-25 (6)

B21-26 (6)

B23-28 (6)

Шесть нулевых битов, используемых для завершения сверточного кода.

Всего битов #

26

27

29

26

27

29

 

Повторение битового поля

1

2

4

Для 160 МГц канал 80 МГц повторяется дважды.

1

2

4

Для 160 МГц канал 80 МГц повторяется дважды.

 

Для нулевого пакета данных (NDP) биты VHT-SIG-B устанавливаются в соответствии с таблицей 21-15 стандарта IEEE 802.11-2016.

VHT-LTF

Очень высокая пропускная способность длинного обучающего поля (VHT-LTF) расположена между VHT-STF и VHT-SIG-B частью пакета VHT.

Он используется для оценки канала MIMO и отслеживания пилотной поднесущей. VHT-LTF включает в себя один обучающий символ длиной VHT для каждого пространственного потока, указанного выбранной MCS. Длина каждого символа составляет 4 мкс. В VHT-LTF допускается максимум восемь символов.

Подробное описание VHT-LTF см. в разделе 21.3.8.3.5 стандарта IEEE Standd 802.11-2016.

PPDU

Блок данных протокола PLCP

PPDU является полным кадром PLCP, включая заголовки PLCP, заголовки MAC, поле данных MAC и трейлеры MAC и PLCP.

Алгоритмы

свернуть все

Восстановление VHT-SIG-B

Поле VHT-SIG-B состоит из одного символа и находится между полем VHT-LTF и частью данных структуры пакетов для PPDU формата VHT.

Для однопользовательских пакетов можно восстановить информацию о длине из данных полей L-SIG и VHT-SIG-A. Поэтому не требуется, чтобы приемник декодировал поле VHT-SIG-B. Для многопользовательских передач восстановление поля VHT-SIG-B обеспечивает информацию о длине пакета и MCS для каждого пользователя.

Подробная информация по VHT-SIG-B приведена в IEEE Std 802.11ac™-2013 [1], раздел 22.3.4.8, и Perahia [2], раздел 7.3.2.4.

Ссылки

[1] Стандарт IEEE Std 802.11ac™-2013 IEEE для информационных технологий - Телекоммуникации и обмен информацией между системами - Локальные и городские сети - Особые требования - Часть 11: Спецификации управления доступом к среде беспроводной локальной сети (MAC) и физического уровня (PHY) - Поправка 4: Усовершенствования для очень высокой пропускной способности для работы в диапазонах ниже

[2] Перахия, Э. и Р. Стейси. Беспроводные локальные сети следующего поколения: 802.11n и 802.11ac. 2-е издание, Соединенное Королевство: Cambridge University Press, 2013.

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

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

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

[1] Стандарт IEEE 802.11ac™-2013 Адаптирован и переиздан с разрешения IEEE. Авторское право IEEE 2013. Все права защищены.