exponenta event banner

wlanVHTLTFDemodulate

Демодуляция сигнала VHT-LTF

Описание

пример

sym = wlanVHTLTFDemodulate(rx,cfg) возвращает демодулированную форму VHT-LTF1сигнала [] 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-Data и восстановите информационные биты.

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

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

numErrs = biterr(txPSDU,rxPSDU)
numErrs = 0

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

    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

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

свернуть все

Принятый сигнал временной области, заданный как матрица комплексных значений размера Ns-by-Nr.

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

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

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

Конфигурация формата VHT, заданная как wlanVHTConfig объект.

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

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

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

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

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

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

Примечание

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

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

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

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

Пример: 0.45

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

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

свернуть все

Демодулированный сигнал частотной области, возвращаемый как массив комплексных значений размера Nsc-by-Nsym-by-Nr.

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

  • Nsym - количество символов OFDM.

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

Типы данных: 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 ® Std 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++ с помощью MATLAB ® Coder™

.
Представлен в R2015b

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