wlanCoarseCFOEstimate

Выполните грубую оценку CFO

Описание

пример

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

пример

fOffset = wlanCoarseCFOEstimate(rxSig,cbw,corrOffset) задает смещение корреляции как долю короткого обучающего символа.

Примеры

свернуть все

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

nht = wlanNonHTConfig;

Сгенерируйте сигнал, отличный от HT.

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

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

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

Извлечение L-STF.

ind = wlanFieldIndices(nht,'L-STF');
rxLSTF = rxSig(ind(1):ind(2),:);

Оцените смещение частоты от L-STF.

freqOffsetEst = wlanCoarseCFOEstimate(rxLSTF,'CBW20')
freqOffsetEst = 2.0000e+03

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

Создайте объект строения VHT и L-STF.

vht = wlanVHTConfig;
txstf = wlanLSTF(vht);

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

cbw = 'CBW80';
fs = 80e6;

Создайте объекты канала TGac и теплового шума. Установите профиль задержки канала TGac равным 'Model-C'. Установите рисунок канала теплового шума равной 9 дБ.

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

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

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

rxstfNoNoise = tgacChan(txstf);
rxstf = noise(rxstfNoNoise);

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

pfOffset = comm.PhaseFrequencyOffset('SampleRate',fs, ...
    'FrequencyOffsetSource','Input port');
rxstf = pfOffset(rxstf,750);

Для профиля задержки модели-С разброс задержки RMS составляет 30 нс, что составляет 3/8 из 80-нанометровой длительности обучающего символа. Поэтому установите смещение корреляции равным 0,375.

corrOffset = 0.375;

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

fOffsetEst = wlanCoarseCFOEstimate(rxstf,cbw,corrOffset)
fOffsetEst = 746.2700

Оценка очень близка к введенному CFO в 750 Гц.

Измените профиль задержки на 'Model-E', который имеет разброс задержки RMS 100 нс.

release(tgacChan)
tgacChan.DelayProfile = 'Model-E';

Пропустите переданный сигнал через измененный канал и примените CFO на 750 Гц.

rxstfNoNoise = tgacChan(txstf);
rxstf = noise(rxstfNoNoise);
rxstf = pfOffset(rxstf,750);

Оцените смещение частоты.

fOffsetEst = wlanCoarseCFOEstimate(rxstf,cbw,corrOffset)
fOffsetEst = 947.7234

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

Установите смещение корреляции на максимальное значение 1 и оцените CFO.

corrOffset = 1;
fOffsetEst = wlanCoarseCFOEstimate(rxstf,cbw,corrOffset)
fOffsetEst = 745.3640

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

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

rxstfCorrected = pfOffset(rxstf,-fOffsetEst);

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

fOffsetEstCorr = wlanCoarseCFOEstimate(rxstfCorrected,cbw,corrOffset)
fOffsetEstCorr = 1.9929e-11

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

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

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

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

Примечание

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

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

Пропускная способность канала в МГц, заданная в качестве одного из следующих значений.

  • 'CBW5' - Пропускная способность канала 5 МГц

  • 'CBW10' - Пропускная способность канала 10 МГц

  • 'CBW20' - Пропускная способность канала 20 МГц

  • 'CBW40' - Пропускная способность канала 40 МГц

  • 'CBW80' - Пропускная способность канала 80 МГц

  • 'CBW160' - Пропускная способность канала 160 МГц

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

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

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

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

свернуть все

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

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

Подробнее о

свернуть все

L-STF

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

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

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

Поскольку последовательность имеет хорошие корреляционные свойства, она используется для обнаружения начала пакета, для грубой коррекции частоты и для настройки AGC. Последовательность использует 12 из 52 поднесущих, которые доступны на сегмент полосы пропускания канала 20 МГц. Для диапазонов 5 МГц, 10 МГц и 20 МГц количество сегментов полосы пропускания канала составляет 1.

Ссылки

[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. Все права защищены.