wlanFineCFOEstimate

Выполните прекрасную оценку CFO

Описание

пример

fOffset = wlanFineCFOEstimate(rxSig,cbw) выполняет прекрасную оценку несущей частоты возмещена (CFO) на полученном временном интервале L-LTF[1] выборки rxSig для полосы пропускания канала cbw. Функция может оценить максимальный CFO 156,25 кГц или половину расстояния между поднесущими.

пример

fOffset = wlanFineCFOEstimate(rxSig,cbw,corrOffset) задает смещение корреляции как часть циклического префикса L-LTF.

Примеры

свернуть все

Создайте объект настройки non-HT.

nht = wlanNonHTConfig;

Сгенерируйте форму волны non-HT.

txSig = wlanWaveformGenerator([1;0;0;1],nht);

Создайте фазу, и смещение частоты возражают и вводят смещение частоты на 2 Гц.

pfOffset = comm.PhaseFrequencyOffset('SampleRate',20e6,'FrequencyOffset',2);
rxSig = pfOffset(txSig);

Извлеките L-LTF и оцените смещение частоты.

ind = wlanFieldIndices(nht,'L-LTF');
rxlltf = rxSig(ind(1):ind(2),:);
freqOffsetEst = wlanFineCFOEstimate(rxlltf,'CBW20')
freqOffsetEst = 2.0000

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

Создайте настройку VHT, возражают и создают L-LTF.

vht = wlanVHTConfig;
txltf = wlanLLTF(vht);

Установите частоту дискретизации соответствовать полосе пропускания по умолчанию объекта настройки VHT.

fs = 80e6;

Создайте TGac и объекты канала теплового шума. Установите шумовую фигуру канала AWGN к 10 дБ.

tgacChan = wlanTGacChannel('SampleRate',fs, ...
    'ChannelBandwidth',vht.ChannelBandwidth, ...
    'DelayProfile','Model-C','LargeScaleFadingEffect','Pathloss');

noise = comm.ThermalNoise('SampleRate',fs, ...
    'NoiseMethod','Noise figure', ...
    'NoiseFigure',10);

Передайте L-LTF через шумный канал TGac.

rxltfNoNoise = tgacChan(txltf);
rxltf = noise(rxltfNoNoise);

Создайте фазу, и смещение частоты возражают и вводят смещение частоты на 25 Гц.

pfoffset = comm.PhaseFrequencyOffset('SampleRate',fs,'FrequencyOffsetSource','Input port');
rxltf = pfoffset(rxltf,25);

Выполните прекрасную оценку смещение частоты с помощью смещения корреляции 0,6. Ваши результаты могут отличаться немного.

fOffsetEst = wlanFineCFOEstimate(rxltf,vht.ChannelBandwidth,0.6)
fOffsetEst = 28.0773

Правильный для предполагаемой частоты возмещен.

rxltfCorr = pfoffset(rxltf,-fOffsetEst);

Оцените смещение частоты откорректированного сигнала.

fOffsetEstCorr = wlanFineCFOEstimate(rxltfCorr,vht.ChannelBandwidth,0.6)
fOffsetEstCorr = -3.1286e-13

Откорректированному сигналу возмещали незначительную частоту.

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

Установите полосу пропускания канала и соответствующую частоту дискретизации.

cbw = 'CBW40';
fs = 40e6;

Грубая коррекция частоты

Сгенерируйте объект настройки формата HT.

cfg = wlanHTConfig('ChannelBandwidth',cbw);

Сгенерируйте форму волны передачи.

txSig = wlanWaveformGenerator([1;0;0;1],cfg);

Создайте TGn и объекты канала теплового шума. Установите шумовую фигуру приемника к 9 дБ.

tgnChan = wlanTGnChannel('SampleRate',fs,'DelayProfile','Model-D', ...
    'LargeScaleFadingEffect','Pathloss and shadowing');
noise = comm.ThermalNoise('SampleRate',fs, ...
    'NoiseMethod','Noise figure', ...
    'NoiseFigure',9);

Передайте форму волны через TGn, образовывают канал и добавляют шум.

rxSigNoNoise = tgnChan(txSig);
rxSig = noise(rxSigNoNoise);

Создайте фазу и объект смещения частоты ввести смещение несущей частоты. Введите смещение частоты на 2 кГц.

pfOffset = comm.PhaseFrequencyOffset('SampleRate',fs,'FrequencyOffsetSource','Input port');
rxSig = pfOffset(rxSig,2e3);

Извлеките сигнал L-STF для крупной оценки смещения частоты.

istf = wlanFieldIndices(cfg,'L-STF');
rxstf = rxSig(istf(1):istf(2),:);

Выполните крупную оценку смещения частоты. Ваши результаты могут отличаться.

foffset1 = wlanCoarseCFOEstimate(rxstf,cbw)
foffset1 = 2.0221e+03

Правильный для предполагаемого смещения.

rxSigCorr1 = pfOffset(rxSig,-foffset1);

Прекрасная коррекция частоты

Извлеките сигнал L-LTF для прекрасной оценки смещения.

iltf = wlanFieldIndices(cfg,'L-LTF');
rxltf1 = rxSigCorr1(iltf(1):iltf(2),:);

Выполните прекрасную оценку откорректированного сигнала.

foffset2 = wlanFineCFOEstimate(rxltf1,cbw)
foffset2 = -11.0795

Откорректированное смещение сигнала уменьшается с 2 000 Гц приблизительно до 7 Гц.

Правильный для остающегося смещения.

rxSigCorr2 = pfOffset(rxSigCorr1,-foffset2);

Определите смещение частоты дважды откорректированного сигнала.

rxltf2 = rxSigCorr2(iltf(1):iltf(2),:);
deltaFreq = wlanFineCFOEstimate(rxltf2,cbw)
deltaFreq = -2.0048e-11

CFO является нулем.

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

свернуть все

Полученные выборки L-LTF в виде матрицы с комплексным знаком размера N S-by-NR. N S является количеством отсчетов в L-LTF, и N R является количеством, получают антенны.

Примечание

Если количество отсчетов в этом входе больше количества отсчетов в L-LTF, функция оценивает CFO только при помощи первого N S выборки.

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

Полоса пропускания канала в виде одного из этих значений.

  • 'CBW5' – Полоса пропускания канала 5 МГц

  • 'CBW10' – Полоса пропускания канала 10 МГц

  • 'CBW20' – Полоса пропускания канала 20 МГц

  • 'CBW40' – Полоса пропускания канала 40 МГц

  • 'CBW80' – Полоса пропускания канала 80 МГц

  • 'CBW160' – Полоса пропускания канала 160 МГц

  • 'CBW320' – Полоса пропускания канала 320 МГц

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

Смещение корреляции как часть циклического префикса L-LTF в виде скаляра в интервале [0, 1]. Длительность длинного учебного символа меняется в зависимости от полосы пропускания. Для получения дополнительной информации см. L-LTF.

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

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

свернуть все

Смещение частоты, в Гц, возвратилось как скаляр с действительным знаком. Функция может оценить максимальный CFO 156,25 кГц или половину расстояния между поднесущими.

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

Больше о

свернуть все

L-LTF

Устаревшее длинное учебное поле (L-LTF) является вторым полем в 802.11™ устаревшая преамбула PLCP OFDM. L-LTF является компонентом VHT, HT и non-HT PPDUs.

Оценка канала, прекрасная частота возместила оценку, и прекрасная оценка смещения символьной синхронизации использует L-LTF.

L-LTF состоит из циклического префикса (CP), сопровождаемого двумя идентичными длинными учебными символами (C1 и C2). CP состоит из второй половины длинного учебного символа.

Длительность L-LTF меняется в зависимости от полосы пропускания канала.

Полоса пропускания канала (МГц)Частотный интервал поднесущей, Δ F (kHz)Период быстрого преобразования Фурье (FFT) (БПФ T  = 1 / Δ F)Циклический префиксный или учебный защитный интервал символа (GI2) длительность (T GI2 = БПФ T  / 2)Длительность L-LTF (T LONG = T GI2 + 2 × БПФ T)
20, 40, 80, 160, и 320312.53.2 μs1.6 μs8 μs
10156.256.4 μs3.2 μs16 μs
578.12512.8 μs6.4 μs32 μs

Ссылки

[1] Станд. IEEE 802.11™-2016 (Версия Станд. IEEE 802.11-2012). “Часть 11: Беспроводное Среднее управление доступом (MAC) LAN и Физический уровень (PHY) Технические требования”. Стандарт IEEE для Информационных технологий — Телекоммуникаций и обмена информацией между системами — Локальными сетями и городскими компьютерными сетями — Конкретные требования.

[2] Литий, Цзянь. “Оценка Смещения Несущей частоты для Основанного на OFDM WLANs”. Буквы Обработки сигналов IEEE. Издание 8, Выпуск 3, март 2001, стр 80–82.

[3] Американский лось, P. H. “Метод для ортогонального деления частоты, мультиплексирующего частоту, возместил коррекцию”. Транзакции IEEE на Коммуникациях. Издание 42, Выпуск 10, октябрь 1994, стр 2908–2914.

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

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

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

Введенный в R2015b

[1] IEEE® Станд. 802.11-2012 Адаптированных и переизданные с разрешением от IEEE. Авторское право IEEE 2012. Все права защищены.