wlanVHTLTFDemodulate

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

Описание

пример

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

пример

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

пример

y = wlanVHTLTFDemodulate(___,OFDMSymbolOffset) задает смещение символа 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)

Оценка очень близко к ранее введена 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-LTF по квазистатическому исчезающему каналу.

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

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

Поскольку существует два пользователя, длина PSDU является 1 2 вектором-строкой.

psduLen = vht.PSDULength
psduLen = 1×2

        1050        3156

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

txDataBits{1} = randi([0 1],8*vht.PSDULength(1),1);
txDataBits{2} = randi([0 1],8*vht.PSDULength(2),1);

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

txVHTLTF  = wlanVHTLTF(vht); 
txVHTData = wlanVHTData(txDataBits,vht);

Передайте поле данных для первого пользователя через 4x1 канал, потому что это состоит из одного пространственно-временного потока. Передайте данные второго пользователя через 4x3 канал, потому что это состоит из трех пространственно-временных потоков. Примените белый Гауссов шум к каждому пользовательскому сигналу.

snr = 15;
H1 = 1/sqrt(2)*complex(randn(4,1),randn(4,1));
H2 = 1/sqrt(2)*complex(randn(4,3),randn(4,3));

rxVHTData1 = awgn(txVHTData*H1,snr,'measured');
rxVHTData2 = awgn(txVHTData*H2,snr,'measured');

Повторите процесс для полей VHT-LTF.

rxVHTLTF1  = awgn(txVHTLTF*H1,snr,'measured');
rxVHTLTF2  = awgn(txVHTLTF*H2,snr,'measured');

Вычислите полученную степень сигнала для обоих пользователей и используйте ее, чтобы оценить шумовое отклонение.

powerDB1 = 10*log10(var(rxVHTData1));
noiseVarEst1 = mean(10.^(0.1*(powerDB1-snr)));

powerDB2 = 10*log10(var(rxVHTData2));
noiseVarEst2 = mean(10.^(0.1*(powerDB2-snr)));

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

demodVHTLTF1 = wlanVHTLTFDemodulate(rxVHTLTF1,cbw,numSTS);
chanEst1 = wlanVHTLTFChannelEstimate(demodVHTLTF1,cbw,numSTS);

demodVHTLTF2 = wlanVHTLTFDemodulate(rxVHTLTF2,cbw,numSTS);
chanEst2 = wlanVHTLTFChannelEstimate(demodVHTLTF2,cbw,numSTS);

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

rxDataBits1 = wlanVHTDataRecover(rxVHTData1,chanEst1,noiseVarEst1,vht,1);
[~,ber1] = biterr(txDataBits{1},rxDataBits1)
ber1 = 0.4983

Определите количество битовых ошибок для второго пользователя.

rxDataBits2 = wlanVHTDataRecover(rxVHTData2,chanEst2,noiseVarEst2,vht,2);
[~,ber2] = biterr(txDataBits{2},rxDataBits2)
ber2 = 0.0972

Частоты ошибок по битам довольно высоки, потому что нет никакого предварительного кодирования, чтобы смягчить интерференцию между потоками. Это особенно очевидно для пользователя 1 получатель, потому что он получает энергию от этих трех потоков, предназначенных для пользователя 2. Пример предназначается, чтобы показать рабочий процесс, и правильные синтаксисы для LTF демодулируют, оценка канала и функции восстановления данных.

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

свернуть все

Входной сигнал временного интервала, соответствующий VHT-LTF PPDU в виде матрицы размера NS-by-NR. NS является количеством выборок. NR является количеством, получают антенны. NS может быть больше или быть равен длине VHT-LTF, как обозначено cfg. Запаздывающие выборки в конце x не используются.

Типы данных: 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, представленное как часть длины циклического префикса (CP) в виде скаляра в интервале [0, 1]. Значение, которое вы задаете, указывает на местоположение запуска для демодуляции OFDM относительно начала циклического префикса. Значение 0 представляет запуск циклического префикса и значения 1 представляет конец циклического префикса.

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

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

свернуть все

Демодулируемая форма волны VHT-LTF, возвращенная как NST-by-NSYM-by-NR массив. NST является количеством данных и экспериментальных поднесущих, NSYM является количеством символов OFDM в VHT-LTF, и NR является количеством, получают антенны.

Если полученный сигнал VHT-LTF, x, пусто, затем выход также пуст.

Типы данных: 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® Std 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. Все права защищены.