wlanFineCFOEstimate

Выполните точную оценку CFO

Описание

пример

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

пример

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

Примеры

свернуть все

Создайте объект строения, отличный от HT.

nht = wlanNonHTConfig;

Сгенерируйте сигнал, отличный от 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 = 1.2514e-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

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

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

rxSigCorr2 = pfOffset(rxSigCorr1,-foffset2);

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

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

CFO равен нулю.

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

свернуть все

Полученные выборки L-LTF, заданные как комплексная матрица размера N S-by- N R. 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 МГц

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

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

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

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

свернуть все

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

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

Подробнее о

свернуть все

L-LTF

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

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

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

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

Пропускная способность канала (МГц)Частотный интервал поднесущей, Δ F (кГц)Период быстрого преобразования Фурье (FFT) (T БПФ  = 1/ Δ F)Длительность интервала защиты циклического префикса или обучающего символа (GI2) (T GI2  = T FFT/2  )Длительность L-LTF (T LONG  = T GI2  + 2 × T FFT)
20, 40, 80 и 160312.53,2 мкс1,6 мкс8 мкс
10156.256,4 мкс3,2 мкс16 мкс
578.12512,8 мкс6,4 мкс32 мкс

Ссылки

[1] IEEE Std 802.11™-2016 (Редакция IEEE Std 802.11-2012). «Часть 11: Спецификации управления доступом к среде беспроводной локальной сети (MAC) и физического слоя (PHY)». Стандарт IEEE на информационные технологии - Телекоммуникации и обмен информацией между системами - Локальные и столичные сети - Особые требования.

[2] Ли, Цзянь. Оценка смещения частоты несущей для WLAN на основе OFDM. Буквы обработки сигналов IEEE. Vol. 8, Issue 3, Mar 2001, pp. 80-82.

[3] Лось, P. H. «A метода для коррекции ортогональной частоты деления мультиплексирования смещения частоты». Транзакции IEEE по коммуникациям. Vol. 42, Issue 10, Oct 1994, pp. 2908-2914.

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

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

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

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

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