基于DDS的信号发生器
本帖最后由 WJRAN2993 于 2012-12-12 20:45 编辑DDS是从相位的概念直接合成所需波形的一种频率合成技术。
该模块的主要功能为产生任意信号,这里的任意信号为:正弦波、三角波、方波、锯齿波这四种波形。整个工程主要分为五个模块:按键消抖、按键编码、DDS信号发生器、DACTLC5615驱动、低通滤波器。
采用DDS来产生四种波形:正弦波、三角波、方波、锯齿波,采用的位数为10位,因为我们的DAC芯片是10位分辨率的。这四种波形通过一个按键进行控制,同时我们需要调用4个ROM来存放这四个波形。而这四ROM里面的数据通过寻址来调用,这里需要一个加法器和一个累加器来产生ROM 的地址。同过不断让地址累加,从而不断地从ROM中读取波形数据,然后将数据送往DACTLC5615的驱动模块中,这样最终便输出模拟的波形。
下面嗮下结果:
共享下整个工程,希望大家学习交流提点意见:
楼主知道为什么你的信号输出有毛刺吗?? 我想知道楼主的这个能到达多大的频率?
还有就是频率的分辨率最低是多少啊?
我也想做一个DDS。 做的挺好的! banye2010 发表于 2012-12-12 20:51 static/image/common/back.gif
楼主知道为什么你的信号输出有毛刺吗??
DAC的输出端的滤波滤的不干净 aworker 发表于 2012-12-12 21:41 static/image/common/back.gif
做的挺好的!
多谢!大家交流学习 RUANJI 发表于 2012-12-12 21:20 static/image/common/back.gif
我想知道楼主的这个能到达多大的频率?
还有就是频率的分辨率最低是多少啊?
最大频率2M没有什么问题,不过太大会失真。
频率的分辨率按照DDS的产生原理,主要是由相位累加器的位宽决定,这里我采用的是32位位宽,理论上能够达到0.05Hz,不过这个用示波器看不出来,但0.5Hz是没有什么问题的。 用的哪家的开发板 luluxiu 发表于 2012-12-13 11:18 static/image/common/back.gif
用的哪家的开发板
自己做的开发板
大西瓜FPGA开发板 WJRAN2993 发表于 2012-12-13 12:36 static/image/common/back.gif
自己做的开发板
大西瓜FPGA开发板
大西瓜FPGA近期将发布资料,感谢大家支持 楼主可否赐教高频率部分的做法。最近也在做DDS,可频率高于600kHZ时三角波和方波开始明显失真。邮箱hdchenwenhao@163.com QQ 674715406 挺急的。 hdchenwenhao 发表于 2012-12-18 00:08 static/image/common/back.gif
楼主可否赐教高频率部分的做法。最近也在做DDS,可频率高于600kHZ时三角波和方波开始明显失真。邮箱 QQ ...
你采用的DAC的转换频率多高? WJRAN2993 发表于 2012-12-18 09:18 static/image/common/back.gif
你采用的DAC的转换频率多高?
刚开始用的是DAC900,用100M。效果很差。后来就自己直接做了个R-2R电阻网络。 {:lol:}
没有高速DA可以试试R-2R网络 收藏。 都是标准波形。
目前的输出毛刺跟滤波没关系吧,是每周期LUT出来的点会不一样。相位累加器... 下下来看看 FPGA 产生DDS 顶下 置顶!! 下来看看 banye2010 发表于 2012-12-12 20:51 static/image/common/back.gif
楼主知道为什么你的信号输出有毛刺吗??
好像是滤波器的问题 楼主您好,我想产生如下波形,频率约200K可以吗?
DDS要想做的很好真的是不容易。 学习中~~ 来看了看 哈哈,我也是前两天刚用FPGA做了个DDS,但感觉想把频率提上去有点困难 哦?莫非楼主是大西瓜团队的?之前在PUDN上看了你们的一些代码,学习了很多。 不错吗, 看看 正准备做DDS,想想做好真的不容易。 正准备做DDS,下来看看 这个dds怎么样啊 我是菜鸟 请问楼主 FPGA中那四个rom 的初始地址是多少啊?我想用四选一来选择rom 不知道该怎么操作 mrak,学习。。。 lz我看了一下代码,250M的clk是单独的外部时钟吗? 下载学习一下,谢谢了。 不错,就是毛刺问题有待解决! 那么高的毛刺竟然是滤波不好,呵呵 mark,学习学习 做的不错,有参考价值
页:
[1]