一、简介
本篇文章主要是通过简单的原理帮助大家理解和实现FM的调制。
二、使用工具
Quartus II 13.1 、Cyclone V开发板
三、原理介绍
众所周知所谓FM调制,即频率调制是指瞬时频率偏移随调制信号m(t)成比例变换,即
即调制信号的频率随m(t)幅度的变化而变化,这是核心点。抛开各种公式,在Quartus里给我们提供了一个很方便的工具nco核,IP核的一种。它的功能是通过频率控制字Fre输出正余弦波,所谓频率控制字顾名思义就是控制频率的意思。具体计算公式:
fout为nco核输出频率,fsys为系统时钟,n为相位累加器精度,Fre为频率控制字。
有了这个工具我们就可以通过改变Fre来改变输出信号的频率,即调频。
四、具体实现
1、创建工程,并添加Block Diagram顶层文件
2、创建第一个nco核,作者具体参数设置如下:
2、设计频率控制字模块sk
module SK(output [31:0] fr);
assign fr =32'd17179869;
endmodule
创建符号文件
导入顶层文件
3、加法器模块add
module add(a,c);
input signed [15:0] a;
wire signed [32:0] b =32'd1717986918;
output signed [31:0] c;
assign c=a+b;
endmodule
同上生成符号文件
4、创建第二个nco核,具体参数配置如下
5、连接各模块
6、为开发板下载程序并在SignalTap II中观察波形
导入引脚
观察波形
从上至下依次为:
基带信号波形、加法器结果、调制信号。
五、结语
至此我们通过调节频率控制字实现了FM的调制,上述步骤实现的波形观察可能不明显,主要原因是第一个nco核输出的信号幅度相比第二个nco的Fre过小,所以调频波形不太明显,这样符合正常FM调制也方便解调,若想观察到跟明显的调制波形,可通过增加第一个nco核的输出位数来实现,据此不再赘述,感兴趣的读者可以自行尝试。调整后现象如下:
码字不易,如有帮助,望点赞、收藏支持,您的赞许是我前行的动力。若想了解FM解调,也请关注之后的更新。