我知道,我对与电子有关的一切作业都很入神,但不管从哪个视点看,今日的现场可编程门阵列(FPGA),都显得“出类拔萃”,真是十分棒的器材。假如在这个智能年代,在这个范畴,想具有才有所长的你还没有重视FPGA,那么国际将扔掉你,年代将扔掉你。
DDS是直接数字式频率组成器(Direct Digital Synthesizer)的英文缩写,是一项要害的数字化技能。与传统的频率组成器比较,DDS具有低成本、低功耗、高分辨率和快速转化时刻等长处,广泛运用在电信与电子仪器范畴,是完结设备全数字化的一个要害技能。
上图所示是一个根本的DDS结构,首要由相位累加器、相位调制器、正弦ROM 查找表和D /A 构成。图中的相位累加器、相位调制器、正弦ROM查找表是DDS结构中的数字部分, 因为具有数控频率组成的功用,又合称为NCO。
相位累加器是整个DDS体系的中心,在这里完结相位累加功用。相位累加器的输入是相位增量B∆θ=2N X fout /fclk,故相位累加器的输入又称为频率操控字,fclk为体系基准时钟,fout为输出的频率。频率操控字还经过一组寄存器, 该寄存器是同步的, 使妥当频率操控字改动时不会搅扰相位累加器的作业。
相位调制器接纳相位累加器的相位输出, 在这里加上一个相位偏移值, 首要用于信号的相位调制,
如使用于通讯方面的相移键控等, 不运用此部分时能够去掉, 或许将其设为一个常数输入。相同相位字
输入也要用同步寄存器坚持同步。
正弦ROM查找表,完结fsin(B∆θ)的查找表转化,是相位到起伏的转化, 内部存有一个完好周期正弦波的
数字起伏信号,输入是ROM 的地址值, 输出送往D /A, 转化成模拟信号。
在参阅时钟fclk操控下,频率操控字K与相位寄存器的输出反应在相位累加器中完结加运算,存入寄存器,作为下一次加运算的一个输入值,相位累加器输出高位数据作为波形存储器的相位抽样地址值,查找波形存储器中相对应单元的电压幅值,得到波形二进制编码,完结相位到电压幅值的改变。波形二进制编码再经过D/A转化器,把数字信号转化成相应的模拟信号。
fout =K X fclk/ 2N
当K=l时,可得DDS的最小分辨率为:fout =fclk/ 2N
依据采样定理,K的最大值应小于2N/2。
累加器得到的相位是怎样去寻址正弦ROM的,关于N位的相位累加器对应2的N次方数量的相位累加值,假如正弦ROM中存储的点数也是2的N次方的话,对存储容量和资源的要求就比较高了,实际上在寻址正弦ROM表时,用的是相位累加值的高位,也便是说并不是每个时钟fc都从正弦ROM表中取一个数值,而是多个时钟取一个值,这样能确保相位累加器溢出时,从正弦ROM表中取出正好一个正弦周期的样点。因而,相位累加器每计数2的N次方次,对应一个正弦周期。而相位累加器1秒钟计数fc次,在k=1时,DDS输出的时钟频率便是频率分辨率。频率操控字K添加时,相位累加器溢出的频率添加,对应DDS输出的频率变为K倍的DDS频率分辨率。
深化分析:
设定:ROM存储点数为1024,每个点是用8位二进制表明。即,ROM地址线宽度为10,数据线宽度为8。
依据上述条件能够知道,相位调制器位宽M=10,那么依据DDS原理,相位累加器位宽N=20。那么在相位调制器中与相位操控字进行累加时,使用相位累加器的高10位累加。
而相位累加器的低十位只与频率操控字累加。为什么是这姿态?
咱们以频率操控字K=1为例,相位累加器的低十位一向会加1,直到低十位溢出向高十位进位,此刻ROM地址应该是0,也便是说,ROM的0地址中的数据被读了1024次,继续下去,ROM中的1024个点,每个点都将会被读1024次,终究输出的波形频率应该是参阅时钟频率的1/1024。 fout =1 Xfclk/ 1024。反过来想,周期被扩展了1024 。相同当频率操控字为10时,相位累加器的低十位一向会加10,那么,相位累加器的低十位溢出的时刻比上面会快十倍,则ROM中的每个点比较于上面会少读10次,所以终究输出频率是上述的10倍。fout =10 Xfclk/ 1024。这便是DDS。
DDS 终究输出的正弦波的幅值,有必要都是ROM表中的正弦幅值。之前咱们说依据采样定理,频率操控字K的最大值应小于2的N次幂除以2,这是有道理的,累加器数据位宽20位,ROM表地址位宽10位,在终究ROM表寻址时,用的是累加器的高10位,而低10位只用来进行累加。因为咱们上讲述DDS终究输出正弦波的赋值有必要是ROM表中的幅值,也便是说,ROM表中的幅值有必要都被用到,而不能越过。以累加器位宽20位为例,它的一半是1024,当频率操控字以超越1024累加时,高十位输出累加值会超越1,也便是在寻址ROM表时越过某些赋值。依据上述能够得出结论了,频率操控字K的最大值应小于2的N次幂除以2。