OFDM之同步

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yundanfengqing_nuc/article/details/48970043

一、一些概念

广播类型通信系统传输的是连续数据。

WLAN系统采用突发同步的方式,即在分组开始发送之后很短时间获得同步,这是由WLAN系统本身分组交换的特性以及比较高的数据传输速率的要求决定的,同时为了提高系统吞吐量,还必须保证接收机中用于训练的开销达到最小。

二、OFDM接收机同步

主要包括定时同步、载波频率同步和采样时钟同步。

定时同步主要包括帧(分组)同步和符号同步两种,其中帧同步用于确定数据分组的起始位置,而符号同步的目的在于正确地定出OFDM符号数据部分的开始位置,以进行正确的FFT操作。

载波频率同步首先是要检测出频率偏移,然后加以补偿。频偏检测按精度要求可分为粗同步和细同步两个部分。

展开阅读全文

OFDM同步改进算法park算法

03-30

我最近在做一个park算法的改进算法,时序图正确,能够准确定时,但是在计算不同信燥比下的均方误差时,随着信燥比的增加,均方误差并没有变化,把代码和仿真结果贴出来,有哪位大神能帮我看一下问题出在哪了吗?先谢谢了!rn%%5.25park算法%%%rnrnclose all;rnclc;rn%%%%%%%%%%%%%%%%%%%%%%%%parameter settings%%%%%%%%%%%%%%%%%%%%%%%%%%rnTs=1*10^(-8); %进入信道信号的采样频率 rnTolPac=1; %输入数据块数rnPacketLen=1 ; %每块的符号数目,在每块前加入导频。rnShortPeriod=2; %帧头的重复周期rnNTimes=40; %运行20次求集合平均rnM=64; %调制指数rn% EbNo=0:30; rnNFFT=256; %Length of IFFTrnCpLength=32; %Length of PrefixrnNSubc=128; %Number of subcarriersrnnsamp=NFFT/NSubc;rndeltad=256; %准确位同步点rndeltaderr=0;%均方误差rnloop=100;rnderr=zeros(1,11);rn% SNR=EbNo+10*log10(log2(M))-10*log10(nsamp); %信噪比rn% SNR=1:2:30;rno=0;rnfor SNR=0:2:20rndeltaderr=0;rn o=o+1;rn %************************** main loop part **************************rnnloop=100; % Number of simulation loopsrnfor iii=1:nlooprnSmSeeds=[0 1 1 1 0 0 1]; % 随机序列的种子 235rnSTraining=m_sequence(SmSeeds);rnSTraining_zero=[STraining(1:end),0];rn%STraining=round(rand(1,NFFT/2));exp(i*5*pi/4)*rnpmod_STraining=6.48*pskmod(STraining_zero,2)/sqrt(2);rnST_zero=zeros(1,NFFT);rn for k=1:length(pmod_STraining)rn ST_zero(2*k-1)=pmod_STraining(k); %在奇数序号的载波上调制pmod_STraining。rn endrnreferenceb=reshape(ST_zero,NFFT,1);rnre_ifft=ifft(ST_zero);rnresh=reshape(re_ifft,NFFT/4,4);rnbar(abs(re_ifft))rn%%rn%%%%%%%%%%%%%%%%%%%%%%%%Generate signal sources%%%%%%%%%%%%%%%%%%%%%%%%%%%%%rn%Bit=(1,PacketLen*TolPac*NSubc*log2(M));rnBit=randint(1,PacketLen*TolPac*NSubc*log2(M)); rnBitTemp=reshape(Bit,PacketLen*TolPac*NSubc,log2(M));rnBitDe=bi2de(BitTemp,'left-msb'); %binary to decimalrnSymbolMod=qammod(BitDe,M); %64QAM modulationrnSymbolS2P=reshape(SymbolMod,NSubc,PacketLen*TolPac); rnSymbol_In_Zero=[SymbolS2P(1:NSubc/2,:);zeros((NFFT-NSubc),PacketLen*TolPac);SymbolS2P(NSubc/2+1:end,:)];%添零rnSymbol_ref_b=[referenceb,Symbol_In_Zero];rnSymbolIFFT=ifft(Symbol_ref_b);rn%%%%%%%%%%%%%块状插入导频%%%%%%%%%%%%%%rn% pilot=ifft(LTrain).';rn% SymbolPilot=zeros(NFFT,PacketLen*TolPac+TolPac);rn% for k=1:TolPac;rn% SymbolPilot(:,(k-1)*PacketLen+k:(PacketLen+1)*k)=[pilot,SymbolIFFT(:,(k-1)*PacketLen+1:k*PacketLen)];rn% end %块状插入导频rnSymbolPilot=SymbolIFFT;rnSymbolCP=[SymbolPilot(end-CpLength+1:end,:);SymbolPilot]; %插入前缀rn[nr,nl]=size(SymbolCP);rnSymbolTS2P=reshape(SymbolCP,1,nr*nl);%并串转换rnDataFrame_o=SymbolTS2P;rnt_err=100;rnDf=0;rnt_errhead=zeros(1,t_err);rnDataFrame=[t_errhead,DataFrame_o]; rn%%%%%%%%%%%%channel%%%%%%%%%%%%%%%; rn% for ktimes=1:NTimes %运行20次求集合平均rn ktimes=1;rn Df(ktimes)=0;rn DataR=DataFrame;rn k=1:length(DataR);rn DeltaF(k)=exp(1j*2*pi*Df(ktimes)*(k-1)/(NFFT));rn DataFreq=DataR.*DeltaF;rn DataR=awgn(DataFreq,SNR,'measured'); rn% endrn% endrn %--------------park同步---------%rn mtime=t_err+(NFFT+CpLength)+NFFT/2; rn P=zeros(1,mtime);R=zeros(1,mtime);rn for k=NFFT/2+1:mtimern for m=1:NFFT/2rn P(k)=P(k)+(DataR(k+m))*DataR(k-m);rn R(k)=R(k)+abs(DataR(m+k))*abs(DataR(m+k));rn endrn F(k)=abs(P(k)/R(k));rn% f_est(k)=1/pi*angle(P(k))rn end ;rn F=(F);rn b=max(F); % 求最大值rn g=find(F==b) ;rndeltaderr=deltaderr+(g-deltad)^2;rn% endrnendrnderr(o)=sqrt(deltaderr/(nloop));rnendrnfigure('Color','w');rnSNR=0:2:20;rn% b=z(SNR+1);rnsemilogy(SNR,derr,'-r*')rnaxis([0,20,0.001,1000]); rnxlabel('SNR(dB)'); rnylabel('Variance of Timing Offset Estimation(squared sample)'); rn[img=https://img-bbs.csdn.net/upload/201803/30/1522406930_106285.png][/img] 论坛

没有更多推荐了,返回首页