Восстановите данные VHT
recBits = wlanVHTDataRecover(rxSig,chEst,noiseVarEst,cfg)
recBits = wlanVHTDataRecover(rxSig,chEst,noiseVarEst,cfg,userNumber)
recBits = wlanVHTDataRecover(rxSig,chEst,noiseVarEst,cfg,userNumber,numSTS)
recBits = wlanVHTDataRecover(___,cfgRec)
[recBits,crcBits]
= wlanVHTDataRecover(___)
[recBits,crcBits,eqSym]
= wlanVHTDataRecover(___)
[recBits,crcBits,eqSym,cpe]
= wlanVHTDataRecover(___)
возвращает восстановленные биты полезной нагрузки в Поле данных VHT [] 1для однопользовательской передачи. Входные параметры включают полученный сигнал поля данных VHT, оценку канала, шумовую оценку отклонения, и объект настройки формата, recBits
= wlanVHTDataRecover(rxSig
,chEst
,noiseVarEst
,cfg
)cfg
.
возвращает восстановленные биты полезной нагрузки, в многопользовательской передаче, для пользователя, заданного recBits
= wlanVHTDataRecover(rxSig
,chEst
,noiseVarEst
,cfg
,userNumber
)userNumber
.
также задает количество пространственно-временных потоков, recBits
= wlanVHTDataRecover(rxSig
,chEst
,noiseVarEst
,cfg
,userNumber
,numSTS
)numSTS
, для многопользовательской передачи.
Восстановите биты в VHT-поле-данных с помощью оценки канала на поле VHT-LTF по 2 x 2 квазистатических исчезающих канала.
Создайте объект настройки VHT с пропускной способностью канала на 160 МГц и двумя каналами передачи.
cbw = 'CBW160'; vht = wlanVHTConfig('ChannelBandwidth',cbw,'NumTransmitAntennas',2,'NumSpaceTimeStreams',2,'APEPLength',512);
Сгенерируйте сигналы VHT-поля-данных и VHT-LTF.
txDataBits = randi([0 1],8*vht.PSDULength,1); txVHTLTF = wlanVHTLTF(vht); txVHTData = wlanVHTData(txDataBits,vht);
Передайте переданную форму волны через 2 x 2 квазистатических исчезающих канала с AWGN.
snr = 10; H = 1/sqrt(2)*complex(randn(2,2),randn(2,2)); rxVHTLTF = awgn(txVHTLTF*H,snr); rxVHTData = awgn(txVHTData*H,snr);
Вычислите полученную степень сигнала и используйте ее, чтобы оценить шумовое отклонение.
powerDB = 10*log10(var(rxVHTData)); noiseVarEst = mean(10.^(0.1*(powerDB-snr)));
Выполните оценку канала на основе поля VHT-LTF.
demodVHTLTF = wlanVHTLTFDemodulate(rxVHTLTF,vht,1); chanEst = wlanVHTLTFChannelEstimate(demodVHTLTF,vht);
Восстановите биты полезной нагрузки в VHT-поле-данных и сравните с исходными битами полезной нагрузки.
rxDataBits = wlanVHTDataRecover(rxVHTData,chanEst,noiseVarEst,vht); numErr = biterr(txDataBits,rxDataBits)
numErr = 0
Восстановите сигнал VHT-поля-данных через канал SISO AWGN с помощью коррекции ZF.
Сконфигурируйте объект формата VHT, сгенерируйте случайные биты полезной нагрузки и сгенерируйте VHT-поле-данных.
cfgVHT = wlanVHTConfig('APEPLength',512);
txBits = randi([0 1], 8*cfgVHT.PSDULength,1);
txVHTData = wlanVHTData(txBits,cfgVHT);
Передайте переданные данные VHT через канал AWGN.
awgnChan = comm.AWGNChannel('NoiseMethod','Variance','Variance',0.1); rxVHTData = awgnChan(txVHTData);
Сконфигурируйте восстановление, возражают и восстанавливают биты полезной нагрузки с помощью совершенной оценки канала из всех единиц. Сравните восстановленные биты с переданными битами.
cfgRec = wlanRecoveryConfig('EqualizationMethod','ZF'); recBits = wlanVHTDataRecover(rxVHTData,ones(242,1),0.1,cfgVHT,cfgRec); numErrs = biterr(txBits,recBits)
numErrs = 0
Восстановите биты VHT-поля-данных для многопользовательской передачи с помощью оценки канала на поле VHT-LTF по квазистатическому исчезающему каналу.
Создайте объект настройки VHT, имеющий пропускную способность канала на 160 МГц, двух пользователей и четыре антенны передачи. Присвойте один пространственно-временной поток первому пользователю и три пространственно-временных потока второму пользователю.
cbw = 'CBW160'; numSTS = [1 3]; vht = wlanVHTConfig('ChannelBandwidth',cbw,'NumUsers',2, ... 'NumTransmitAntennas',4,'NumSpaceTimeStreams',numSTS);
Поскольку существует два пользователя, длина PSDU является 1 2 вектором - строкой.
psduLen = vht.PSDULength
psduLen = 1×2
1050 3156
Сгенерируйте многопользовательские входные данные. Эти данные должны быть в форме 1 на N массивом ячеек, где N является количеством пользователей.
txDataBits{1} = randi([0 1],8*vht.PSDULength(1),1); txDataBits{2} = randi([0 1],8*vht.PSDULength(2),1);
Сгенерируйте сигналы VHT-поля-данных и VHT-LTF.
txVHTLTF = wlanVHTLTF(vht); txVHTData = wlanVHTData(txDataBits,vht);
Передайте поле данных для первого пользователя через 4x1 канал, потому что это состоит из одного пространственно-временного потока. Передайте данные второго пользователя через 4x3 канал, потому что это состоит из трех пространственно-временных потоков. Примените белый Гауссов шум к каждому пользовательскому сигналу.
snr = 15; H1 = 1/sqrt(2)*complex(randn(4,1),randn(4,1)); H2 = 1/sqrt(2)*complex(randn(4,3),randn(4,3)); rxVHTData1 = awgn(txVHTData*H1,snr,'measured'); rxVHTData2 = awgn(txVHTData*H2,snr,'measured');
Повторите процесс для полей VHT-LTF.
rxVHTLTF1 = awgn(txVHTLTF*H1,snr,'measured'); rxVHTLTF2 = awgn(txVHTLTF*H2,snr,'measured');
Вычислите полученную степень сигнала для обоих пользователей и используйте ее, чтобы оценить шумовое отклонение.
powerDB1 = 10*log10(var(rxVHTData1)); noiseVarEst1 = mean(10.^(0.1*(powerDB1-snr))); powerDB2 = 10*log10(var(rxVHTData2)); noiseVarEst2 = mean(10.^(0.1*(powerDB2-snr)));
Оцените характеристики канала с помощью полей VHT-LTF.
demodVHTLTF1 = wlanVHTLTFDemodulate(rxVHTLTF1,cbw,numSTS); chanEst1 = wlanVHTLTFChannelEstimate(demodVHTLTF1,cbw,numSTS); demodVHTLTF2 = wlanVHTLTFDemodulate(rxVHTLTF2,cbw,numSTS); chanEst2 = wlanVHTLTFChannelEstimate(demodVHTLTF2,cbw,numSTS);
Восстановите биты VHT-поля-данных для первого пользователя и сравните с исходными битами полезной нагрузки.
rxDataBits1 = wlanVHTDataRecover(rxVHTData1,chanEst1,noiseVarEst1,vht,1); [~,ber1] = biterr(txDataBits{1},rxDataBits1)
ber1 = 0.4983
Определите количество битовых ошибок для второго пользователя.
rxDataBits2 = wlanVHTDataRecover(rxVHTData2,chanEst2,noiseVarEst2,vht,2); [~,ber2] = biterr(txDataBits{2},rxDataBits2)
ber2 = 0.0972
Частоты ошибок по битам довольно высоки, потому что нет никакого предварительного кодирования, чтобы смягчить интерференцию между потоками. Это особенно очевидно для пользователя 1 получатель, потому что он получает энергию от этих трех потоков, предназначенных для пользователя 2. Пример предназначается, чтобы показать рабочий процесс, и правильные синтаксисы для LTF демодулируют, оценка канала и функции восстановления данных.
rxSig
— Полученный сигнал VHT-поля-данныхПолученный сигнал VHT-поля-данных во временном интервале, заданном как NS-by-NR матрица. NR является количеством, получают антенны. NS должен быть больше, чем или равным количеству выборок временного интервала во входе VHT-поля-данных.
wlanVHTDataRecover
обрабатывает одно поле данных PPDU на запись. Если NS больше, чем длина поля, дополнительные выборки в конце rxSig
не обрабатываются. Чтобы обработать конкатенированный поток полей данных PPDU, множественные вызовы wlanVHTDataRecover
требуются. Если rxSig
короче, чем длина VHT-поля-данных, ошибка происходит.
Типы данных: double
Поддержка комплексного числа: Да
chEst
— Оценка каналаОценка канала для данных и экспериментальных поднесущих, заданных как матрица или массив размера NST-by-NSTS-by-NR. NST является количеством занятых поднесущих. NSTS является количеством пространственно-временных потоков. Для многопользовательских передач NSTS является общим количеством пространственно-временных потоков для всех пользователей. NR является количеством, получают антенны. NST и NSTS должны совпадать с параметрами объекта настройки cfg
для пропускной способности канала и количества пространственно-временных потоков.
ST N увеличивается с пропускной способностью канала.
ChannelBandwidth | Количество занятых поднесущих (ST N) | Количество поднесущих данных (SD N) | Количество экспериментальных поднесущих (SP N) |
---|---|---|---|
'CBW20' | 56 | 52 | 4 |
'CBW40' | 114 | 108 | 6 |
'CBW80' | 242 | 234 | 8 |
'CBW160' | 484 | 468 | 16 |
Типы данных: double
Поддержка комплексного числа: Да
noiseVarEst
— Шумовая оценка отклоненияШумовая оценка отклонения, заданная как неотрицательный скаляр.
Типы данных: double
cfg
— Настройка VHT PPDUwlanVHTConfig
Настройка VHT PPDU, заданная как объект wlanVHTConfig
. Функция wlanVHTDataRecover
использует следующие свойства объектов wlanVHTConfig
:
ChannelBandwidth
— Пропускная способность канала 'CBW80'
(значение по умолчанию) | 'CBW20'
| 'CBW40'
| 'CBW160'
Пропускная способность канала, заданная как 'CBW20'
, 'CBW40'
, 'CBW80'
или 'CBW160'
. Если передача имеет многого пользователя, та же пропускная способность канала применяется ко всем пользователям. Значение по умолчанию 'CBW80'
устанавливает пропускную способность канала на 80 МГц.
Типы данных: char | string
NumUsers
— Количество пользователейКоличество пользователей, заданных как 1, 2, 3, или 4. (Пользователи N)
Типы данных: double
NumSpaceTimeStreams
— Количество пространственно-временных потоковКоличество пространственно-временных потоков в передаче, заданной как скаляр или вектор.
Для отдельного пользователя количество пространственно-временных потоков является скалярным целым числом от 1 до 8.
Для многого пользователя количество пространственно-временных потоков является 1 NUsers вектором целых чисел от 1 до 4, где длина вектора, NUsers, является целым числом от 1 до 4.
Пример: [1 3 2]
является количеством пространственно-временных потоков для каждого пользователя.
Сумма пространственно-временных потоковых элементов вектора не должна превышать восемь.
Типы данных: double
STBC
— Включите пространственно-временное блочное кодированиеfalse
(значение по умолчанию) | true
Включите пространственно-временное блочное кодирование (STBC) поля данных PPDU, заданного как логическое. STBC передает несколько копий потока данных через присвоенные антенны.
Когда установлено в false
, никакой STBC не применяется к полю данных, и количество пространственно-временных потоков равно количеству пространственных потоков.
Когда установлено в true
, STBC применяется к полю данных, и количество пространственно-временных потоков удваивает количество пространственных потоков.
Смотрите IEEE® 802.11ac™-2013, Раздел 22.3.10.9.4 для дальнейшего описания.
STBC
важен для однопользовательских передач только.
Типы данных: логический
GuardInterval
— Циклическая длина префикса для поля данных в пакете'Long'
(значение по умолчанию) | 'Short'
Циклическая длина префикса для поля данных в пакете, заданном как 'Long'
или 'Short'
.
Долгая защитная длина интервала составляет 800 нс.
Короткая защитная длина интервала составляет 400 нс.
Типы данных: char | string
MCS
— Модуляция и схема кодированияМодуляция и схема кодирования, используемая в передаче текущего пакета, заданного как скаляр или вектор.
Для отдельного пользователя значение MCS является скалярным целым числом от 0 до 9.
Для многого пользователя MCS является 1 NUsers вектором целых чисел или скаляра со значениями от 0 до 9, где длина вектора, NUsers, является целым числом от 1 до 4.
MCS | Модуляция | Кодирование уровня |
---|---|---|
0 | BPSK | 1/2 |
1 | QPSK | 1/2 |
2 | QPSK | 3/4 |
3 | 16QAM | 1/2 |
4 | 16QAM | 3/4 |
5 | 64QAM | 2/3 |
6 | 64QAM | 3/4 |
7 | 64QAM | 5/6 |
8 | 256QAM | 3/4 |
9 | 256QAM | 5/6 |
Типы данных: double
ChannelCoding
— Тип прямого кодирования с коррекцией ошибок'BCC'
(значение по умолчанию) | 'LDPC'
Тип прямого кодирования с коррекцией ошибок для поля данных, заданного как 'BCC'
(значение по умолчанию) или 'LDPC'
. 'BCC'
указывает на бинарное сверточное кодирование, и 'LDPC'
указывает на низкое кодирование проверки четности плотности. Обеспечение вектора символов или вектора символов отдельной ячейки задает тип кодирования канала для отдельного пользователя или всех пользователей в многопользовательской передаче. Путем обеспечения массиву ячеек различные типы кодирования канала могут быть заданы на пользователя для многопользовательской передачи.
Типы данных: char
| cell
| string
APEPLength
— Количество байтов в дополнении A-MPDU pre-EOFКоличество байтов в дополнении A-MPDU pre-EOF, заданном как скалярное целое число или вектор целых чисел.
Для отдельного пользователя APEPLength
является неотрицательным целым числом в интервале [0, 220 – 1].
Для многопользовательского APEPLength
является 1 NUsers вектором неотрицательных целых чисел, где NUsers является целым числом в [1, 4]. Записи в APEPLength
являются целыми числами в интервале [0, 220 – 1].
Для пустого пакета данных (NDP), APEPLength = 0
.
APEPLength
используется внутренне, чтобы определить количество символов OFDM в поле данных. Для получения дополнительной информации смотрите 802.11ac Станд. IEEE 2013, Таблица 22-1.
Типы данных: double
cfgRec
— Параметры алгоритмаwlanRecoveryConfig
Параметры алгоритма, содержащие свойства, используемые во время восстановления данных, заданного как объект wlanRecoveryConfig
. Конфигурируемые свойства включают смещение выборки символа OFDM, метод коррекции и тип отслеживания экспериментального этапа. Если вы не задаете объект cfgRec
, значения свойства объекта по умолчанию, как описано в wlanRecoveryConfig Свойствах используются в восстановлении данных.
Используйте cfgRec
.EqualizationMethod
= 'ZF'
, когда любому из следующих условий ответят:
cfg
.NumSpaceTimeStreams=1
cfg
.NumSpaceTimeStreams=2
и cfg
.STBC=true
OFDMSymbolOffset
— Выборка символа OFDM смещаетсяСмещение выборки символа OFDM, представленное как часть длины циклического префикса (CP), заданной как скалярное значение от 0 до 1. Это значение указывает на местоположение запуска для демодуляции OFDM относительно начала циклического префикса. OFDMSymbolOffset
= 0 представляет запуск циклического префикса, и OFDMSymbolOffset
= 1 представляет конец циклического префикса.
Типы данных: double
EqualizationMethod
— Метод коррекции'MMSE'
(значение по умолчанию) | 'ZF'
Метод коррекции, заданный как 'MMSE'
или 'ZF'
.
'MMSE'
указывает, что получатель использует минимальный эквалайзер среднеквадратичной погрешности.
'ZF'
указывает, что получатель использует обеспечивающий нуль эквалайзер.
Пример: 'ZF'
Типы данных: char | string
PilotPhaseTracking
— Отслеживание экспериментального этапа'PreEQ'
(значение по умолчанию) | 'None'
Отслеживание экспериментального этапа, заданное как 'PreEQ'
или 'None'
.
'PreEQ'
— Включает отслеживание экспериментального этапа, которое выполняется перед любой операцией коррекции.
'none'
Отслеживание экспериментального этапа не происходит.
Типы данных: char | string
MaximumLDPCIterationCount
— Максимальное количество декодирования итераций в LDPCМаксимальное количество декодирования итераций в LDPC, заданном как положительное скалярное целое число. Этот параметр применим, когда кодирование канала установлено в LDPC для пользователя интереса.
Для получения информации об опциях кодирования канала смотрите 802.11™ предмет интереса настройки формата.
Типы данных: double
EarlyTermination
— Включите раннее завершение декодирования LDPCfalse
(значение по умолчанию) | true
Включите раннее завершение декодирования LDPC, заданного как логическое. Этот параметр применим, когда кодирование канала установлено в LDPC для пользователя интереса.
Когда установлено в false
, декодирование LDPC завершает количество итераций, заданных MaximumLDPCIterationCount
, независимо от состояния проверки четности.
Когда установлено в true
, декодирование LDPC останавливается, когда все проверки четности удовлетворены.
Для получения информации об опциях кодирования канала смотрите 802,11 предмета интереса настройки формата.
userNumber
— Количество пользователяКоличество пользователя в многопользовательской передаче, заданной как целое число, имеющее значение от 1 до Пользователей N. Пользователи N являются общим количеством пользователей.
numSTS
— Количество пространственно-временных потоковКоличество пространственно-временных потоков в многопользовательской передаче, заданной как вектор. Количество пространственно-временных потоков является 1 NUsers вектором целых чисел от 1 до 4, где Пользователи N являются целым числом от 1 до 4.
Пример: [1 3 2]
является количеством пространственно-временных потоков для каждого пользователя.
Сумма пространственно-временных потоковых элементов вектора не должна превышать восемь.
Типы данных: double
recBits
— Восстановленные биты полезной нагрузки в VHT-поле-данныхВосстановленные биты полезной нагрузки в VHT-поле-данных, возвращенном как вектор-столбец длины 8 × cfgVHT.PSDULength
. См. wlanVHTConfig Свойства для деталей PSDULength
. Вывод для отдельного пользователя, как определено userNumber
.
Типы данных: int8
crcBits
— Биты контрольной суммы для поля VHT-SIG-BБиты контрольной суммы для поля VHT-SIG-B, возвращенного как вектор столбца двоичных данных длины 8.
Типы данных: int8
eqSym
— Компенсируемые символыКомпенсируемые символы, возвращенные как SD N NSYM NSS матрицей или массивом. SD N является количеством поднесущих данных. N SYM является количеством символов OFDM в VHT-поле-данных. N SS является количеством пространственных потоков, присвоенных пользователю. Когда STBC является false
, N SS = N STS. Когда STBC является true
, N SS = N STS/2.
Типы данных: double
Поддержка комплексного числа: Да
cpe
— CommonОбщая ошибка фазы в радианах, возвращенных как вектор-столбец, имеющий длину N SYM. N SYM является количеством символов OFDM в поле данных VHT.
Ограничения обработки wlanVHTDataRecover
, ограничения и рекомендации:
Если только формат VHT, PPDUs обрабатываются, то isa(cfgVHT, 'wlanVHTConfig')
должен быть true
.
Для однопользовательских сценариев cfgVHT.NumUsers
должен равняться 1.
Когда STBC включен, количество пространственно-временных потоков должно быть ровным.
cfgRec.EqualizationMethod = 'ZF'
рекомендуется когда cfgVHT.STBC = true
и cfgVHT.NumSpaceTimeStreams = 2
cfgRec.EqualizationMethod = 'ZF'
рекомендуется когда cfgVHT.NumSpaceTimeStreams = 1
Очень высокие данные о пропускной способности (данные VHT) поле используются, чтобы передать один или несколько кадров от слоя MAC. Это следует за полем VHT-SIG-B в пакетной структуре для формата VHT PPDUs.
Поле данных VHT задано в 802.11ac Станд. IEEE 2013, Раздел 22.3.10. Это состоит из четырех подполей.
Поле Service — Содержит семибитное состояние инициализации скремблера, один бит, зарезервированный для будущих факторов и восемь битов для поля VHT-SIG-B CRC.
PSDU — Поле переменной длины, содержащее модуль эксплуатационных данных PLCP. В 802,11, PSDU может состоять из агрегата нескольких модулей эксплуатационных данных MAC.
Клавиатура PHY — Переменное количество битов передало передатчику, чтобы создать полный символ OFDM.
Хвост — Биты раньше отключали сверточный код. Биты хвоста не нужны, когда LDPC используется.
[1] Станд. IEEE 802.11ac™-2013 Стандарт IEEE для Информационных технологий — Телекоммуникаций и обмена информацией между системами — Локальными сетями и городскими компьютерными сетями — Конкретными требованиями — Часть 11: Беспроводное Среднее управление доступом (MAC) LAN и Физический уровень (PHY) Спецификации — Поправка 4: Улучшения для Очень Высокой Пропускной способности для Операции в Полосах ниже 6 ГГц.
wlanRecoveryConfig
| wlanVHTConfig
| wlanVHTData
| wlanVHTLTFChannelEstimate
| wlanVHTLTFDemodulate
[1] 802.11ac Станд. IEEE 2 013 Адаптированных и переизданные с разрешением от IEEE. Авторское право IEEE 2013. Все права защищены.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.