exponenta event banner

Синхронизация времени и частоты HDL WLAN

В этом примере показано, как реализовать модель синхронизации времени и частоты WLAN, оптимизированную для генерации кода HDL и реализации аппаратных средств. Синхронизация по времени и частоте является ключевым шагом для восстановления пакетной информации беспроводной локальной сети (WLAN).

Модель оценивает и корректирует временные и частотные сдвиги в принимаемом сигнале WLAN, которые вводятся с помощью искажений радиоканала и радиочастотного (RF) интерфейса. Первоначально модель выполняет грубую оценку времени и частоты и корректировки принятого сигнала. Затем модель точно настраивает оценку времени и частоты и поправки на принятый сигнал, чтобы удалить любые остаточные смещения. Модель поддерживает варианты пропускной способности 20, 40 и 80 МГц для форматов кадров без высокой пропускной способности (Non-HT), высокой пропускной способности (HT), очень высокой пропускной способности (VHT) и высокой эффективности (HE). В примере сравниваются выходные данные модели Simulink ® с функциями MATLAB ® с помощью функций Toolbox™ WLAN.

Декодирование пакетов WLAN включает в себя эти этапы: синхронизация времени и частоты, демодуляция OFDM, оценка и выравнивание канала, обнаружение формата, декодирование сигнала и декодирование данных.

В этой процедуре декодирования только этап синхронизации времени и частоты может быть оптимизирован для генерации кода ЛПВП. Поддержка ЛПВП распространяется и на другие этапы будущего выпуска.

В MATLAB выполните эту команду, чтобы открыть пример модели.

model_name = 'wlanhdlTimeAndFrequencySynchronization';
open_system(model_name);

WLANTimeAndFrequencySynchronization модель содержит следующие подсистемы: грубая синхронизация времени, грубая оценка и коррекция финансового директора, тонкая синхронизация времени и тонкая оценка и коррекция финансового директора.

В MATLAB выполните эту команду для открытия подсистемы WLANTimeAndFrequencySynchronization.

open_system([model_name '/WLANTimeAndFrequencySynchronization'],'force');

Грубая синхронизация времени

Алгоритм грубой временной синхронизации реализует двойное скользящее окно для корреляции, как описано в функции MATLAB. wlanPacketDetect.m. Подсистема грубой синхронизации времени использует автокорреляцию устаревших символов короткого обучающего поля (L-STF) для возврата оцененного смещения начала пакета. Подсистема пикового детектора сравнивает показатели корреляции с энергией сигналов и определяет начало пакета. На следующем этапе обнаружение точного хронирования символа уточняет эту оценку начала пакета с использованием унаследованного длинного обучающего поля (L-LTF).

В MATLAB выполните эту команду, чтобы открыть подсистему грубой синхронизации времени.

open_system([model_name '/WLANTimeAndFrequencySynchronization/Coarse Time Sync']);

Грубая оценка и коррекция финансового директора

Учитывая начало пакета из подсистемы грубой синхронизации по времени, подсистема грубой оценки и коррекции финансового директора выполняет автокорреляцию на входе с использованием L-STF и усредняет вычисленные показатели корреляции по окну длительности L-STF. Затем подсистема оценивает смещение несущей частоты (CFO), рассматривая угол результирующей метрики.

В MATLAB выполните эту команду для открытия подсистемы оценки грубого финансового директора.

open_system([model_name '/WLANTimeAndFrequencySynchronization/Coarse CFO Estimation and Correction/Coarse CFO Estimation']);

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

В MATLAB выполните эту команду для открытия подсистемы коррекции грубого финансового директора.

open_system([model_name '/WLANTimeAndFrequencySynchronization/Coarse CFO Estimation and Correction/Coarse CFO Correction']);

Точная синхронизация времени

Подсистема точной синхронизации по времени принимает грубо скорректированную форму сигнала сдвига по времени и частоте для точной синхронизации сдвига по времени. Подсистема коррелятора сопоставляет принятый сигнал с локально генерируемым L-LTF. Подсистема поиска пиков выполняет поиск максимального пика корреляции и затем синхронизирует сигнал.

В MATLAB выполните эту команду для открытия подсистемы точной синхронизации времени.

open_system([model_name '/WLANTimeAndFrequencySynchronization/Fine Time Sync']);

Оценка и коррекция финансового директора

Подсистема оценки и коррекции точного финансового директора использует синхронизированный по времени сигнал в качестве входного сигнала для точной настройки сдвига частоты. Эта подсистема оценивает и корректирует CFO для удаления любого остатка, оставшегося после грубой коррекции частоты, выполняет точную оценку CFO, аналогичную грубой оценке, используя L-LTF вместо L-STF, и оценивает сдвиг частоты с учетом угла усредненных корреляций.

В MATLAB выполните эту команду для открытия подсистемы оценки точного финансового директора.

open_system([model_name '/WLANTimeAndFrequencySynchronization/Fine CFO Estimation and Correction/Fine CFO Estimation']);

Подсистема коррекции точного финансового директора использует расчетный точный финансовый директор для коррекции смещения остаточной частоты, а затем выводит скорректированный принятый сигнал WLAN.

В MATLAB выполните эту команду, чтобы открыть подсистему точной коррекции финансового директора.

open_system([model_name '/WLANTimeAndFrequencySynchronization/Fine CFO Estimation and Correction/Fine CFO Correction']);

Интерфейс модели и проверка

Пример модели принимает принятый сигнал в качестве входного сигнала вместе с действительными и начальными сигналами. Модель возвращает синхронизированный сигнал в виде выходного сигнала вместе с действительным сигналом. Другие выходные сигналы в примере включают в себя флаг обнаружения пакета, оценку финансового директора вместе с его действительностью и количество пакетов, обнаруженных как выходные данные. Оценка финансового директора представляет собой сумму грубых оценок финансового директора и мелких оценок финансового директора. wlanFrontEndInit предоставляет входные данные для модели. wlanWaveformGenerator.m функция в сценарии генерирует кадр VHT 20 МГц, который проходит через канал TGac с профилем задержки модели A. Аддитивный белый гауссов шум (AWGN) при отношении сигнал/шум 30 дБ (SNR) добавляется с другими нарушениями канала 10 кГц финансового директора и сдвигом по времени '25'.

fprintf('\n Simulating HDL time and frequency synchronization \n');
out = sim('wlanhdlTimeAndFrequencySynchronization.slx');
fprintf('\n HDL simulation complete. %d packet detected.',out.numPacketsDetected(end));
 Simulating HDL time and frequency synchronization 

 HDL simulation complete. 1 packet detected.

Выходные данные примера проверяются с помощью функций WLAN Toolbox. Укажите ту же форму входного сигнала для модели Simulink и эквивалентной функции MATLAB, а затем сравните выходные сигналы.

fprintf('\n Comparing WLAN MATLAB time and frequency synchronization \n')
inputWaveformRef = inputWaveform(1:end-length(Hd.Numerator)+1);
inputWaveformRef = filter(Hd.Numerator,1,inputWaveformRef);

% WLAN packet detection
[startOffset,Mn]=wlanPacketDetect(inputWaveformRef,CBW);
rxWave1 = inputWaveformRef(startOffset+1:end);

% Coarse CFO estimation and correction
coarseFreqOff = wlanCoarseCFOEstimate(rxWave1,CBW);
rxWave2 = hwlanFrequencyOffsetCorrect(rxWave1,fs,coarseFreqOff);

% Fine time synchronization
searchBufferLLTF = rxWave2(1:wlanConfig.lstfLen*10+wlanConfig.lltfLen*3);
[offset,MN] = wlanSymbolTimingEstimate(searchBufferLLTF,CBW);
rxWave3 = rxWave2(offset+1:end);

% Fine CFO estimation and correction
LTFs = rxWave3(10*wlanConfig.lstfLen+(1:wlanConfig.lltfLen*2));
fineFreqOff = wlanFineCFOEstimate(LTFs,CBW);

matOut = hwlanFrequencyOffsetCorrect(rxWave3,fs,fineFreqOff);
fprintf('\n MATLAB simulation complete. \n');

simData = out.syncedData;
simValid = out.validOut;

simOut = double(simData(simValid));
 Comparing WLAN MATLAB time and frequency synchronization 

 MATLAB simulation complete. 

Результаты моделирования

Пример синхронизирует время и частоту входного сигнала, генерируемого с помощью wlanFrontEndInit.m и выводит сигнал с поправкой по времени и частоте, как показано на этой временной диаграмме.

Временная диаграмма показывает, что выходные данные rxOut синхронизируется в начале L-STF и что расчетный сдвиг частоты составляет 9,695 кГц, что близко к введенному сдвигу частоты 10 кГц.

Сравнение выходных данных Simulink и эталонных выходных данных MATLAB

plot(real(matOut));
hold on;
simOut = simOut(1:length(matOut));
plot(real(simOut));
title('Comparison of Real Part of WLAN HDL Simulink and MATLAB reference output','FontSize', 10);
xlabel('Sample Number');
ylabel('Amplitude');
legend('Real Part of MATLAB reference output','Real part of Simulink output');

figure;
plot(imag(matOut));
hold on;
simOut = simOut(1:length(matOut));
plot(imag(simOut));
title('Comparison of Imaginary Part of WLAN HDL Simulink and MATLAB reference output','FontSize', 10);
xlabel('Sample Number');
ylabel('Amplitude');
legend('Imaginary Part of MATLAB reference output','Imaginary part of Simulink Output');

См. также

Функции