数控振荡器3个模块的主要工作原理
NCO的目标是产生频率可变的正、余弦波样本,(n=0,1,2.)。式中,fLO为本地振荡频率,fS为输入信号的采样频率。NCO主要包括3个模块:
1.相位累加器对输入频率控制字M不断累加,得到以该频率字为步进的数字相位。
2.函数发生模块,对当前相位进行对应幅度转换后,可以输出任意函数的波形。
函数发生模块*直接的实现方法是只读存储器查找表(ROM LUT)法,将正、余弦波形的抽样存放在ROM中,并通过一个DAC周期地进行输出,从而产生输出波形。如输出信号幅度位数为a,相位地址位数n所需查找表的大小为a×2n。结合上文结论可知,频率分辨率越高,所需要的ROM越大,和n为指数增长关系。可见,ROM LUT法很难兼顾功耗、性能、成本三方面,而CORDIC算法的应用能够很好地解决这一问题。
3.相位相加器将相位寄存器中的数字相位与相位控制字相加,得到偏移后的当前相位。
设系统的时钟频率为fc,频率控制字为M,相位寄存器位数为N,则数控振荡器输出信号频率为。根据Nyquist抽样定理,fs*大值为1/2fc,而在实际设计中,一般不应大于时钟频率的1/4。其频率分辨率为,根据此式,在系统时钟频率不变的情况下,相位寄存器位数N越大,产生信号的频率分辨率越高。