(6)
由上面的各个表达式可以看出,只要把相位量化值通过累加运算,就能得出正弦信号当前的相位值表达式,而信号输出频率fout是由累加增量的量化值BΔθ决定的,并且两者是简单的线性关系。
直接数字合成器DDS就是通过上面的原理方法而设计成的一种数字控制频率合成器。DDS的基本结构主要由相位累加器、相位调制器、正弦ROM查找表、DAC和低通滤波器构成,如图1所示。图中的相位累加器、相位调制器、正弦ROM查找表是DDS结构中的数字控制部分,因为具有数字控制频率合成的作用,因此又称为NCO(Numerically Controlled Oscillator)。相位累加器是整个DDS结构中的核心。相位累加器的输入是相位的增加量BΔθ,又由于BΔθ与输出频率fout是线性关系,相位累加器的输入还称为频率字输入。事实上当基准时钟fclk是2N时,BΔθ就等于fout。频率字输入在图中同时也经过了一组同步的寄存器,使得改变频率字输入时不会干扰到相位累加器工作的正常进行。
图1 DDS的原理结构
在对信号的相位进行调制时,如PSK(相移键控),相位调制器在接收累加器的相位输出时,会加上一个相位偏移量,在不使用时也可以去掉该部分,或是加一个相位字常数输入。相位字输入最好也通过同步寄存器来完成同步。需要注意的是相位控制字的输入数据宽度M与频率字输入N很可能是不相等的,即M<N。
正弦波形数据存储ROM(查找表)完成fsin(Bθ)的查找转换,也可以看成是相位到幅度的转换,它的输入是相位调制器的输出,事实上就是ROM查找表的地址值;输出送往DAC,转换成模拟信号输出。由于相位调制器的输出数据位宽M也是ROM的地址位宽,因此在实际的DDS结构中N往往很大,而M为10位左右。M如果太大可能会导致ROM容量的成倍上升,且输出精度由于受DAC位数的限制也未必有大的改善。基本DDS结构的常用参数计算如下。
(1) 输出频率fout。DDS输出频率的计算公式:
(7)
其中,BΔθ是频率输入字,即频率控制字,它与系统时钟频率呈正比;fclk是基准时钟的频率值;N是相位累加器的数据位宽,也是频率输入字的数据位宽。
(2) 频率分辨率Δf。DDS的频率分辨率Δf也即是频率步进值,可用频率输入值步进一个间隔对应的频率输出变化量来衡量。
(8)
利用DDS技术,可以实现任意频率和指定精度的正弦信号发生器;而且也可作任意波形发生器,即只要改变ROM查找表中的波形数据就可实现。
2.1.2 DDS的特点
(1) 当相位累加器的位数N够大时,DDS的频率分辨率就可以获得对应的分辨精度,这是传统方法较难以实现的;
(2) 由于DDS是一个开环系统,而且是全数字结构,没有反馈的环节,所以其速度极快,一般在纳秒级;
(3) DDS的相位误差主要是由时钟的相位特性决定的,相位误差较小。另外,由于DDS的相位是连续变化的,所以形成的信号通常具有良好的频谱,这是传统的直接频率合成方法无法合成的。 VHDL基于FPGA的移相信号发生器设计+Quartus仿真+源程序(3):http://www.youerw.com/zidonghua/lunwen_808.html