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

1.算法概述

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

 

 

 

 

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

 

 

 

 

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

 

 

 

 

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

 

2.仿真效果预览

matlab2022a仿真

 

 

 

 

 

 

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

 

  

 

posted @ 2022-12-27 11:46  我爱C编程  阅读(29)  评论(0编辑  收藏  举报