一、原理的理解
当频率控制字为1时,给出下列公式:
上式中的N为把一个周期取2^N个点,即把正弦信号在相位上的精度定义为N位,其分辨率为1/2^N。
图片1给出的是在一个正弦周期内,采样了32个点。假设要求1ms输出一个数值,那么输出一个完整的正弦信号需要32个点,则输出一个正弦信号需要32ms,可知输出信号的频率f为1000ms/32ms。
那么问题来了:如何通过上述的32个点产生频率2f的正弦信号呢?
答案:在第1ms的时候取1上面的值,在第2ms的时候取3上面的值,在第3ms的时候取5上面的值,即取1、3、5、7上面的值。F(out)= 1000ms/(2^5/2)
如何通过上述的32个点产生频率f/2的正弦信号呢?
答案:在第3ms的时候取2上面案:在第1ms的时候取1上面的值,在第2ms的时候依然取1上面的值,在第4ms的时候依然取2上面的值........此时F(out)= 1000ms/(2^5/0.5))
倘若一个正弦周期有2^32个点,要输出32个点来形成正弦信号。要怎么做呢?
有2^32/32=2^27,即每隔2^27个点就输出一次。此时F(out)= 1000ms/(2^32/2^27),2^27称为频率控制字B,也称为步进。而1ms就是工作时钟。
DDS的基本结构图如图所示: