1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/Y5qWmp9q
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
同步是OFDM系统中非常关键的问题,同步性能的优劣直接影响到OFDM技术能否真正被用于无线通信领域。在OFDM系统中,存在多种级别的同步:载波同步、符号定时同以及样值同步,其中每一级别的同步都会对OFDM系统性能造成影响。这里我们首先分析了OFDM系统内不同级别的同步问题,然后在此基础上介绍了几种分别用于载波同步和符号定时同步的方法。通过分析可以看到,只要合理地选择适当的同步方法,就可以在OFDM系统内实现同步,从而为其在无线通信系统中的应用打下坚实的基础。
4.部分源码
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
%--------------去除残余频偏------------------------------------------
ofdm_noise4=ofdm_noise3((jk-2)*N_sym_fram+1:(jk-1)*N_sym_fram);%每一帧符号*帧数
kkj=1:1:N_sym_fram;
fd_offset=exp(-1i*2*pi*fd_est(jk).*(kkj-1)/FFTLen);
ofdm_offset_fd=ofdm_noise4.*fd_offset;
%ofdm_offset_fd=ofdm_noise4;
%----------------串并转换--------------------------------------------
ofdm_rank=reshape(ofdm_offset_fd,FFTLen+CPLen,sym_num+1);
%----------------去CP------------------------------------------------
ofdm_rank_noCP=ofdm_rank((CPLen+1:FFTLen+CPLen),(1:sym_num+1));
%--------------- FFT------------------------------------------------
ofdm_noCP_FFT=sqrt(8)/sqrt(FFTLen)*fft(ofdm_rank_noCP);
%----------------去除采样时钟----------------------------------------
for nn=1:sym_num+1
for kk=1:FFTLen
if kk<=FFTLen/2
fs_est_m(kk,nn)=exp(-1i*2*pi*(kk-1)/FFTLen*fs_est(jk)*(FFTLen+CPLen)*(nn-1))*exp(-1i*pi*(kk-1)*fs_est(jk)*(FFTLen-1)/FFTLen);
else kk > FFTLen/2;
fs_est_m(kk,nn)=exp(1i*2*pi*(FFTLen-kk+1)/FFTLen*fs_est(jk)*(FFTLen+CPLen)*(nn-1))*exp(1i*pi*(FFTLen-kk+1)*fs_est(jk)*(FFTLen-1)/FFTLen);
end
end
end
kkl=(jk-2)*(sym_num+1)+1:1:(jk-1)*(sym_num+1);
ofdm_rec_FFT(1:FFTLen,kkl)=ofdm_noCP_FFT.*fs_est_m;
%+------------------------------------------------------------------
%| 残余频偏跟踪
%+------------------------------------------------------------------
ofdm_rec_FFT2(1:FFTLen,1:sym_num+1)=ofdm_rec_FFT(1:FFTLen,kkl);
cpilot_slot=[10,43,75,105,151,181,213,246];
%---------------------导频抽取-----------------------------------
for i=1:1:length(cpilot_slot)
ofdm_sfo_pilot((1:sym_num),i)=conj(ofdm_rec_FFT2(cpilot_slot(i),1:sym_num))';
end
%---------------------符号间对应差分---------------------------------
ofdm_sfo_pilot_diff=zeros(sym_num-2,length(cpilot_slot));
P_num=floor(length(cpilot_slot)/2);
for l=1:1:sym_num-2
for k=1:1:length(cpilot_slot)
ofdm_sfo_pilot_diff(l,k)=ofdm_sfo_pilot(l+2,k)*conj(ofdm_sfo_pilot(l+1,k)); %去除第一个符号训练序列
end
ofdm_sfo_pilot_C1(l)=sum(ofdm_sfo_pilot_diff(l,(1:P_num)));
ofdm_sfo_pilot_C2(l)=sum(ofdm_sfo_pilot_diff(l,(P_num+1:end)));
end
%---------------------求残余频偏-------------------------------------
ofdm_sfo_sum_C1(jk)=sum(ofdm_sfo_pilot_C1);
ofdm_sfo_sum_C2(jk)=sum(ofdm_sfo_pilot_C2);
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
A130