OFDM技术的基本构架如下所示:
注意系统中的虚线部分就是你要做的OFDM的频域同步模块。我们的MATLAB代码就是参考这个系统结构进行设计的。其中虚线就是本课题要做的代码部分。
下面我们结合这个结构和我们的MATLAB进行综合分析和说明。
这些模块对应的MATLAB代码为:
func_demod:这个函数中,以下代码是解调前初期准备,比如加入频偏,加入信噪比,内插等等。
………………………….. …………………………..
………………………………………………………..
然后开始检测OFDM中添加的训练序列数据信息:
………………………….. …………………………..
………………………………………………………..
这段代码的基本原理如下所示:
通过对训练序列求相关值,从而得到相应的相关峰,通过搜索相关峰的顶点位置从而确定训练序列的具体位置。
通过记录伪码匹配输出的最大值的位置。这里伪码匹配的输出通过加窗算法实现。
匹配位置示意图
如图所示,我们通过加窗法来搜索相关峰,即根据信号功率设定一个门限,将PN码匹配后的结果与门限比较,当出现大于门限值的时候,将值记录到寄存器中,然后继续记录之后N个值,然后逐次比较得到最大值,
这个功能就是对应的代码是:
这些模块对应的MATLAB代码为:
提取导频;
通过这个环路跟踪,重新调整定时误差和频偏误差。
通过仿真,可以得到误码率曲线
以及OFDM的星座图变化趋势图
- %本系统重点研究的是基于OFDM的频率偏移的频域估计的算法仿真,
- %由于OFDM系统比较复杂,本系统采用的已知的发送信号,然后对系统进行设计与实现
- clc;
- clear;
- close all;
- warning off;
- addpath(genpath(pwd));
-
-
-
- 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符号的星座图');
-
-
-
获得方式1:
点击下载链接:
m基于OFDM数字电视地面广播系统中频域同步技术研究+word版说明文档+程序操作视频
获取方式2:
博客资源项,搜索和博文同名资源。
获取方式3:
如果下载链接失效,加博主微信联系。