数字控制振荡器(NCO)的FPGA实现_第1页
数字控制振荡器(NCO)的FPGA实现_第2页
数字控制振荡器(NCO)的FPGA实现_第3页
数字控制振荡器(NCO)的FPGA实现_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、    数字控制振荡器(NCO)的FPGA实现摘要:介绍了NCO数字控制振荡器的工作原理,详细分析了数控振荡器的性能指标和其在FPGA中的实现方法,最后给出了新设计的数控振荡器在QUARTUSII中的仿真结果。关键词:数控振荡器(NCO);无杂散动态范围(SFDR);FPGA;频率控制字0 引言 NCO(N umerically Controlled Oscillator)是用于产生一个理想的、数字可控的正弦或余弦波的数字控制式振荡器,其实现方法有实时计算法和查表法等多种。实时计算法的正弦波样本以实时计算产生,该摘要:介绍了NCO数字控制振荡器的工作原理

2、,详细分析了数控振荡器的性能指标和其在FPGA中的实现方法,最后给出了新设计的数控振荡器在QUARTUSII中的仿真结果。关键词:数控振荡器(NCO);无杂散动态范围(SFDR);FPGA;频率控制字0 引言    NCO(N umerically Controlled Oscillator)是用于产生一个理想的、数字可控的正弦或余弦波的数字控制式振荡器,其实现方法有实时计算法和查表法等多种。实时计算法的正弦波样本以实时计算产生,该方法因其计算需要耗费很多时间,因而只能产生较低频率的正弦波,而且存在计算精度与计算时间的矛盾。由于在需要产生高速的正交信号时,实时计算

3、法将无法实现。因此,在实际应用中一般采用最有效、最简单的查表法,即事先根据各个NCO正弦波的相位计算好相位的正弦值,并按相位作为地址信息存储该相位的正弦值数据。1 NCO的基本原理    在通过相位累加产生地址信息时,通常需要输出当前时刻的相位值所对应的正弦值,即以参考频率源对相位进行等可控间隔采样。众所周知,理想的正弦波信号S(t)可以表示成:       式(1)说明,信号s(t)在振幅A和初相确定之后,其频率可以由相位来唯一确定。即:     

4、60; NCO就是利用式(2)中(t)与时间t成线性关系的原理来进行频率合成的,也就是说,在时间t=t间隔内,正弦信号的相位增量与正弦信号的频率f可构成一一对应关系,也就是说,对式(2)两端进行微分后有:。    由上面的讨论可知:       其中,为一个采样间隔t之间的相位增量,采样周期。故式(3)可改写为:       由式(4)可知,如果可以控制,就可以控制不同的频率输出。由于受频率控制字FCW的控制,即:,所以,改变FCW就可以得到不同

5、的输出频率f0,然后经代换处理可得如下方程:       式(5)和式(6)中的L为相位累加器的位数。根据Nyquist准则,允许输出的频率最高为FCLK2,即。但在实际工程中,由于受到低通滤波器的限制,一般输出的频率。2 NCO的性能指标    NCO的性能指标包括信号频率分辨率、信噪比(SNR)、无杂散动态范围(SFDR)和输出的信号正交性。这些性能指标取决于NCO的数据位数。NCO的数据位数包括用于表示相位数据的位数n和表示相位的正弦值数据的位数nb,二者之间存在nb取决于n的关系,且前者必须能够表

6、示相位变化时其相位正弦值变化的最小值和最大值。而这又分为两种情况:    第一种情况是相位最小变化值的正弦值最小变化发生在2-2,22+,32-32,3232+,同时其相位的取值是在02间且等间隔地分为2n爪取值点,因此,由正弦波的特性可知:只需要讨论相位在2-与2取值点的正弦值之差:       第二种情况是相位最小变化值的正弦值的最大变化发生在0,-,+,2-2取值点处。该情况可以通过类似于第一种情况的推导方法得到:       设计时可以根

7、据式(9)和式(10)较好地取值n和nb,以避免相位的分辨率发生钝化,并很好地达到设计要求。    NCO的噪声是因为存在正弦值的量化误差而引入的,且量化误差由表示正弦值的位数决定,其近似关系为:      式中,B是作为寻址ROM的地址的舍位位数,n是相位位数。NCO的另一个性能参数是频率分辨率f,该参数取决于相位位数,其关系式为:   3 NCO在FPGA中的实现    NCO的查找表是一个正弦值表,该表的正弦值是按照相位作为存储地址来进行存储的,而且

8、一般以相位递增的方式存储。利用正弦波的奇偶对称性,可以把2相位分成4等份,然后利用各等份之间的对称性来实现地址信息的映射,通常只存储0,2象限内的幅度码。    相位累加器可完成相位累加,即每来1个时钟就累加1次=+,且采用流水线方式工作。本设计采用QUARTUS II中IP核自带的一种32位累加器来实现相位的累加。    逻辑转换完成后,可采用小表结构功能块把相位累加器产生的最高2位信号转换为地址控制信号和象限转换控制信号。其中地址控制信号是根据最高两位信号来控制地址从0开始递增方式产生还是从2L开始以递减方式产生。 &#

9、160;  正弦表是每来一个时钟输出一个大于零的正弦值数据,这些数据可作为象限变换器的输入,由象限变换器完成数据的象限变换。其转换原则是:象限控制信号根据正弦信号的对称性把查表得到的数据转换为正负数据,并对于正弦信号的1、2象限数据进行加零操作,而对3、4象限的数据进行求补运算。余弦数据也同样,在1、4象限对数据进行加零操作,2、3象限数据进行求补运算。4 仿真结果    利用上述小表结构实现的NCO可以输出多种频率信号并减少资源消耗,影响系统输出频率的因素主要是工作频率和器件性能。    图1所示是整个NCO在QUARTU

10、S II中的仿真波形图。    在图1所示的波形图中,CLK是时钟输入频率(为656 MHz),CLR为系统复位信号,相位累加器的位数L为32位,输出信号幅度位数为12位(包括符号位),相位宽度为12位,这样,由式(5)便可得到频率控制字FCW为269591793,图1中的COS_OUT与SIN_OUT是系统输出信号,频率为408 MHz。    由式(11)、(12)、(13)可得,此系统的信噪比和SFDR分别为74 dB和84 dB。    图2所示是将波形文件中的正弦余弦数据读入MATLAB中所显示出来的波形。5 结束语    本文通过分析数控振荡器的实现原理和性能,给出了通过FPGA来实现NCO的具体方法,同时通过QUARTUS中的仿真验证了本设计的正确性。结果证明,用该方法设计的NCO可以输出多种频率的信号,同时也可以减少资源消耗。热门词条供应CBB电容473J630

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论