wlanVHTLTFChannelEstimate

Оценка канала с помощью VHT-LTF

Описание

пример

chEst = wlanVHTLTFChannelEstimate(demodSig,cfg) возвращает оценку канала, с помощью демодулируемого VHT-LTF [] 1сигнал, demodSig, учитывая параметры, заданные в wlanVHTConfig объект cfg.

пример

chEst = wlanVHTLTFChannelEstimate(demodSig,cbw,numSTS) возвращает оценку канала для заданной пропускной способности канала, cbw, и количество пространственно-временных потоков, numSTS.

пример

chEst = wlanVHTLTFChannelEstimate(___,span) указывает, что промежуток фильтра скользящего среднего значения раньше выполнял сглаживание частоты.

Примеры

свернуть все

Отобразите оценку канала данных и экспериментальных поднесущих для канала формата VHT с помощью его длинного учебного поля.

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

cfg = wlanVHTConfig;
txSig = wlanVHTLTF(cfg);

Умножьте переданный сигнал VHT-LTF на 0,3 - 0.15i и передайте его через канал AWGN, имеющий отношение сигнал-шум на 30 дБ. Демодулируйте полученный сигнал.

rxSig = awgn(txSig*(0.3-0.15i),30);
demodSig = wlanVHTLTFDemodulate(rxSig,cfg);

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

est = wlanVHTLTFChannelEstimate(demodSig,cfg);

Постройте оценку канала.

scatterplot(est)
grid

Оценка канала совпадает с комплексным множителем канала.

Оцените и отобразите коэффициенты канала 4x2 канал MIMO с помощью VHT-LTF.

Создайте объект настройки формата VHT для канала, имеющего четыре пространственных потока и четыре антенны передачи. Передайте полную форму волны VHT.

cfg = wlanVHTConfig('NumTransmitAntennas',4, ...
    'NumSpaceTimeStreams',4,'MCS',5);
txWaveform = wlanWaveformGenerator([1;0;0;1;1;0],cfg);

Установите уровень выборки, и затем передайте переданную форму волны через 4x2 канал TGac.

fs = 80e6;
tgacChan = wlanTGacChannel('SampleRate',fs, ...
    'NumTransmitAntennas',4,'NumReceiveAntennas',2);
rxWaveform = tgacChan(txWaveform);

Определите индексы поля VHT-LTF и демодулируйте VHT-LTF от полученной формы волны.

indVHTLTF = wlanFieldIndices(cfg,'VHT-LTF');
ltfDemodSig = wlanVHTLTFDemodulate(rxWaveform(indVHTLTF(1):indVHTLTF(2),:), cfg);

Сгенерируйте оценку канала при помощи демодулируемого сигнала VHT-LTF. Задайте промежуток фильтра сглаживания пяти поднесущих.

est = wlanVHTLTFChannelEstimate(ltfDemodSig,cfg,5);

Постройте ответ величины первого пространственно-временного потока для обоих, получают антенны. Из-за случайной природы исчезающего канала, ваши результаты могут варьироваться.

plot(abs(est(:,1,1)))
hold on
plot(abs(est(:,1,2)))
xlabel('Subcarrier')
ylabel('Magnitude')
legend('Rx Antenna 1','Rx Antenna 2')

Восстановите биты 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 сигнализируют в виде NST-by-NSYM-by-NR о массиве. NST является количеством занятых поднесущих, NSYM является количеством символов VHT-LTF OFDM, и NR является количеством, получают антенны.

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

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

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

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

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

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

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

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

Примечание

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

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

Отфильтруйте промежуток фильтра сглаживания частоты в виде нечетного целого числа. Промежуток выражается как много поднесущих.

Примечание

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

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

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

свернуть все

Оценка канала между всеми комбинациями пространственно-временных потоков и получает антенны, возвращенные как NST-by-NSTS,total-by-NR массив. NST является количеством занятых поднесущих. NSTS,total является общим количеством пространственно-временных потоков для всех пользователей. Для однопользовательского случая, NSTS,total = NSTS. NR является количеством, получают антенны. Оценка канала включает коэффициенты и для данных и для экспериментальных поднесущих.

Типы данных: 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) Технические требования.

[3] Perahia, E. и Р. Стейси. Беспроводная LAN следующего поколения: 802.11n и 802.11ac. 2-й выпуск, Соединенное Королевство: Издательство Кембриджского университета, 2013.

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

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

Введенный в R2015b


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