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

Figure Scatter Plot contains an axes. The axes with title Scatter plot contains an object of type line. This object represents Channel 1.

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

Оцените и отобразите коэффициенты канала канала 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')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Rx Antenna 1, Rx Antenna 2.

Восстановите биты из поля 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

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

свернуть все

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

[3] Перахия, Э. и Р. Стейси. Беспроводные LAN следующей генерации: 802.11n и 802.11ac. 2-е издание, Великобритания: Cambridge University Press, 2013.

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

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

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

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