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 object. The axes object 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 object. The axes object 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 на 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-поля-данных и VHT-LTF.

txLTF  = wlanVHTLTF(cfgVHT); 
txDataSym = wlanVHTData(bits,cfgVHT);

Передайте сигнал VHT-поля-данных для первого пользователя через 4x1 канал, потому что этот сигнал состоит из одного пространственно-временного потока. Передайте VHT-поле-данных для вторых пользовательских данных через 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 является количеством символов VHT-LTF OFDM, и NR является количеством, получают антенны.

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

Настройка формата в виде a 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® Станд. 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. Все права защищены.