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份完整源码