混合仿真下DDS的改进研究与实现
扫描二维码
随时随地手机看文章
DDS(Direct Digital Frequency Synthesis,直接数字频率合成器)是一种从相位概念出发直接合成所需波形的频率合成技术。由于DDS具有相对频带宽、频率分辨率高、频率变化速度快与相位可连续线性变化等一系列特点,已被广泛应用于数字通信系统中。目前,可供用户选择的高性能、多功能的专用DDS芯片比较多。然而在某些对控制方式、置频速率等方面有特殊要求的场合,设计一个基于高性能FPGA(Field Programming Gate Array,现场可编程门阵列)的DDS电路就是一个很好的选择。
依据正弦波对称性,把DDS的核心部件——相位累加器改进为回旋相位累加器,使得波形存储ROM空间降为原来的50 %,频率分辨率提升1倍。另外,在QuartusⅡ,VC与LabWindows/CVI组成的混合仿真环境下,对该系统进行验证。这样,既避免硬件平台的限制,又增加了硬件实现成功率。
2 混合仿真下改进的DDS系统的实现
由图1可见,改进后的DDS系统由回旋相位累加器、波形存储器、DAC(Digital to Analog Converter,数模转换器)、PLL(Phase Locked Loop,锁相环路)与LPF(LowPass Filter,低通滤波器)构成。
2.1 DDS工作原理
在连续的时钟作用下,相位累加器以K位频率控制字为步进值做累加运算。把累加器的输出作为波形存储器的地址数据,依次读出相应单元的正弦波波形样点数据,然后送往DAC进行数模转换后,经LPF低通滤波后输出连续模拟的正弦波形。
假设波形存储器ROM中存储了一个完整正弦波波形的样点数据,那么通过改变K位频率控制字的大小,就调整了累加器的步进值,亦即改变了输出的正弦波单周期样点数,从而实现了正弦波形的频率控制。如每次对K位频率控制字的累加后,再把N位相位控制字累加进去后,便可实现波形的相位偏移。如每次再对波形存储器输出数据乘以P位幅度控制字后便实现了正弦波形的幅度控制。
如果正弦波形的采样深度为D位,那么系统内的N位累加器就决定了波形存储器的存储空间应为2N×D位。如果取N为32位,D为10位,则需要5 120 MB的ROM资源,这在任何一片FPGA芯片中是难以实现的。由于波形样点数据存在大量的重复值,因此本系统采用了“截尾法”来生成存储器的地址(图1中的地址锁存器完成的就是这个功能)。把累加器输出的高10位作为存储器的地址,从而使得ROM空间缩小为1.25 kB。而依据正弦波形的对称性把相位累加器改进为回旋相位累加器后,使得ROM只需存储半波形数据,进而把ROM空间再降低50%,变为0.625 kB。
2.2 系统参数的确定
系统预采用10位无符号的DAC,故存储波形样点数据的ROM空间大小为210×10位。即D为10位,M为10位。
通过系统的综合仿真报告,可以发现系统的极限工作频率为197.01 MHz。因此,为了最大限度地拓宽DDS的频带宽度,系统中引入了PLL来提升时钟信号频率及其稳定度。选定fs为50 MH,f′s为190 MHz。
虽然奈奎斯特抽样定理已经证明,周期样点数只要保留2个以上便可以无误地复原波形。可是为了保证完整精确地重建正弦波形,保守地选择单周期样点的个数应该≥16个。而回旋相位累加器的每次溢出只表示有半个正弦波形的输出,即频率控制字的位数比回旋相位累加器的位数少3位。所以,频率控制字的位数K为28位,回旋相位累加器的位数以及相位控制字的位数N为31位。
2.3 回旋相位累加器
所谓回旋相位累加器,指的是累加器先以频率控制字为步进值进行加法运算,当累加器溢出后,再以频率控制字为步进值进行减法运算,如再次溢出后,再进入递增式的加法运算阶段,如此循环,故称之为回旋相位累加器。回旋相位累加器实质上仍然是以频率控制字为步进值的累加器。他实现“回旋”的思想主要是依据溢出位COUT。如果COUT=‘0’,则正常输出;如果COUT=‘1’,则取反后输出。
由此不难得出,改进的DDS系统的频率分辨率△f、相位分辨率△p以及系统输出正弦波的频率fo由式(1)、式(2)以及式(3)给定:
假设幅度控制字大小为1,则由式(1),(2),(3)可知系统的频率分辨率△f约为0.044 Hz,相位分辨率△p约为8.382*10-8度,输出正弦波的最高频率fmax为11.875 MHz以及最低频率fmin为0 Hz。
由此不难看到DDS的优点:输出信号的频带宽、频率分辨率以及相位分辨率高。
3 存储器初始化文件(*.mif文件)的生成以及对仿真数据等间隔采样提取
波形存储器调用LPM_ROM元件实现。为了得到1 024个10位正弦波的半周期无符号幅值样点数据,并生成相应的存储器初始化文件(*.mif文件),需要把正弦波波形移至x轴上方后进行采样。采样公式为:
在QuartusⅡ6.0软件中对DDS进行波形仿真后,把仿真结果保存为含有时间和对应样点数据的*.tbl文件。然后在VC中,依据tbl文件的存储格式,编程实现对时间和样点数据的分离提取。
尽管QuartusⅡ6.0是一款十分优秀的EDA(Elec-tronic Design Automation,电子设计自动化)开发工具,但是其仿真结果直观性差,有必要借助第三方工具来观察验证仿真结果。而且可以利用第三方工具来仿真DAC以及LPF。在本系统中,选择了信号处理函数库极其丰富、可视性很强的虚拟仪器开发平台LabWindows/CVI 8.0。
由于QuartusⅡ6.0仿真生成的tbl文件中的仿真数据在时间上并不是等间隔的,因此在LabWindows中进行滤波处理之前,必须对仿真数据进行等间隔采样。等间隔采样的方法是“递进式查找法”,采样原则是每个周期采样512个点。
4 仿真结果与分析
在LabWindows 8.0中使用他的高级信号分析库中的五阶切比雪夫低通滤波器函数对等间隔采样后的样点数据进行滤波,便可得到图2(11.875 MHz的DDS仿真,等间隔采样以及滤波后的波形)、图3(20 Hz的DDS仿真,等间隔采样以及滤波后的波形)的仿真结果。
由图2、图3中DDS的仿真波形中存在大量的毛刺,这主要是由于多位的波形数据传输到FPGA的管脚时存在微小的时间误差造成的,属正常现象。这可以通过后面的滤波电路消除,而图中的滤波后的波形也十分理想。图2、图3中的电压值只是归一化的电压。
5 结 语
文中详细描述了基于QuartusⅡ6.0,VC 6.0和Lab-Windows/CVI 8.0混合仿真环境下设计并实现一个改进的DDS系统的方法和过程,这个数字系统设计的特点就是设计完全避免了硬件平台的限制,同时提升了系统硬件实现的成功率。另外系统中回旋相位累加器的引入把ROM空间的开销降低50%,分辨率提升1倍。
但是,由于DDS内部的波形存储器ROM工作速度的限制,使得DDS输出的最高频率有限。而DDS的全数字结构也不可避免地引入了杂散,主要来源有:回旋相位累加器的截尾误差造成的杂散、幅度量化误差造成的杂散和DAC非理想特性造成的杂散。但是,通过滤波处理完全可以把这些杂散对波形的影响降到最低。