度快、相位可连续性变化等特点,在数字通信系统中被广泛采用,是信号生成的最佳选择。
DDS主要由相位累加器、相位调制器、正弦ROM查找表、D /A转换器等组成。系统时钟clk由一个稳定的晶体振荡器产生,用来同步整个合成器的各组成部分。同步寄存器的使用是为了当输入的频率字改变时不会干扰相位累加器的正常工作。相位累加器是整个DDS的核心,它由N位加法器和N位相位寄存器级联构成,类似一个简单的加法器,完成上面推导中的相位累加功能。每来一个时钟脉冲,加法器就将输入的N位频率字与相位寄存器输出的累加相位数据相加,然后将相加后的结果送至相位累加器的输入端,相位寄存器就将在上一个时钟作用后产生的新相位数据反馈到加法器的输入端,以使加法器在下一个时钟的作用下继续将相位数据与输入的频率字相加。
当相位累加器累加满量(2π) 时,就会产生一次溢出,完成一个周期性的动作,这个周期就是合成信号的一个周期,累加器的溢出频率就是DDS的合成信号频率。相位调制器接收相位累加器的相位输出,并与一个相位偏移值相加,主要用于信号的相位调制, 如PSK(相移键控)等。在不使用时可去掉该部分,或加一个固定的相位字输入。注意相位字输入也要用同步寄存器保持同步,但相位字输入的宽度M与频率字输入N往往是不相等的,一般M < N。
正弦ROM查找表的作用是完成查表转换,或理解为相位到幅度的转换。将相位累加器或相位调制器输出的相位数据作为取样地址,来寻找正弦ROM表进行相位到幅度的变换,输出不同的幅度编码。经D /A转换器得到相应的阶梯波,最后经过低通滤波器对阶梯波进行平滑处理,得到由输入的频率字决定的连续变化的输出正弦波。下面的即为基本DDS结构的常用参数计算公式:
输出频率:
foutB????fclk N2频率字:
B??fout?2?fclkN
其中
B??f是频率控制字,clk为系统基准时钟的频率值,N为相位累加器的数据位宽,
也是频率控制字的数据位宽。
下图为 DDS基本结构原理图,仔细观察。
频率字输入 相位字输入 同步 寄存器 N 同步 寄存器 相位 CLK 相位 M 调制器 M 正弦信正弦ROM 号输出 累加器 图3 DDS基本结构原理图
频率控制字的可调整性使得系统输出频率非常容易调整。输出正弦波频率f=fclk*frequword/2^20,系统时钟,频率控制字DDS系统时钟12MHz,异步于CPU时钟20bit频率控制字,8bit相位控制字,8bit数据输出每波形抽样256个点。 相位累加器
相位累加器结构如图(4)所示。假设系统时钟为Fc,输出频率为Fout。每次转动一个角度360°/2N, 则可以产生一个频率为Fc/2N 的正弦波的相位递增量。那么只要选择恰当的频率控制字M,使得 Fout / Fc= M / 2N,就可以得到所需要的输出频率Fout,Fout = Fc*M / 2N,相位幅度转换通过相位累加器,我们已经得到了合成Fout 频率所对应的相位信息,然后相位幅度转换器把0°~360°的相位转换成相应相位的幅度值。
(1)相位累加器结构如图(4)所示。
图4 相位累加器
(2)如图5所示,该部分是频率字输入,不同的频率字输入会使得信号输出波形的频率不同。
图5 频率字输入
(3)如图6所示,该部分是输入地址为6位,输出值位宽为8的正弦查找表模块,且输入地址总线为无符号整数。
图6 LUT模块
高速D/A模块
GW_ADDA板含两片10位超高速DAC(转换速率最高150MHz),D/A全部处于使能状态,除了数据线外,任一器件的控制信号线只有时钟线,这有利于高速控制和直接利用MATLAB/DSP Builder工具的设计。GW_ADDA板上工作时钟必须由FPGA的I/O口提供,优点是时钟频率容易变化,且可通过Cyclone中的PLL的到几乎任何时钟频率。由此即可测试DAC的最高转换频率。
两个电位器可分别调协两个D/A输出的幅度(输出幅度峰峰值不可大于5V,否则波形失真);模拟信号从接插口的2针“AIN”输入,J1和J2分别是模拟信号输出的PA、PB口,也可在两挂钩处输出,分别是两个10位DA5651输出口。电路原理图如图7所示。
相位累加器结构如图(4)所示。假设系统时钟为Fc,输出频率为Fout。每次转动一个角度360°/2N, 则可以产生一个频率为Fc/2N 的正弦波的相位递增量。
下图为高速DA模块电路原理图,认真理解并运用:
数据输出 Pin213Pin214Pin193Pin227Pin194Pin228Pin207Pin208D9D8D7D6D5D4D3D2D1D0数据输入Pin141(PIO36)Pin158(PIO37)Pin159(PIO38)Pin160(PIO39)Pin161(PIO40)Pin162(PIO41)Pin163(PIO42)Pin164(PIO43)Pin165(PIO44)Pin166(PIO45)510/5540D7D6D5D4D3D2D1D0数据输入Pin128(PIO26)Pin132(PIO27)Pin133(PIO28)Pin134(PIO29)Pin135(PIO30)Pin136(PIO31)Pin137(PIO32)Pin138(PIO33)Pin139(PIO34)Pin140(PIO35)Pin167(PIO46)D9D8D7D6D5D4D3D2D1D056515651超高速D/A模拟信号输出超高速D/A超高速A/DAOUT(A)A口输出ADCLKPin144DACLKDACLKAOUT(B)B口输出
图7 高速DA模块电路原理图
2.1.2 频率字输入的计算
由DDS的频率输入字公式:
B??fout?2?fclkN计算,式中N为相位累加器的
数据位宽,也是频率输入字的数据位宽,fclk是系统基准时钟的频率值。本设计中N=20,fclk=12MHZ,fout=50KHZ根据计算得出频率输入字为4369。 2.1.3 输出波形峰峰值的计算
本设计中正弦查找模块输入地址为8位,输出位宽为10位,且输入地址总线为无符号整数,可设置起始值为0、结束值为2π、步进值为2π/26。为了得到完整满度的波形输出,计算式可写成: 511*sin[0:2*pi/2^8]:2*pi]+512 2.1.4 相位差的计算
本设计用8bit相位控制字,8bit数据输出每波形抽样2^8=256个点,所以每按一键增加或减小相位差为3600/256=1.400 符合设计要求。 2.1.5正交信号发生器电路模型图
两个电位器可分别调协两个D/A输出的幅度,使用时一定要调节好,使之能调幅。
模拟信号输出
基于DDS的正交信号发生器是整个系统的设计核心部分,其电路模型图如图8所示。
图8 基于DDS的正交信号发生器MDL模型
DDS用来产生频率、相位和幅度可变的正弦波。DDS的工作原理是利用正弦信号的相位与时间呈线性关系的特性”1,采用相位累加方法作为地址,读出相应ROM中的值,得到正弦信号的瞬时幅值,实现频率合成。DDS包括频率控制字、相位控制字、同步寄存器、相位累加器、波形存储器、数模转换器、低通滤波器。
在系统时钟的控制下.相位累加器对频率控制字K进行累加,得到相位码,相位码寻址ROM得到幅值码,经过数模转换后得到相应的阶梯波,再经过低通滤波得到连续平滑的、由频率控制字K决定的模拟输出波形。DDS可以用来产生多种波形,只要改变ROM中的数据.预先设置成正弦波、余弦波等,根据查表就可以实现不同的波形。利用DSP Builder设计DDS。然后转换成VHDL。DDS的分辨率在相位累加器的位数^,足够大时,理论上可以获得相应的分辨精度。DDS是一个全数字结构的开环系统,无反馈环节,速度非常快。DDS的相位误差主要依赖于时钟的相位特性,相位误差小,相位是连续变化