m基于OFDM数字电视地面广播系统中频域同步技术研究

243 阅读2分钟

1.算法概述

OFDM技术的基本构架如下所示:

 

1.png

 

       注意系统中的虚线部分就是你要做的OFDM的频域同步模块。我们的MATLAB代码就是参考这个系统结构进行设计的。其中虚线就是本课题要做的代码部分。下面我们结合这个结构和我们的进行综合分析和说明。

 

2.png

 

       通过对训练序列求相关值,从而得到相应的相关峰,通过搜索相关峰的顶点位置从而确定训练序列的具体位置。通过记录伪码匹配输出的最大值的位置。这里伪码匹配的输出通过加窗算法实现。

 

3.jpeg

 

       如图所示,我们通过加窗法来搜索相关峰,即根据信号功率设定一个门限,将PN码匹配后的结果与门限比较,当出现大于门限值的时候,将值记录到寄存器中,然后继续记录之后N个值,然后逐次比较得到最大值。

 

2.仿真效果预览

matlab2022a仿真

 

4.png

5.png

 

 

 

3.MATLAB部分代码预览 `i=1;

for SNRs = 12:2:24;                   %设置信噪比

func_parameter(SNRs);         %参数初始化

[FFTout,error_rate] = func_demod();    %解调

fileName = ['FOUT\FFTOUT_' num2str(i) '.mat'];

save(fileName,'FFTout')

pause(1);

disp('误码率为:');

error_rate

error(i) = error_rate;

i=i+1;

close all;

end

 

figure

plot(12:2:24,error,'r-*');

title('OFDM频域同步的误码率曲线效果图');

xlabel('SNR');

ylabel('ERR');

grid on

 

 

figure

Number_fft = 128;

load FOUT\FFTOUT_1.mat

subplot(421);

hold on;

for (i=3:45)

   for(k=1:2*Number_fft)

       plot(real(FFTout(i,k)),imag(FFTout(i,k)),'.k');       

   end;

end;

grid on;

hold off;

title('OFDM符号的星座图');

 

load FOUT\FFTOUT_2.mat

subplot(422);

hold on;

for (i=3:45)

   for(k=1:2*Number_fft)

       plot(real(FFTout(i,k)),imag(FFTout(i,k)),'.k');       

   end;

end;

grid on;

hold off;

title('OFDM符号的星座图');

load FOUT\FFTOUT_3.mat

subplot(423);

hold on;

for (i=3:45)

   for(k=1:2*Number_fft)

       plot(real(FFTout(i,k)),imag(FFTout(i,k)),'.k');       

   end;

end;

grid on;

hold off;

title('OFDM符号的星座图');

load FOUT\FFTOUT_4.mat

subplot(424);

hold on;

for (i=3:45)

   for(k=1:2*Number_fft)

       plot(real(FFTout(i,k)),imag(FFTout(i,k)),'.k');       

   end;

end;

grid on;

hold off;

title('OFDM符号的星座图');

load FOUT\FFTOUT_5.mat

subplot(425);

hold on;

for (i=3:45)

   for(k=1:2*Number_fft)

       plot(real(FFTout(i,k)),imag(FFTout(i,k)),'.k');       

   end;

end;

grid on;

hold off;

title('OFDM符号的星座图');

load FOUT\FFTOUT_6.mat

subplot(426);

hold on;

for (i=3:45)

   for(k=1:2*Number_fft)

       plot(real(FFTout(i,k)),imag(FFTout(i,k)),'.k');       

   end;

end;

grid on;

hold off;

title('OFDM符号的星座图');

 

load FOUT\FFTOUT_7.mat

subplot(427);

hold on;

for (i=3:45)

   for(k=1:2*Number_fft)

       plot(real(FFTout(i,k)),imag(FFTout(i,k)),'.k');       

   end;

end;

grid on;

hold off;

title('OFDM符号的星座图');

01_031_m`