当前位置:首页 > 技术心得 > 正文内容

DDS原理

xjtudll16年前 (2010-12-19)技术心得13230

DDS原理框图

clip_image001clip_image002

假设时钟为2MHz,数据保持寄存器选择N Bit,在时钟驱动下,累加器输出结果S被反馈到累加器输入端B,B和A的数据被累加到S,下一个时钟脉冲又将S反馈到B,再次与A累加到S,下一个时钟脉冲又将S反馈到B,如此循环累加,实现按步进值,按时钟节拍循环累加,使得N Bit数据被徐循环累加,产生循环扫描的地址码0~64(高6 Bit)。完成一次地址循环需要的时间由时钟和步进值决定,可以由公式计算:

clip_image004

一次地址循环可以输出一个完整的波形,既T就是输出波形的周期,转换成频率clip_image006,得到计算公式:

clip_image008clip_image010

当晶振(2M)和计数器Bit数N确定之后,clip_image006[1]既与步进值A成正比,对A的调整可以完成对clip_image006[2]的设定,当N足够大时,比例常数clip_image012可以很小,例如0.01,既clip_image006[3]等于A的0.01倍,这样就可以实现对clip_image006[4]的精细调整,譬如0.01Hz。

例如晶振24M,N=30,系数为0.0223,要想实现0.1Hz的调整,每次A的值调整为0.1/0.0223=4。

DDS信号源硬件实现

clip_image013

扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://xjtudll.cn/Exp/155/

分享给朋友:
返回列表

上一篇:Altium打印设置

下一篇:Word转pdf

“DDS原理” 的相关文章

C# 百分号格式化 保持原数不变

C# 百分号格式化 保持原数不变

C# 格式化数字 百分号 需求: 格式化数值为百分比 但是保持输入的数值不变 也就是不要C# 自带的格式化百分数 因为他会自动*100 再加上百分号 解决方案: % 外面套一层 ‘ ’Code var column = this.gridViewItemDet...

水晶报表 跳过打印预览,直接打印

不要用 CrytalReportViewer1.ReportSource=myReport; 直接myReport.PrinttoPrinter(1,true/false,0,0); 重点就是这个PrintToPrinter函数...

Keil查看编译后的汇编代码

Keil查看编译后的汇编代码

在使用Keil编译C51时,一般情况下,大家都不去看汇编代码。但在某些特殊情况下,查看汇编代码就是有必要了。 (1)确认C代码是否正确 (2)研究算法 查看汇编代码前的某些准备工作是必须的:你得有工程,并确定程序编译无误。在查看汇编代码前,编译一次。 编译OK后,点Debug 有可能会提示你没有...

Android Studio删除Module

Android Studio删除Module

Android studio添加了一个module,结果添加错了,要删除才行,搞了半天不知道怎么弄。研究了很久,才搞清楚。 1 首先右键你要删除的Module。 2 我们往下看找到open module settings 3 弹出如图示的窗口 4 接着我们点击那个“-”...

Quartus CPLD未使用引脚处理

Quartus CPLD未使用引脚处理

未使用的引脚可以设置成输出,三态输入,弱上拉输入等。Quartus 8.0默认设置成输出低电平(As output driving ground)。 引脚设置方法: 【Assignments】->【Setting】->【Device】->【Device and Pin Option...

iOS 获取当前正在显示的ViewController

我们在非视图类中想要随时展示一个view时,需要将被展示的view加到当前view的子视图,或用当前view presentViewController,或pushViewContrller,这些操作都需要获取当前正在显示的ViewController。 //获取当前屏幕显示的viewcont...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。