wlanNonHTDataBitRecover

Восстановите PSDU с Поля данных non-HT

Описание

пример

psdu = wlanNonHTDataBitRecover(sym,noiseVarEst,cfg) восстанавливает psdu, вектор-столбец модуля эксплуатационных данных физического уровня (PSDU) биты, от sym, демодулируемые и компенсируемые символы ортогонального мультиплексирования деления частоты (OFDM), включающие Поле данных non-HT невысокопроизводительной формы волны (non-HT). Функция восстанавливает PSDU при помощи шумовой оценки отклонения noiseVarEst и параметры передачи non-HT cfg.

psdu = wlanNonHTDataBitRecover(sym,noiseVarEst,csi,cfg) улучшает demappinng поднесущих OFDM при помощи информации о состоянии канала csi.

пример

[psdu,scramInit] = wlanNonHTDataBitRecover(___,'OFDMSymbolOffset',symOffset) восстанавливается начальный скремблер утверждают scramInit для любой комбинации входных параметров от предыдущих синтаксисов.

Примеры

свернуть все

Сконфигурируйте и сгенерируйте форму волны временного интервала non-HT.

cfg = wlanNonHTConfig('MCS',4);
bits = randi([0 1],8*cfg.PSDULength,1,'int8');
waveform = wlanWaveformGenerator(bits,cfg);

Передайте форму волны через канал аддитивного белого Гауссова шума (AWGN) с отношением сигнал-шум (SNR) 30.

snr = 30;
rxWaveform = awgn(waveform,snr);

Извлеките Поле данных non-HT из полученной формы волны.

field = 'NonHT-Data';
ind = wlanFieldIndices(cfg,field);
rx = rxWaveform(ind(1):ind(2),:);

Восстановите сигнал частотного диапазона OFDM демодуляция сигнала данных временного интервала.

sym = wlanNonHTOFDMDemodulate(rx,field,cfg);

Извлеките поднесущие данных из демодулируемого сигнала.

info = wlanNonHTOFDMInfo(field,cfg);
sym = sym(info.DataIndices,:,:);

Восстановите PSDU и подтвердите, что он совпадает с переданным PSDU.

noiseVarEst = 10^(-snr/10);
psdu = wlanNonHTDataBitRecover(sym,noiseVarEst,cfg);
isequal(bits,psdu)
ans = logical
   1

Сконфигурируйте и сгенерируйте сигнал Данных non-HT с пропускной способностью канала 160 МГц и динамической операции пропускной способности.

bandwidth = 'CBW160';
cfg = wlanNonHTConfig('ChannelBandwidth',bandwidth,'PSDULength',1, ...
    'SignalChannelBandwidth',true,'BandwidthOperation','Dynamic');
bits = randi([0 1],8*cfg.PSDULength,1,'int8');
[range,~] = scramblerRange(cfg);
scramInit = randi(range);
y = wlanNonHTData(bits,cfg,scramInit);

Передайте форму волны через канал AWGN с ОСШ 50.

snr = 50;
noiseVarEst = 10^(-snr/10);
rx = awgn(y,snr);

Восстановите сигнал частотного диапазона OFDM демодуляция сигнала Данных non-HT, задав смещение выборки символа OFDM.

field = 'NonHT-Data';
symOffset = 0.5;
sym = wlanNonHTOFDMDemodulate(rx,field,bandwidth,'OFDMSymbolOffset',symOffset);

Извлеките поднесущие данных.

info = wlanNonHTOFDMInfo(field,bandwidth);
sym = sym(info.DataIndices,:);

Восстановите первый подканал на 20 МГц PSDU, улучшив demapping поднесущих OFDM путем указывания информации состояния канала. Подтвердите, что полученные и переданные PSDUs соответствуют.

csi = ones(48,1);
[psdu,scramInit] = wlanNonHTDataBitRecover(sym(1:48,:),noiseVarEst,csi,cfg);
isequal(bits,psdu)
ans = logical
   1

Восстановите и отобразите пропускную способность, сигнализирующую путем интерпретации состояния скремблера.

[bandwidth,dyn] = wlanInterpretScramblerState(scramInit)
bandwidth = 
'CBW160'
dyn = logical
   1

Входные параметры

свернуть все

Демодулируемые и компенсируемые символы OFDM, включающие Поле данных non-HT в виде матрицы с комплексным знаком размера 48 Nsym, где N sym является количеством символов OFDM.

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

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

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

Параметры передачи Non-HT в виде wlanNonHTConfig объект.

Информация о состоянии канала в виде вектор-столбца с действительным знаком длины 48.

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

Смещение выборки символа OFDM, как часть длины циклического префикса в виде скаляра в интервале [0, 1].

Значение, которое вы задаете, указывает на местоположение запуска для демодуляции OFDM относительно начала циклического префикса.

Пример: 0.45

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

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

свернуть все

Восстановленные биты PSDU, возвращенные как вектор-столбец с бинарным знаком длины 8 × L, где L является длиной PSDU в байтах. Чтобы задать L, установите PSDULength свойство cfg входной параметр.

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

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

Разделите 17.3.5.5 [1] из, задает скремблирование, и дескремблирование процесса применилось к передаваемым данным. Заголовок и поля данных, которые следуют за полем инициализации скремблера (включая дополнительные биты данных) скремблированы XORing каждый бит с длиной 127 периодических последовательностей, сгенерированных полиномиальным S(x) = x 7 + x 4 + 1. Октеты PSDU помещаются в небольшой поток, и, в каждом октете, бит 0 (LSB) является первыми и битными 7 (MSB), является последним. Этот рисунок демонстрирует генерацию последовательности и операцию "исключающее ИЛИ".

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

ЭлементX7X6X5X4X3X2 X1
Битовое значение0000001

Чтобы сгенерировать поток битов, эквивалентный десятичному числу, используйте de2bi функция. Например, для десятичного 1:

de2bi(1,7,'left-msb')
ans =

     0     0     0     0     0     0     1

Пример: [1; 0; 1; 1; 1; 0; 1] передает состояние инициализации скремблера 93 как вектор-столбец с бинарным знаком.

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

Ссылки

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

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

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

Смотрите также

Функции

Объекты

Введенный в R2020b