• 【信号处理】CFO估计技术(Matlab代码实现)


    目录

    1 概述

    2 运行结果

    3 参考文献

    4 Matlab代码实现


    1 概述

    针对存在未知载波频偏(CFO)的线性调制分类,提出一种混合似似然比检测(qHLRT)分类器。并且通过使用多天线接收机来进一步增强分类性能。一种基于盲源分离技术的CFO估计器用于qHLRT分类器中,同时对不同天线支路的相移作出估计。针对AWGN信道M进制QAM信号进行仿真,结果显示带有该估计器的qHLRT分类器可以有效降低未知CFO的影响,利用空间分集可以进一步提高分类器性能。

    2 运行结果

    部分代码: 

    1. clear, clf
    2. CFO = 0.15; %频偏
    3. Nfft=128; %FFT的点数
    4. Nbps=2; %调制阶数
    5. M=2^Nbps;
    6. Es=1;
    7. A=sqrt(3/2/(M-1)*Es); %信号幅度
    8. N=Nfft;
    9. Ng=Nfft/4; %循环前缀或保护间隔长度
    10. Nofdm=Nfft+Ng; %一个OFDM符号长度
    11. Nsym=3;
    12. h=complex(randn,randn)/sqrt(2);%信道冲击响应
    13. %% Transmit signal
    14. x=[];
    15. for m=1:Nsym
    16. msgint=randi([0,M-1],N);
    17. if i<=2
    18. Xp = add_pilot(zeros(1,Nfft),Nfft,4);
    19. Xf=Xp;
    20. else
    21. mod_object = modem.qammod('M',M, 'SymbolOrder','gray');
    22. Xf = A*modulate(mod_object,msgint);
    23. end
    24. xt = ifft(Xf,Nfft);
    25. x_sym = add_CP(xt,Ng);
    26. x= [x x_sym];
    27. end
    28. y=x;
    29. sig_pow= y*y'/length(y);
    30. SNRdBs= 0:3:30;
    31. MaxIter = 100;
    32. for i=1:length(SNRdBs)
    33. SNRdB = SNRdBs(i);
    34. MSE_CFO_CP = 0;
    35. MSE_CFO_Moose = 0;
    36. MSE_CFO_Classen = 0;
    37. rand('seed',1);
    38. randn('seed',1);
    39. y_CFO= add_CFO(y,CFO,Nfft);
    40. for iter=1:MaxIter
    41. y_aw = awgn(y_CFO,SNRdB,'measured');
    42. Est_CFO_CP = CFO_CP(y_aw,Nfft,Ng);
    43. MSE_CFO_CP = MSE_CFO_CP + (Est_CFO_CP-CFO)^2;
    44. Est_CFO_Moose = CFO_Moose(y_aw,Nfft);
    45. MSE_CFO_Moose = MSE_CFO_Moose + (Est_CFO_Moose-CFO)^2;
    46. Est_CFO_Classen = CFO_Classen(y_aw,Nfft,Ng,Xp);
    47. MSE_CFO_Classen = MSE_CFO_Classen + (Est_CFO_Classen-CFO)^2;
    48. end
    49. MSE_CP(i)=MSE_CFO_CP/MaxIter;
    50. MSE_Moose(i)=MSE_CFO_Moose/MaxIter;
    51. MSE_Classen(i)=MSE_CFO_Classen/MaxIter;
    52. end
    53. semilogy(SNRdBs, MSE_CP,'-+')
    54. grid on
    55. hold on
    56. semilogy(SNRdBs, MSE_Moose,'-x')
    57. semilogy(SNRdBs, MSE_Classen,'-*')
    58. xlabel('SNR[dB]'), ylabel('MSE');
    59. title('CFO Estimation');
    60. legend('CP-based technique','Moose (Preamble-based)','Classen (Pilot-based)');

    👨‍🎓博主课外兴趣:中西方哲学,送予读者:

    👨‍💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。当哲学课上老师问你什么是科学,什么是电的时候,不要觉得这些问题搞笑,哲学就是追究终极问题,寻找那些不言自明只有小孩子会问的但是你却回答不出来的问题建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能让人胸中升起一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它居然给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“真理”上的尘埃吧。

         或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎

    3 参考文献

    部分理论引用网络文献,如有侵权请联系删除。

    [1]程汉文,吴乐南.基于多天线接收机的信号调制方式识别[J].信号处理,2009(2):260-263

    [2]李轩,王茜.基于数据辅助的OFDM载波同步技术[J].电子测试,2021(3):73-74

    4 Matlab代码实现

  • 相关阅读:
    shell脚本中getopt介绍
    基于ssm零食商城管理系统(maven版本)
    c++string类的赋值问题
    【colab安装mmcv-full和mmclassification】
    LeetCode-热题100-笔记-day30
    嵌入式软件设计之美-以实际项目应用MVC框架与状态模式(上)
    Springboot整合JPA多数据源(Oracle+Mysql)
    MybatisPLUS,根据时间作为条件进行查询
    MindManager22全新版思维导图软件工具
    使用promise的基本功能【四、Promise源码】
  • 原文地址:https://blog.csdn.net/weixin_46039719/article/details/126989899