• mOFDM系统下对比SC算法,Minn算法,PARK算法同步性能matlab仿真分析


    目录

    1.算法描述

    2.部分程序

    3.部分仿真图预览

    4.源码获取方式


    1.算法描述

           OFDM系统下对比SC算法,Minn算法,PARK算法同步性能matlab仿真分析。OFDM系统中的定时估计和频率频率算法——时频联合估计的SC算法,由Schmidl和Cox提出,是一种基于训练序列的符号同步和载波频率同步的联合估计算法。

           为了消除Schmidl算法出现的平顶影响,minn等人改变了训练队列的结构,并重新设计了一种新的同步度量函数,虽然成功消除了schmidl算法的平顶效应,使得同步自相关峰变得尖锐,提高了定时同步估计的精度和可靠性,但是该向相关峰还不够尖锐,而且在同步度量函数曲线主峰两边出现了多个副峰,在信道环境恶劣的条件下,也即低信噪比条件下,定时同步估计将受到较大的影响。

          为了进一步解决minn算法存在的不足,park等人在分析了schmidl算法和minn算法定时效果不佳的原因后,重新设计了新的前导训练序列的结构,并给出了新的定时同步度量函数,该算法的定时度量函数曲线出现了一个更为尖锐的自相关峰,很明显该算法消除了schmidl算法中由于循环前缀的存在而导致的平顶效应,同时得到了比minn算法更为尖锐的自相关峰,提高了定时的精度和确定性,但是在噪声干扰较大的情况下,该算法还是会出现较大的定时同步估计误差,其同步估计的稳定性依然较差。

    2.部分程序

    1. clc;
    2. clear;
    3. close all;
    4. warning off;
    5. addpath(genpath(pwd));
    6. %注意:>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    7. %新算法,我们考虑到多径的干扰,如果采用单一的相关峰进行判断,那么多径峰的干扰影响会比较大,
    8. %所以在本算法中,粗同步,我们采用两个相关峰的思想,那么在第一个相关峰收到干扰的时候,其峰值和
    9. %多径峰值差别不到的时候,我们只要考虑第二个峰值即可,此时第二个峰值对应的信号峰值和多径峰值具有
    10. %良好的信噪比。通过这种方法,可以估计得到较好的峰值,并为后面的精同步奠定好的基础
    11. for iii = 1:100
    12. iii
    13. N=256; %FFT/IFFT 变换的点数或者子载波个数(Nu=N)
    14. Ng=N/8; %循环前缀的长度 (保护间隔的长度)
    15. Ns=Ng+N; %包括循环前缀的符号长度
    16. %************利用查表法生成复随机序列**********************
    17. QAMTable=[7+7i,-7+7i,-7-7i,7-7i];
    18. buf=QAMTable(randint(N/2,1,4)+1); %加1是为了下标可能是0不合法
    19. %产生train
    20. pn = rand(1,N/2)>0.5;
    21. pn = reshape(pn,N/4,2);
    22. [ich,qch]=qpskmod(pn,N/4,1,2);
    23. kmod=sqrt(2);
    24. x=ich*kmod+qch*kmod*i;
    25. y=ifft(x);
    26. y=reshape(y,N/4,1);
    27. train=[y;y(N/4:-1:1,1);conj(y);conj(y(N/4:-1:1,1))];
    28. %*****************添加一个空符号以及一个后缀符号*************
    29. src = QAMTable(randint(N,1,4)+1).';
    30. sym = ifft(src);
    31. sig =[zeros(N,1) train train sym];
    32. %**********************添加循环前缀*************************
    33. tx =[sig(N - Ng +1:N,:);sig];
    34. %***********************经过信道***************************
    35. recv = reshape(tx,1,size(tx,1)*size(tx,2)); %size的1表示行,2表示列,从%前向后数,超过了为1
    36. recv1 = awgn(recv,10,'measured');
    37. recv2 = [zeros(1,100),recv1(1:end-100)];
    38. recv = recv1 + 0.8*recv2;
    39. %*****************计算符号定时*****************************
    40. P=zeros(1,2*Ns);
    41. R=zeros(1,2*Ns);
    42. P2=zeros(1,2*Ns);
    43. R2=zeros(1,2*Ns);
    44. for d = Ns/2+1:1:2*Ns + Ns/2
    45. for m=1:N/2
    46. P(d-Ns/2) = P(d-Ns/2) + (recv(d+m))*recv(d-1-m);
    47. R(d-Ns/2) = R(d-Ns/2) + power(abs(recv(d+m)),2);
    48. end
    49. end
    50. M= power(abs(P),2)./power(abs(R),2);
    51. [a b]=max(M);
    52. b=b-N/2;
    53. %取第一个峰值
    54. Level = a/3;
    55. Ind = [];
    56. for i=1:length(M)
    57. if M(i) > Level
    58. Ind = [Ind,i];
    59. end
    60. end
    61. M(Ind(2:end)) = 0;
    62. M2(:,iii) = M;
    63. end
    64. MM = mean(M2,2);
    65. %**********************绘图******************************
    66. figure('Color','w');
    67. d=1:1:400;
    68. plot(d,MM(d+N/2));
    69. grid on;
    70. axis([0,400,0,1.1]);
    71. title('Park 算法');
    72. xlabel('时间(采样)');
    73. ylabel('定是度量曲线');
    74. save result.mat d MM N

    3.部分仿真图预览

     

     

     

     

     

     

     

     

    4.源码获取方式

    点击下载链接:

    mOFDM系统下对比SC算法,Minn算法,PARK算法同步性能matlab仿真分析+程序操作视频+word版说明文档

    获取方式2:

    博客资源项,搜索和博文同名资源。

    获取方式3:

    如果下载链接失效,加博主微信联系。

    01_071_m

  • 相关阅读:
    Nodejs -- 一文了解Express模块
    前端技能树,面试复习—— 风中劲草:知识要点精讲精炼手册(一)
    顺丰小哥派件装载问题——典型的01背包问题
    ActiveMQ、RabbitMQ、Kafka、RocketMQ在事务性消息、性能、高可用和容错、定时消息、负载均衡、刷盘策略的区别
    HTTP vs RPC:理解两种通信协议的区别
    nodejs的下载安装
    天宇优配|钠电池汽车要来了,续航达500公里!持续高成长股揭秘
    如何学习性能测试?
    TypeScript 泛型类型
    pip 时报错 no such option: --bulid-dir 的解决办法
  • 原文地址:https://blog.csdn.net/hlayumi1234567/article/details/125900081