wlanVHTLTFDemodulate

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

Синтаксис

y = wlanVHTLTFDemodulate(x,cfg)
y = wlanVHTLTFDemodulate(x,cbw,numSTS)
y = wlanVHTLTFDemodulate(___,OFDMSymbolOffset)

Описание

пример

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. Функция использует следующие свойства объектов wlanVHTConfig:

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

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

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

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

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

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

Примечание

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

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

Пропускная способность канала, заданная как '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 относительно начала циклического префикса. OFDMSymbolOffset = 0 представляет запуск циклического префикса, и OFDMSymbolOffset = 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 задан в IEEE® Std 802.11ac™-2013, Раздел 22.3.8.3.5.

Ссылки

[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]  802.11ac Станд. IEEE 2 013 Адаптированных и переизданные с разрешением от IEEE. Авторское право IEEE 2013. Все права защищены.