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, 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 для ОСШ = 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);

Добавьте белый шум для ОСШ = 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, заданное как N матрица S-by- N R. N S является количеством выборок и увеличивается с пропускной способностью канала.

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

N R является количеством приемных антенн.

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

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

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

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

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

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

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

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

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

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

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

Количество пространственно-временных потоков в многопользовательской передаче, заданное в виде вектора. Количество потоков в пространстве-времени является вектором 1-by- N Users с целыми числами от 1 до 4, где N Users является целым числом от 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, возвращенные как 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 - количество поднесущих данных.

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

ChannelBandwidthN SD
'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® Стд 802.11™-2016. Количество бит в поле VHT-SIG-B изменяется с пропускной способностью канала, и назначение зависит от того, выделен ли сценарий с одним пользователем или с несколькими пользователями. Для одиночных пользовательских строений та же информация доступна в поле L-SIG, но поле VHT-SIG-B включено в целях обеспечения непрерывности.

Область

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

Распределение SU 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)

Н/Д

Н/Д

Н/Д

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

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

Н/Д

Н/Д

Н/Д

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 Std 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 Std 802.11-2016.

PPDU

Модуль данных протокола ЦНПК

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] Перахия, Э. и Р. Стейси. Беспроводные LAN следующей генерации: 802.11n и 802.11ac. 2-е издание, Великобритания: Cambridge University Press, 2013.

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

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

.
Введенный в R2015b

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