• m基于OFDM数字电视地面广播系统中频域同步技术研究(word版说明文档,程序操作视频)


    1.算法部分仿真预览

    OFDM技术的基本构架如下所示:

    注意系统中的虚线部分就是你要做的OFDM的频域同步模块。我们的MATLAB代码就是参考这个系统结构进行设计的。其中虚线就是本课题要做的代码部分。

     

    下面我们结合这个结构和我们的MATLAB进行综合分析和说明。

    这些模块对应的MATLAB代码为:

    func_demod:这个函数中,以下代码是解调前初期准备,比如加入频偏,加入信噪比,内插等等。

    ………………………….. …………………………..

    ………………………………………………………..

    然后开始检测OFDM中添加的训练序列数据信息:

    ………………………….. …………………………..

    ………………………………………………………..

    这段代码的基本原理如下所示:

    通过对训练序列求相关值,从而得到相应的相关峰,通过搜索相关峰的顶点位置从而确定训练序列的具体位置。

    通过记录伪码匹配输出的最大值的位置。这里伪码匹配的输出通过加窗算法实现。

    匹配位置示意图

    如图所示,我们通过加窗法来搜索相关峰,即根据信号功率设定一个门限,将PN码匹配后的结果与门限比较,当出现大于门限值的时候,将值记录到寄存器中,然后继续记录之后N个值,然后逐次比较得到最大值,

    这个功能就是对应的代码是:

    这些模块对应的MATLAB代码为:

    提取导频;

    通过这个环路跟踪,重新调整定时误差和频偏误差。

    通过仿真,可以得到误码率曲线

    以及OFDM的星座图变化趋势图

    1. %本系统重点研究的是基于OFDM的频率偏移的频域估计的算法仿真,
    2. %由于OFDM系统比较复杂,本系统采用的已知的发送信号,然后对系统进行设计与实现
    3. clc;
    4. clear;
    5. close all;
    6. warning off;
    7. addpath(genpath(pwd));
    8. i=1;
    9. for SNRs = 12:2:24; %设置信噪比
    10. func_parameter(SNRs); %参数初始化
    11. [FFTout,error_rate] = func_demod(); %解调
    12. fileName = ['FOUT\FFTOUT_' num2str(i) '.mat'];
    13. save(fileName,'FFTout')
    14. pause(1);
    15. disp('误码率为:');
    16. error_rate
    17. error(i) = error_rate;
    18. i=i+1;
    19. close all;
    20. end
    21. figure
    22. plot(12:2:24,error,'r-*');
    23. title('OFDM频域同步的误码率曲线效果图');
    24. xlabel('SNR');
    25. ylabel('ERR');
    26. grid on
    27. figure
    28. Number_fft = 128;
    29. load FOUT\FFTOUT_1.mat
    30. subplot(421);
    31. hold on;
    32. for (i=3:45)
    33. for(k=1:2*Number_fft)
    34. plot(real(FFTout(i,k)),imag(FFTout(i,k)),'.k');
    35. end;
    36. end;
    37. grid on;
    38. hold off;
    39. title('OFDM符号的星座图');
    40. load FOUT\FFTOUT_2.mat
    41. subplot(422);
    42. hold on;
    43. for (i=3:45)
    44. for(k=1:2*Number_fft)
    45. plot(real(FFTout(i,k)),imag(FFTout(i,k)),'.k');
    46. end;
    47. end;
    48. grid on;
    49. hold off;
    50. title('OFDM符号的星座图');
    51. load FOUT\FFTOUT_3.mat
    52. subplot(423);
    53. hold on;
    54. for (i=3:45)
    55. for(k=1:2*Number_fft)
    56. plot(real(FFTout(i,k)),imag(FFTout(i,k)),'.k');
    57. end;
    58. end;
    59. grid on;
    60. hold off;
    61. title('OFDM符号的星座图');
    62. load FOUT\FFTOUT_4.mat
    63. subplot(424);
    64. hold on;
    65. for (i=3:45)
    66. for(k=1:2*Number_fft)
    67. plot(real(FFTout(i,k)),imag(FFTout(i,k)),'.k');
    68. end;
    69. end;
    70. grid on;
    71. hold off;
    72. title('OFDM符号的星座图');
    73. load FOUT\FFTOUT_5.mat
    74. subplot(425);
    75. hold on;
    76. for (i=3:45)
    77. for(k=1:2*Number_fft)
    78. plot(real(FFTout(i,k)),imag(FFTout(i,k)),'.k');
    79. end;
    80. end;
    81. grid on;
    82. hold off;
    83. title('OFDM符号的星座图');
    84. load FOUT\FFTOUT_6.mat
    85. subplot(426);
    86. hold on;
    87. for (i=3:45)
    88. for(k=1:2*Number_fft)
    89. plot(real(FFTout(i,k)),imag(FFTout(i,k)),'.k');
    90. end;
    91. end;
    92. grid on;
    93. hold off;
    94. title('OFDM符号的星座图');
    95. load FOUT\FFTOUT_7.mat
    96. subplot(427);
    97. hold on;
    98. for (i=3:45)
    99. for(k=1:2*Number_fft)
    100. plot(real(FFTout(i,k)),imag(FFTout(i,k)),'.k');
    101. end;
    102. end;
    103. grid on;
    104. hold off;
    105. title('OFDM符号的星座图');

    2.源码获取方式

    获得方式1:

    点击下载链接:

    m基于OFDM数字电视地面广播系统中频域同步技术研究+word版说明文档+程序操作视频

    获取方式2:

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

    获取方式3:

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

  • 相关阅读:
    mysql数据库导出
    IO类型游戏研发定制开发
    jvm04
    吴恩达2022机器学习——第二部分高级学习算法第二周笔记
    电视剧里的代码真能运行吗?
    一种编程语言,
    投入产出公开数据集:世界投入产出表(1995-2014)、全国投入产出表(1990-2018)、分省市投入产出表(1997-2017)
    室外光缆的规划与维护
    Qt中QPushButton、QAction等信号clicked()和toggled()的区别及setCheckable()和setChecked()区别
    【Git-2022总结】分布式代码版本控制工具【GitHub/Gitee/GitLab】
  • 原文地址:https://blog.csdn.net/hlayumi1234567/article/details/125466339