原创 基于DDS的波形发生器设计之---直接数字频率合成原理

2009-4-1 19:31 3613 11 11 分类: FPGA/CPLD

在微机内,插入一块D/A,编一个小程序,让微机连续进行加1运算,当加到一定值时,做减一运算返回到原值,反复运行等量程序,则微机输出的数字量经D/A,再经低通滤波后变成三角波。若改变程序,令微机先输出'1'(高电平),然后延时一段时间,再输出'0',再延时一段时间,反复运行程序,则可以得到方波。也可以先将要输出的数据存放在ROM(RAM)中,然后在系统时钟信号(CLK)频率下,按一定的顺序从ROM(RAM)读出数据,再进行D/A转换就能得到 一定频率的波形。现以正弦波为例说明如下:


在正弦波的一个周期(360) 内,若按相位划分若干份相等的角度,将各相位对应的幅值A进行二进制编码并存入ROM。若相位6度划分为一个等分,则一个周期内有60个等分,因为正弦波对180 为奇对称,90和270为偶对称,所以ROM中只要存0~90 度范围内的幅值码,在0~90度之间共只有15等分。因为24=16,所以可按4位地址对数据ROM进行寻址。


下面讨论频率的关系。


   我们知道,输出波形的产生是相位累加的结果。设相位累加器累加的值为K,即相位步进码,显然K值越大,步进越大,输出的频率也越大,但是这样一来的后果是失真严重。对于一个N位的地址,共有2N个采样点,而一个周期内至少要4个采样点才能得到正弦波。现在假设时钟控制频率为fc,输出频率为fo,地址为N位,则当K=Kmin=1时fo=Kmin*fc/2N,所以最低的输出频率为fomin=fc/2N


当K=Kmax=2 N-2时,fo=Kmax*fc/2 N   ,所以最高输出频率为fomax=fc/4。


在DDS中,输出频率的点是离散的,当确定了最高和最低输出频率后,其间可输出的不同频率个数为M=fomax/fomin=2 N-2  。


 

文章评论0条评论)

登录后参与讨论
我要评论
0
11
关闭 站长推荐上一条 /2 下一条