目录
OFDM系统下对比SC算法,Minn算法,PARK算法同步性能matlab仿真分析。OFDM系统中的定时估计和频率频率算法——时频联合估计的SC算法,由Schmidl和Cox提出,是一种基于训练序列的符号同步和载波频率同步的联合估计算法。
为了消除Schmidl算法出现的平顶影响,minn等人改变了训练队列的结构,并重新设计了一种新的同步度量函数,虽然成功消除了schmidl算法的平顶效应,使得同步自相关峰变得尖锐,提高了定时同步估计的精度和可靠性,但是该向相关峰还不够尖锐,而且在同步度量函数曲线主峰两边出现了多个副峰,在信道环境恶劣的条件下,也即低信噪比条件下,定时同步估计将受到较大的影响。
为了进一步解决minn算法存在的不足,park等人在分析了schmidl算法和minn算法定时效果不佳的原因后,重新设计了新的前导训练序列的结构,并给出了新的定时同步度量函数,该算法的定时度量函数曲线出现了一个更为尖锐的自相关峰,很明显该算法消除了schmidl算法中由于循环前缀的存在而导致的平顶效应,同时得到了比minn算法更为尖锐的自相关峰,提高了定时的精度和确定性,但是在噪声干扰较大的情况下,该算法还是会出现较大的定时同步估计误差,其同步估计的稳定性依然较差。
- clc;
- clear;
- close all;
- warning off;
- addpath(genpath(pwd));
-
-
- %注意:>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- %新算法,我们考虑到多径的干扰,如果采用单一的相关峰进行判断,那么多径峰的干扰影响会比较大,
- %所以在本算法中,粗同步,我们采用两个相关峰的思想,那么在第一个相关峰收到干扰的时候,其峰值和
- %多径峰值差别不到的时候,我们只要考虑第二个峰值即可,此时第二个峰值对应的信号峰值和多径峰值具有
- %良好的信噪比。通过这种方法,可以估计得到较好的峰值,并为后面的精同步奠定好的基础
- for iii = 1:100
- iii
- N=256; %FFT/IFFT 变换的点数或者子载波个数(Nu=N)
- Ng=N/8; %循环前缀的长度 (保护间隔的长度)
- Ns=Ng+N; %包括循环前缀的符号长度
-
- %************利用查表法生成复随机序列**********************
- QAMTable=[7+7i,-7+7i,-7-7i,7-7i];
- buf=QAMTable(randint(N/2,1,4)+1); %加1是为了下标可能是0不合法
-
- %产生train
- pn = rand(1,N/2)>0.5;
- pn = reshape(pn,N/4,2);
- [ich,qch]=qpskmod(pn,N/4,1,2);
- kmod=sqrt(2);
- x=ich*kmod+qch*kmod*i;
- y=ifft(x);
- y=reshape(y,N/4,1);
- train=[y;y(N/4:-1:1,1);conj(y);conj(y(N/4:-1:1,1))];
-
- %*****************添加一个空符号以及一个后缀符号*************
- src = QAMTable(randint(N,1,4)+1).';
- sym = ifft(src);
- sig =[zeros(N,1) train train sym];
-
- %**********************添加循环前缀*************************
- tx =[sig(N - Ng +1:N,:);sig];
-
- %***********************经过信道***************************
- recv = reshape(tx,1,size(tx,1)*size(tx,2)); %size的1表示行,2表示列,从%前向后数,超过了为1
- recv1 = awgn(recv,10,'measured');
- recv2 = [zeros(1,100),recv1(1:end-100)];
- recv = recv1 + 0.8*recv2;
- %*****************计算符号定时*****************************
- P=zeros(1,2*Ns);
- R=zeros(1,2*Ns);
- P2=zeros(1,2*Ns);
- R2=zeros(1,2*Ns);
- for d = Ns/2+1:1:2*Ns + Ns/2
- for m=1:N/2
- P(d-Ns/2) = P(d-Ns/2) + (recv(d+m))*recv(d-1-m);
- R(d-Ns/2) = R(d-Ns/2) + power(abs(recv(d+m)),2);
- end
- end
-
- M= power(abs(P),2)./power(abs(R),2);
-
- [a b]=max(M);
- b=b-N/2;
-
- %取第一个峰值
- Level = a/3;
- Ind = [];
- for i=1:length(M)
- if M(i) > Level
- Ind = [Ind,i];
- end
- end
- M(Ind(2:end)) = 0;
- M2(:,iii) = M;
- end
- MM = mean(M2,2);
- %**********************绘图******************************
- figure('Color','w');
- d=1:1:400;
- plot(d,MM(d+N/2));
- grid on;
- axis([0,400,0,1.1]);
- title('Park 算法');
- xlabel('时间(采样)');
- ylabel('定是度量曲线');
-
- save result.mat d MM N
-










点击下载链接:
mOFDM系统下对比SC算法,Minn算法,PARK算法同步性能matlab仿真分析+程序操作视频+word版说明文档
获取方式2:
博客资源项,搜索和博文同名资源。
获取方式3:
如果下载链接失效,加博主微信联系。
01_071_m