简易AM信号调制的FPGA实现过程简单讲解

时间:2025-05-02  作者:Diven  阅读:0

前几天,临危受命,帮几个初学者的学生写一个简易AM信号的FPGA实现,以帮助搭建一个相对完整的系统,测试低速ADC,高速DAC,AGC控制等等模块。

简易AM信号调制的FPGA实现过程简单讲解

本文的FPGA代码已经经过上板测试,由于时间紧急没有保存图片,所以文章只有仿真图片。

为什么是AM信号的调制过程,是因为在短时间情况下,AM信号的实现相对简单,而且上述提到的几个模块都可以得到使用和验证。

因为FPGA的价格因素,做课设/比赛使用最多的还是Altera的Cyclone系列板。所以,本文使用Quartus II 13.1 作为Verilog代码综合实现工具

AM信号调制过程就不做过多介绍了,简单来说,就是基带信号和一个直流信号相加,然后与载波相乘。那么,在实现过程中,做了些许改变,先让基带信号与载波相乘,然后将截位后的信号与载波相加。如果想要实现更精细的AM信号调制(变更调制深度等参数),可以修改这个地方的先后顺序。

AM公式表达如下:实现过程如上图,顶层文件使用BSF文件,更为直观。由上图可以看出,基带信号和载波信号是由NCO(DDS)产生,在上板验证中,低频部分的NCO被删去,由低速ADC采样外部信号替换这部分的低频信号。所以在刚开始搭建模块时,低速NCO输出信号位宽就兼容了低速ADC的16位位宽。

根据资料1可得,Altera提供的NCO是根据32位输入信号phi_inc_i而输出对应的频率的正弦波。公式为:NCO(DDS)的本质是ROM表,ROM表存储着正弦波的波形数据,相位精度代表波形数据的多少。根据phi_inc_i累加地址,ROM根据地址输出波形数据,最后数据计算如下。然后让基带和载波信号相乘,使用LPM_MULT IP核,设置好位宽,数据类型设为“signed”,设置流水线(增加clock),延迟设为1,便于后续通过时序检查。

相乘输出信号位宽为32位,保险起见我们只截取最高位的符号位,再截取低位的数据。但是经过上板测试和仿真,符号位实际上有很多位。当然,这部分可以将符号位进行优化,或者设置一个模块,根据输入的参数输出不一样的截位信号,相当于在调整调制深度。

将载波信号延迟一个周期,与乘法器延迟一周期的信号做好时序对齐,然后经过LPM_ADD_SUB IP核的加法运算;同样,LPM_ADD_SUB IP核设置好输入信号位宽,数据类型设为“signed”,设置流水线,延迟设为1。

最后输出的信号就可以经过高速DAC输出。整个调制过程就结束了。

仿真结果:最后思考,可以在加法器和乘法器增加一个enable端口,IP核可以增加这个输入信号;如果先加再乘,由于直流信号一般不会变动,使能信号可以等待每次低速ADC或低速NCO数值更新再拉高一次;乘法器也可以使用使能信号控制,这样的话性能可能没有变化,功耗或许可降低些。

使用VCS仿真NCO的nco.vo文件时,一直遇到一个问题,报错如下:大概是说NCO生成的4个hex文件有问题,但是使用modelsim就没这个问题了。

猜您喜欢

0 引言目前,在PCM/FM遥测体系中模拟信号采集普遍采用8位量化,全部模拟信号均归一化到O~5 V范围内,随着需要采集的模拟信号的类型多样化,势必增加信号调...
2018-08-21 09:20:00

轻触开关是应用于电子设备中的开关元件,其规格尺寸因型号和用途而异。轻触开关的外形尺寸通常在6mm到12mm之间,常见的高度为3mm到5mm。不同的产品设计可能会...
2011-03-16 00:00:00


贴片电阻的封装尺寸与其功率大小密切相关。不同封装尺寸的电阻能够承受和耗散的功率不同。封装尺寸越大,电阻的表面积越大,散热能力就越强,因此可以承受更大的功率。这是...
2024-11-29 10:25:42

0603贴片电阻,因其尺寸为0.06英寸长,0.03英寸宽而得名,是电子电路中常见的元器件。它小巧的体积,仅为1.6mm x 0.8mm,却能在电路中扮演着重要...
2024-11-26 11:29:29

电阻器作为电子元件中的重要组成部分,其性能和类型的多样化成为行业关注的焦点。SEI(世达柏科技)作为国内领先的电子元件制造商,在长电极电阻领域拥有丰富的产品线和...
2023-01-04 20:08:01



容器刷子是实用的清洁工具,主要作用是帮助人们轻松清洁各种形状和材质的容器。无论是瓶子、罐子还是其难以触及的地方,容器刷子都能有着其独特的优势。刷子的柔软刷毛能够...
2016-05-17 00:00:00