FPGA学习积累之AM调制解调(解调部分没搞太明白)

您所在的位置:网站首页 am调制与解调仿真代码 FPGA学习积累之AM调制解调(解调部分没搞太明白)

FPGA学习积累之AM调制解调(解调部分没搞太明白)

2024-05-24 20:07| 来源: 网络整理| 查看: 265

基于FPGA的AM调制与解调以及从中学到的东西(注:解调没搞太清楚,没写) 随便说说一、平台二、DDS IP的使用三、FIR滤波(用于后面AM解调)四、AM调制五、整体代码六、仿真波形总结

随便说说

(这次小杨第一次写博客,有问题,见谅!) 前几天没事做就想学习学习信号类的知识,然后就想到了去年电赛折磨我的AM与FM的调制与解调。AM的调制与解调用FPGA来实现还是不是很难,但是我还是看了两位博主的博客(链接在这一段结尾)。本次AM调制与解调的信号都是有DDS输出的,载波为1MHz,调制波为10KHz。 AM调制与解调:(博主:子木呀) AM调制与解调:(博主:黄子炫)

一、平台

1.软件:Vivado 2018.3(就只会这个。。。。) 2.硬件:EGO1

二、DDS IP的使用

(这里加个链接(DDS的配置))

注意左边的RTL

个人能力有限,就只能看懂这四个地方(/手动糊脸/)。

1.Configuration Options(配置选项):配置DDS的类型,下来有三个选项,这里选着“Phase Generator and SIN Cos LUT”。

2.System Clock(配置DDS的输入系统时钟):对应的引脚(看左边的那个RTL,由aclk输入),这里配置10.24MHz(这个值后面会解释)。

3.Number of Channels(通道数):因为只用到一个输出,所以通道数为1。(其实是自己不会多通道的使用。。。。)

4.Parameter Selection(参数选择):这里我把选项下拉出来了。为了后面使用的方便,这里我选择“Hardware Parameters”

在这里插入图片描述 在这里插入图片描述 这里我把Hardware Parameters和System Parameters的两个界面给截图出来对比了一下。System Parameters需要去计算频率分辨率,这个计算起来就。。。。(我算不明白)。Hardware Parameters就很方便,它的Phase Width默认值为16,Output Width默认值为8。Phase Width的值会影响到我们的输入频率,我使用的时候配的是10位宽。下面展示Phase Width与输入频率的关系。(为了省事,我把一位博主写的部分搬过来,感谢子木呀!)

DDS核频率分辨率计算公式如下:

其中Δθ就是我们的频率控制字取值后文用fre_word表示,Bθ(n)是相位累加器位宽后文用B表示,fclk为DDS工作时钟。频率分辨率就是当Δθ=1时的fout。先假如我们需要的信号频率范围:1M-10MHz,分辨率0.01MHz。 取Δθ=1,fout=0.01MHz,B=10bit,我们可得DDS工作时fclk=10.24MHz。

这里展示一下Configuration配置完的界面(注意左边的RTL):

在这里插入图片描述 在这里插入图片描述 Implementation界面需要配置这四点。

1.选择可编程阶段增量(我觉得就是频率控制字的可编程。。)

2.相位偏移就不需要

3.输出波形为余弦波 [ AM调制公式:P(t)=(A+M_a cos⁡(t_1 ) )×cos⁡(t_2 ) ]

4.不需要相位输出

在这里插入图片描述 这个地方一开始是报错的,需要我们手动修改。前面我们的Phase Width为10,所以这个地方我们要配置为十位的二进制,这里为0000_0001。当这个界面没有报错的时候,左边的RTL的S_AXIS_CONFIG才会高亮。 在这里插入图片描述 在这里插入图片描述这是两个Summary的结果。

到此,DDS IP的用户界面就配置完了。

三、FIR滤波(用于后面AM解调)

FIR滤波器参数的生成

FIR滤波器的参数我用的MATLAB生成的,这里也顺带学习了一下MATLAB的Filter Designer工具。

在这里插入图片描述 1.采样频率我用的100MHz(后面发现100MHz程序运行太慢了。。。。),采样定律规定的是大于采样信号的2倍

2.这里截止频率我用的20KHz。调制信号为10KHz,所以大于10KHz就行, 但是如果有杂波,杂波频率在10KHz~1MHz之间的话,截止频率的要求就有点多了

3.滤波阶数为127

最后记得点击Design Filter,要不然那个波形不是这个滤波器的波形。 接下来生成.COE文件

在这里插入图片描述 FIR IP 在这里插入图片描述1.选择COE File

2.加载刚刚生成的.COE文件

在这里插入图片描述 1.输入的采样频率为10MHz(上面的100MHz改了,嘿嘿,10MHz我都嫌慢)

2.系统输入时钟

到此FIR的配置就完了。

四、AM调制

AM调制公式:P(t)=(A + M_a × cos⁡(t_1) ) × cos⁡(t_2) 其中当A=1时,调制深度就是M_a;cos⁡(t_1 )为调制信号,cos⁡(t_2)为载波。 为了好解释代码,上式变为(D + depth_con × cos⁡(t_1) ) × cos⁡(t_2)

代码如下(还是嫖别人代码香,嘿嘿,虽然不道德,但是掌握了知识就是自己的了,再次感谢开篇链接的两位博主):

reg [7:0] D = 127; //AM波直流分量 reg signed[7:0] depth_con; always@(posedge clk_out) //设置调制深度 begin case (depth) 0: depth_con


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3