DDS(Direct Digital Synthesis)是一种把一系列数字信号通过D/A转换器转换成模拟信号的数字合成技术。
它有查表法和计算法两种基本合成方法。在这里主要记录DDS查表法的fpga实现。
查表法:由于ROM查询法结构简单,只需要在ROM中存放不同相位对应的幅度序列,然后通过相位累加器的输出对其寻址,经过数/模转换和低通滤波(LPF)输出便可以得到所需要的模拟信号。

查表法示意图:

设计:
输入:频率控制字f,相位控制字,系统时钟Fclk,复位信号reset
输出:幅度数据dout。
关系:Tout = M * Tclk 即 Fout = Fclk / M 。其中,M为一个波形的离散点数。

简单解释一下:比如我们把一个正弦波形分为16个点,而ROM容量为8,那么我们的点数间隔就要取16 / 8 = 2 ,即频率控制字为 2 。
细节:由于在设计时点数间隔不一定为1,即相位累加器的值可能大于ROM容量,所以我们要取它的高位到ROM中取相位对应的幅度点。如:频率控制字=4,则相位

本文详细介绍了DDS(直接数字频率合成)技术中的查表法,并重点讨论了其在FPGA中的实现。通过利用ROM存储不同相位对应的幅度序列,结合相位累加器和D/A转换,生成所需的模拟信号。文中还提供了Verilog代码实例,展示了如何设计DDS模块,并通过测试用例说明了不同相位差下的输出效果。
最低0.47元/天 解锁文章
5947

被折叠的 条评论
为什么被折叠?



