大家好,欢迎来到IT知识分享网。
在数字信号处理领域,数控振荡常被用于DDC(数字下变频)和DUC(数字下变频)中产生所需频率信号。关于DDC和DUC的部分后面再整理(也可参考该网址:数字下变频(DDC)和数字上变频(DUC)_ddc duc-CSDN博客),下面主要从以下几个方面整理笔记:
1 模块结构
NCO在DDC或者DUC中的位置如下图所示,用于产生所需频率信号,然后再通过滤波器选择最终所需的频率信号,如果滤波器为低通滤波器,则对应的DDC,如果滤波器为高通滤波器,则对应的DUC:
关于NCO的结构主要包括相位累加器和正弦波存储ROM,其框图如下紫色框所示,黄色框为相位累加器,红色为存储正弦波形数据。
2 实现原理
先说结论:生成的特定频率信号为上图中的y信号,该y信号的频率为f1,f1和系统频率f0、频率控制字M以及DFF的位宽N bit之间的关系如下:
ROM里存储的是正弦波一个周期的数值,其存放地址对应的数值是和相位值相符的正弦波值,比如0地址存放的是相位为0的正弦波值。而ROM存放的数据个数由DFF的数据位宽N决定,即DFF的输出数据即是ROM的地址(这里考虑的是存储的整个正弦波周期的数据,一个地址存储一个正弦波数据,未考虑数据的对称性等因素)。
频率控制字M是一个可配置的参数,它的位宽为N bit,具体配置参数可根据系统时钟和所需输出信号频率决定。M决定了相位累加器的步进值,即一个周期对应相位,被分成了
份,如果
,则相位累加器的步进值为
,即对应一个ROM的地址空间。如果
,则相位累加器的步进值为
,即ROM的地址空间每次增加2.
输出信号y的频率f1的理解:系统时钟为T0,若,则需要
个系统时钟周期y才能完成一个周期;如果
,则需要
个系统时钟周期y才能完成一个周期,即
,即
。
3 其他关注点
NCO的工作原理捋清楚后,剩下的就是具体的硬件设计。设计时需要从芯片的PPA(performance、power、area)三个方面考虑。在NCO的设计中主要考虑的点需要从功耗(power)和面积(area)出发,下面列出三个点:
(1)ROM的设计
由于正弦波在四个现象具有对称性,所以在存储正弦波数值时可以不用把全周期的数值都存下,从功耗和面积考虑,只需存下半个周期或者甚至四分之一个周期的数值。
(2)频率字M的设计
频率控制字M是由寄存器配置好的,因此从功耗考虑,可以采用clock_gate将不需要配置时把时钟关掉。
4 参考资料
mt-085_cn.pdf (analog.com)
数控振荡器原理及实现-原理 – Vinson88 – 博客园 (cnblogs.com)
通信原理及系统系列37——FPGA实现NCO原理分析-CSDN博客
笔记就暂时整理到此,如有新内容会及时更新,如有错误欢迎指出。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/148504.html