wlanNonHTOFDMDemodulate

Демодулируйте поля волны OFDM, отличной от HT

Описание

пример

sym = wlanNonHTOFDMDemodulate(rx,field,cfg) восстанавливает сигнал частотного диапазона путем ортогонального частотного мультиплексирования (OFDM), демодулирующего не высокопроизводительные (не-HT) сигналы временной области rx. Функция демодулирует rx при использовании параметров передачи, отличных от HT cfg и значение поля сигнала field.

sym = wlanNonHTOFDMDemodulate(rx,field,bandwidth) задает пропускную способность канала для передачи.

пример

sym = wlanNonHTOFDMDemodulate(___,'OFDMSymbolOffset',symOffset) задает смещение дискретизации символов OFDM как долю длины циклического префикса в дополнение к любой комбинации входных параметров из предыдущих синтаксисов.

Примеры

свернуть все

Сконфигурируйте и сгенерируйте сигнал без HT-диапазона.

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

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

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

Извлеките поле, отличное от Данные, из принятой формы волны.

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

Сконфигурируйте и сгенерируйте сигнал, не являющийся Данные, с пропускной способностью канала 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, демодулируя сигнал, не относящийся к 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, улучшая демпфирование поднесущих OFDM путем определения информации о состоянии канала. Подтвердите соответствие принятых и переданных блоков PSDU.

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

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

свернуть все

Принятый сигнал временной области, заданный как комплексная матрица размера N s-by- N r.

  • N s - количество выборок во временной области. Если N s не является целым числом, кратным длине символа OFDM, L s, для заданного поля, то функция игнорирует оставшиеся mod(Ns,Ls) символы.

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

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

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

  • 'L-LTF' - Демодулируйте устаревшее поле длительного обучения (L-LTF).

  • 'L-SIG' - Демодулируйте устаревшее поле сигнализации (L-SIG).

  • 'NonHT-Data' - Демодулируйте поле, отличное от HT Data.

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

Не-HT параметры передачи, заданные как wlanNonHTConfig объект.

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

  • 'CBW5' - Пропускная способность канала 5 МГц

  • 'CBW10' - Пропускная способность канала 10 МГц

  • 'CBW20' - Пропускная способность канала 20 МГц

  • 'CBW40' - Пропускная способность канала 40 МГц

  • 'CBW80' - Пропускная способность канала 80 МГц

  • 'CBW160' - Пропускная способность канала 160 МГц

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

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

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

Пример: 0.45

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

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

свернуть все

Демодулированный частотным диапазоном сигнал, возвращаемый как комплексный массив размера N sc-by N sym-by- N r.

  • N sc - количество активных занятых поднесущих в демодулированном поле.

  • N sym является количеством символов OFDM.

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

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

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

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

.

См. также

Функции

Введенный в R2020b