wlanVHTSIGBRecover

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

Описание

пример

recBits = wlanVHTSIGBRecover(rxSig,chEst,noiseVarEst,cbw) возвращает восстановленные информационные биты в VHT-SIG-B[1] поле для однопользовательской передачи. Входные параметры включают полученное поле 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, Номер] = [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);

Добавьте белый шум для ОСШ = 10 дБ.

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 object. The axes object 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 в виде матрицы S-by-NR N. N S является количеством отсчетов и увеличениями с полосой пропускания канала.

Полоса пропускания каналаN S
'CBW20'80
'CBW40'160
'CBW80'320
'CBW160'640

N R является количеством, получают антенны.

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

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

ST N увеличивается с полосой пропускания канала.

ChannelBandwidthКоличество занятых поднесущих (ST N)Количество поднесущих данных (SD N)Количество пилотных поднесущих (SP N)
'CBW20'56524
'CBW40'1141086
'CBW80'2422348
'CBW160'48446816

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

Шумовая оценка отклонения в виде неотрицательного скаляра.

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

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

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

Количество пользователя в многопользовательской передаче в виде целого числа, имеющего значение от 1 до Пользователей N. Пользователи N являются общим количеством пользователей.

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

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

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

Примечание

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

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

Аргументы name-value

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

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

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

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

Метод эквализации в виде одного из этих значений.

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

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

Когда полученный сигнал имеет, несколько получают антенны, функциональное разнообразие приемника использования во время эквализации. Когда количество переданных пространственно-временных потоков один, и вы задаете этот аргумент как 'ZF', функция выполняет объединение максимального отношения.

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

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

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

  • 'None' — Отключите отслеживание экспериментального этапа.

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

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

свернуть все

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

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

ChannelBandwidthN b
'CBW20'26
'CBW40'27
'CBW80'29
'CBW160'29

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

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

SD N увеличивается с полосой пропускания канала.

ChannelBandwidthSD N
'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 и фрагментом данных формата VHT PPDU.

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

Поле

Выделение VHT МУ PPDU (биты)

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)

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

VHT-MCS

B16-19 (4)

B17-20 (4)

B19-22 (4)

N/A

N/A

N/A

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

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

N/A

N/A

N/A

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 μs долго. Максимум восьми символов разрешен в VHT-LTF.

Для подробного описания VHT-LTF смотрите раздел 21.3.8.3.5 из Станд. IEEE 802.11-2016.

PPDU

Модуль данных о протоколе PLCP

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

Алгоритмы

свернуть все

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

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

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

Для получения дополнительной информации VHT-SIG-B обратитесь к Станд. IEEE 802.11ac™-2013 [1], Раздел 22.3.4.8 и Perahia [2], Раздел 7.3.2.4.

Ссылки

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

[2] Perahia, E. и Р. Стейси. Беспроводная LAN следующего поколения: 802.11n и 802.11ac. 2-й выпуск, Соединенное Королевство: Издательство Кембриджского университета, 2013.

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

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

Введенный в R2015b

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