【OFDM频域同步】基于OFDM数字电视地面广播系统中频域同步技术matlab仿真

1.软件版本

matlab2021a

2.本算法理论知识

       数字电视地面广播传输一直是各界研究的热点,采用OFDM多载波调制可以有效对抗地面传输中多径效应。本课题主要要求学生掌握数字电视地面广播传输系统中OFDM调制的实现原理,并能着重研究OFDM系统中的频域同步技术。

 下面我们结合这个结构和我们的MATLAB进行综合分析和说明。

这些模块对应的MATLAB代码为:

func_demod:这个函数中,以下代码是解调前初期准备,比如加入频偏,加入信噪比,内插等等。

………………………….. …………………………..

………………………………………………………..

然后开始检测OFDM中添加的训练序列数据信息:

………………………….. …………………………..

………………………………………………………..

这段代码的基本原理如下所示:

通过对训练序列求相关值,从而得到相应的相关峰,通过搜索相关峰的顶点位置从而确定训练序列的具体位置。

通过记录伪码匹配输出的最大值的位置。这里伪码匹配的输出通过加窗算法实现。

匹配位置示意图

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

这个功能就是对应的代码是:

这些是定时同步的过程

这个是通过定时同步,给FFT变化合适的窗的位置。

这些模块对应的MATLAB代码为:

提取导频;

通过这个环路跟踪,重新调整定时误差和频偏误差。

3.核心代码

%本系统重点研究的是基于OFDM的频率偏移的频域估计的算法仿真,
%由于OFDM系统比较复杂,本系统采用的已知的发送信号,然后对系统进行设计与实现
clc;
clear;
close all;

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符号的星座图');

 

4.操作步骤与仿真结论

 

 5.参考文献

[1] 李式巨.数字无线传输.第2版.北京:清华大学出版社,2007

[2] 汪裕民.OFDM关键技术与应用.北京:机械工业出版社,2007

[3] 彭木根.下一代宽带无线通信系统 : OFDM与WiMAX. 北京:机械工业出版社 ,2007

[4] 余兆明,余智.数字电视传输与组网[M].北京:人民邮电出版社,2003

[5] 卢官明 宗昉.数字电视原理(第2版)[M].北京:机械工业出版社,2009

[6] 葛哲学.精通MATLAB[M].北京:电子工业出版社,2008

A01-31

6.完整源码获得方式

方式1:微信或者QQ联系博主

方式2:订阅MATLAB/FPGA教程,免费获得教程案例以及任意2份完整源码

猜你喜欢

转载自blog.csdn.net/ccsss22/article/details/124024076
今日推荐