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. The axes 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);

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

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

Добавьте AWGN к полученному сигналу. Установите отклонение шума для случая, когда приемник имеет 9-dB рисунок шума.

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-by-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-LTF и VHT-Data.

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

Передайте сигнал поля VHT-данных для первого пользователя через канал 4x1, потому что этот сигнал состоит из одного пространственно-временного потока. Передайте поле VHT-Data для вторых пользовательских данных через канал 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- N r.

  • 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 sc-by N sym-by- N r.

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

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

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

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

Подробнее о

свернуть все

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® Стд 802.11™-2016.

Ссылки

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

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

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

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

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

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