数字控制振荡器(NCO)的FPGA实现

数字控制振荡器(NCO)的FPGA实现,第1张

 

  NCO(N umerically Controlled Oscillator)是用于产生一个理想的、数字可控的正弦或余弦波的数字控制式振荡器,其实现方法有实时计算法和查表法等多种。实时计算法的正弦波样本以实时计算产生,该方法因其计算需要耗费很多时间,因而只能产生较低频率的正弦波,而且存在计算精度与计算时间的矛盾。由于在需要产生高速的正交信号时,实时计算法将无法实现。因此,在实际应用中一般采用最有效、最简单的查表法,即事先根据各个NCO正弦波的相位计算好相位的正弦值,并按相位作为地址信息存储该相位的正弦值数据。

  1 NCO的基本原理

  在通过相位累加产生地址信息时,通常需要输出当前时刻的相位值所对应的正弦值,即以参考频率源对相位进行等可控间隔采样。众所周知,理想的正弦波信号S(t)可以表示成:

  

数字控制振荡器(NCO)的FPGA实现,a.JPG,第2张

 

  式(1)说明,信号s(t)在振幅A和初相φ确定之后,其频率可以由相位来唯一确定。即:

  

数字控制振荡器(NCO)的FPGA实现,b.JPG,第3张

 

  NCO就是利用式(2)中φ(t)与时间t成线性关系的原理来进行频率合成的,也就是说,在时间t=△t间隔内,正弦信号的相位增量△φ与正弦信号的频率f可构成一一对应关系,也就是说,对式(2)两端进行微分后有:

  

数字控制振荡器(NCO)的FPGA实现,c.JPG,第4张

 

  。

  由上面的讨论可知:

  

数字控制振荡器(NCO)的FPGA实现,i.jpg,第5张

 

  其中,△θ为一个采样间隔△t之间的相位增量,采样周期

  

数字控制振荡器(NCO)的FPGA实现,d1.jpg,第6张

 

  。故式(3)可改写为:

  

数字控制振荡器(NCO)的FPGA实现,d2.jpg,第7张

 

  由式(4)可知,如果可以控制△θ,就可以控制不同的频率输出。由于△θ受频率控制字FCW的控制,即:

  

数字控制振荡器(NCO)的FPGA实现,d4.jpg,第8张

 

  ,所以,改变FCW就可以得到不同的输出频率f0,然后经代换处理可得如下方程:

  

数字控制振荡器(NCO)的FPGA实现,第9张

 

  式(5)和式(6)中的L为相位累加器的位数。根据Nyquist准则,允许输出的频率最高为FCLK/2,即

  

数字控制振荡器(NCO)的FPGA实现,d5.jpg,第10张

 

  。但在实际工程中,由于受到低通滤波器的限制,一般输出的频率

  

数字控制振荡器(NCO)的FPGA实现,d.JPG,第11张

 

  。

  

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2464018.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-04
下一篇 2022-08-04

发表评论

登录后才能评论

评论列表(0条)

保存