• m基于MATLAB的FM调制收音机仿真实现


    目录

    1.算法概述

    2.仿真效果预览

    3.核心MATLAB代码预览

    4.完整MATLAB程序


    1.算法概述

    那么FM调制端的基本原理图如下所示:

    FM解调

    FM解调的基本原理框图为:

           在不考虑频偏的情况下,FM解调运算就相当于FM调制的逆运算,任务的第一步比较简单,所以这里关于FM解调的原理就不在叙述。

           对该系统进行系统仿真,在仿真之前,要将系统做进一步的模块化从而有利于仿真分析。

    2.仿真效果预览

    matlab2013b

    上图是系统的发送信号,第二章图是通过FM调制以后的信号。系统发送出去的就是这个信号。

    这是系统接收到的信号,我们可以看到,接收到的信号在初始有一个抖动的过程,这个就是PLL的锁定过程,通过这个锁定过程,系统就可以得到正确的解调信号,上图第三章图是PLL的相位输出,通过一开始的抖动,相位误差就锁定在0附近,这说明相位已经锁定了。此后的解调信号都是正确的。

    以上是一个正弦信号做为发送信号,下面我们用一个方波来作为发送信号检测系统。

    当发送发波的时候也可以锁定,但是在波形的边沿会产生误差信号。

    3.核心MATLAB代码预览

    1. ...............................
    2. N = 4000; % 采样点数
    3. Fs = 40000; % 采样频率
    4. Ts = 1/Fs; % 采样周期
    5. %注意,这里不同的频域,不同改变的太夸张,否则系统也无法正常工作。46000~54000
    6. %5000~15000,25000~35000,45000~55000,65000~75000,85000~95000,105000~115000..
    7. %.......................
    8. k=input('请输入你要的电台序号:0,1,2,3,4,5,6,7,8,9\n\n\n');
    9. fc1= k*20000+8000+4000*rand(1) %发送载波频率
    10. fc2 =k*20000+10000 %接收载波频率
    11. t = [0:Ts:(N*Ts)- Ts];
    12. start_point = 1;
    13. end_point = 1000; %查看仿真的持续时间周期
    14. %锁相环的初始化
    15. TestFreq = 500; %FM调制频率
    16. msg = 0.5*square(2*pi*TestFreq*t); %要发送的信号
    17. [fmmsg, phase] = fm_modulation(msg, fc1, Fs, 1.0, 0.05, 0); %调用FM调制函数进行调制
    18. %以上就是FM的调制过程
    19. %=============================================================
    20. %=============================================================
    21. %一下是PLL-FM解调过程
    22. [pd_out,lfsum,lf_out,vco_phase,vco_out] = pll_function(fmmsg,Fs,2.0,1.0,1.0,fc2,50000,1.0);
    23. figure(1);
    24. subplot(3,1,1);
    25. plot(fmmsg(start_point:end_point));
    26. title('10K的载波对500HZ的信号进行调制');
    27. grid;
    28. subplot(3,1,2);
    29. plot(lf_out(start_point:end_point));
    30. title('PLL的环路滤波输出信号');
    31. grid;
    32. subplot(3,1,3);
    33. plot(pd_out(start_point:end_point));% fc1>fc2,值<0
    34. title('PLL相位输出'); % fc1<fc2,值>0
    35. % Rfc1=fc2,值-5~5
    36. A01-11

    4.完整MATLAB程序

    matlab源码说明_我爱C编程的博客-CSDN博客

    V

  • 相关阅读:
    springboot中RestTemplate的用法
    软件项目管理实践指南:有效规划、执行和控制
    回溯算法的理解
    【开源】EValidator Java简单校验工具二
    NetSuite税额尾差的处理
    (路透社数据集)新闻分类:多分类问题实战
    【计算机网络】HTTPS协议的加密流程
    【Netty】1-3. Netty急速入门 - 编码实现(java)
    CentOS docker 和 docker compose 安装
    [附源码]Python计算机毕业设计Django汽车租赁管理系统
  • 原文地址:https://blog.csdn.net/hlayumi1234567/article/details/127912723