wlanVHTLTFDemodulate

Демодулируйте форму волны VHT-LTF

Описание

пример

sym = wlanVHTLTFDemodulate(rx,cfg) возвращает демодулируемый VHT-LTF[1] форма волны y путем демодуляции входного сигнала временного интервала rx для параметров передачи очень высокой пропускной способности (VHT) cfg.

пример

sym = wlanVHTLTFDemodulate(rx,cbw,numSTS) задает полосу пропускания канала cbw и количество пространственно-временных потоков numSTS.

пример

sym = wlanVHTLTFDemodulate(___,symOffset) задает смещение символа OFDM как часть длины циклического префикса.

Примеры

свернуть все

Создайте объект настройки формата VHT.

vht = wlanVHTConfig;

Сгенерируйте сигнал VHT-LTF.

txVHTLTF = wlanVHTLTF(vht);

Добавьте белый шум в сигнал.

rxVHTLTF = awgn(txVHTLTF,1);

Демодулируйте полученный сигнал.

y = wlanVHTLTFDemodulate(rxVHTLTF,vht);

Укажите, что настройка формата VHT возражает и генерирует VHT-LTF.

vht = wlanVHTConfig;
txltf = wlanVHTLTF(vht);

Умножьте переданный VHT-LTF на 0,1 + 0.1i. Передайте сигнал через канал AWGN.

rxltfNoNoise = txltf * complex(0.1,0.1);
rxltf = awgn(rxltfNoNoise,20,'measured');

Демодулируемый полученный VHT-LTF со смещением символа 0,5.

dltf = wlanVHTLTFDemodulate(rxltf,vht,0.5);

Оцените канал с помощью демодулируемого VHT-LTF. Постройте результат.

chEst = wlanVHTLTFChannelEstimate(dltf,vht);
scatterplot(chEst)

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.

Оценка очень близко к ранее введена 0.1+0.1i множитель.

Сгенерируйте форму волны VHT. Извлеките и демодулируйте VHT длинное учебное поле (VHT-LTF), чтобы оценить коэффициенты канала. Восстановитесь поле данных при помощи канала оценивают и используют это поле, чтобы определить количество битовых ошибок.

Сконфигурируйте объект настройки VHT-формата с двумя путями.

vht = wlanVHTConfig('NumTransmitAntennas',2,'NumSpaceTimeStreams',2);

Сгенерируйте случайный PSDU и создайте соответствующую форму волны VHT.

txPSDU = randi([0 1],8*vht.PSDULength,1);
txSig = wlanWaveformGenerator(txPSDU,vht);

Передайте сигнал через TGac 2x2 канал MIMO.

tgacChan = wlanTGacChannel('NumTransmitAntennas',2,'NumReceiveAntennas',2, ...
    'LargeScaleFadingEffect','Pathloss and shadowing');
rxSigNoNoise = tgacChan(txSig);

Добавьте AWGN в полученный сигнал. Установите шумовое отклонение для случая, в котором приемник имеет шумовую фигуру на 9 дБ.

nVar = 10^((-228.6+10*log10(290)+10*log10(80e6)+9)/10);
awgnChan = comm.AWGNChannel('NoiseMethod','Variance','Variance',nVar);
rxSig = awgnChan(rxSigNoNoise);

Определите индексы для VHT-LTF и извлеките поле из полученного сигнала.

indVHT = wlanFieldIndices(vht,'VHT-LTF');
rxLTF = rxSig(indVHT(1):indVHT(2),:);

Демодулируйте VHT-LTF и оцените коэффициенты канала.

dLTF = wlanVHTLTFDemodulate(rxLTF,vht);
chEst = wlanVHTLTFChannelEstimate(dLTF,vht);

Извлеките VHT-поле-данных и восстановите информационные биты.

indData = wlanFieldIndices(vht,'VHT-Data');
rxData = rxSig(indData(1):indData(2),:);
rxPSDU = wlanVHTDataRecover(rxData,chEst,nVar,vht);

Определите количество битовых ошибок.

numErrs = biterr(txPSDU,rxPSDU)
numErrs = 0

Восстановите биты с VHT-поля-данных многопользовательской передачи VHT, восстановленной с исчезающего канала MU-MIMO при помощи оценки канала на VHT-LTF.

Этот пример может возвратить высокие частоты ошибок по битам, потому что передача не включает предварительное кодирование, чтобы смягчить интерференцию между пространственно-временными потоками. Однако пример показывает типичный рабочий процесс восстановления сигнала VHT и соответствующее использование синтаксиса для включенных функций.

Сконфигурируйте передачу VHT с полосой пропускания канала 160 МГц, двумя пользователями и четырьмя передающими антеннами. Присвойте один пространственно-временной поток первому пользователю и три пространственно-временных потока второму пользователю.

cbw = 'CBW160';
numSTS = [1 3];
cfgVHT = wlanVHTConfig('ChannelBandwidth',cbw,'NumUsers',2, ...
    'NumTransmitAntennas',4,'NumSpaceTimeStreams',numSTS);

Сгенерируйте полезную нагрузку битов для каждого пользователя. Эта полезная нагрузка должна быть в массив ячеек 1 на n, где N является количеством пользователей.

psduLength = 8*cfgVHT.PSDULength;
numUsers = cfgVHT.NumUsers;
bits = cell(1,2);
for nu = 1:numUsers
    bits{nu} = randi([0 1],psduLength(nu),1);
end

Сгенерируйте сигналы VHT-поля-данных и VHT-LTF.

txLTF  = wlanVHTLTF(cfgVHT); 
txDataSym = wlanVHTData(bits,cfgVHT);

Передайте сигнал VHT-поля-данных для первого пользователя через 4x1 канал, потому что этот сигнал состоит из одного пространственно-временного потока. Передайте VHT-поле-данных для вторых пользовательских данных через 4x3 канал, потому что этот сигнал состоит из трех пространственно-временных потоков. Примените AWGN к каждому сигналу, приняв ОСШ 15 дБ.

snr = 15; 
H{1} = complex(randn(4,1),randn(4,1))/sqrt(2);
H{2} = complex(randn(4,3),randn(4,3))/sqrt(2);
number = zeros(2,1);
ratio = zeros(2,1);
for userIdx = 1:numUsers
    rxDataSym = awgn(txDataSym*H{userIdx},snr,'measured');

Примените ту же обработку канала к VHT-LTF для каждого пользователя.

    rxLTF = awgn(txLTF*H{userIdx},snr,'measured');

Вычислите принимаемую мощность сигнала для каждого пользователя и оцените шумовое отклонение.

    powerDB = 10*log10(var(rxDataSym));
    noiseVarEst = mean(10.^(0.1*(powerDB-snr)));

Оцените характеристики канала при помощи VHT-LTF.

    demod = wlanVHTLTFDemodulate(rxLTF,cbw,numSTS);
    chEst = wlanVHTLTFChannelEstimate(demod,cbw,numSTS);

Восстановите биты с полученного VHT-поля-данных для каждого пользователя и определите частоту ошибок по битам путем сравнения восстановленных битов с исходными битами полезной нагрузки.

    dataBits = wlanVHTDataRecover(rxDataSym,chEst,noiseVarEst,cfgVHT,userIdx);
    [number(userIdx),ratio(userIdx)] = biterr(bits{userIdx},dataBits);
    disp(number(userIdx))
    disp(ratio(userIdx))
end
        4269
    0.5082
        2444
    0.0968

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

свернуть все

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

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

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

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

Настройка формата VHT в виде wlanVHTConfig объект.

Полоса пропускания канала в виде 'CBW20', 'CBW40', 'CBW80', или 'CBW160'. Если передача имеет многого пользователя, та же полоса пропускания канала применяется ко всем пользователям.

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

Количество пространственно-временных потоков в передаче в виде скаляра или вектора.

  • Для отдельного пользователя количество пространственно-временных потоков является скалярным целым числом от 1 до 8.

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

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

Примечание

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

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

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

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

Пример: 0.45

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

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

свернуть все

Демодулируемый сигнал частотного диапазона, возвращенный как массив с комплексным знаком размера кв/см N Nsym Nr.

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

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

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

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

Больше о

свернуть все

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.

Ссылки

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

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

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

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

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

| |

Введенный в R2015b

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