用户中心

资讯 > 嵌入式系统

混合仿真下DDS的改进研究与实现

作者:周 磊,王紫婷2007.10.24阅读 2583

       1 引 言 
       DDS(Direct Digital Frequency Synthesis,直接数字频率合成器)是一种从相位概念出发直接合成所需波形的频率合成技术。由于DDS具有相对频带宽、频率分辨率高、频率变化速度快与相位可连续线性变化等一系列特点,已被广泛应用于数字通信系统中。目前,可供用户选择的高性能、多功能的专用DDS芯片比较多。然而在某些对控制方式、置频速率等方面有特殊要求的场合,设计一个基于高性能FPGA(Field Programming Gate Arraywww.cechina.cn,现场可编程门阵列)的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,低通滤波器)构成。

 

混合仿真下DDS的改进研究与实现如图

       2.1 DDS工作原理

       在连续的时钟作用下,相位累加器以K位频率控制字为步进值做累加运算。把累加器的输出作为波形存储器的地址数据,依次读出相应单元的正弦波波形样点数据www.cechina.cn,然后送往DAC进行数模转换后,经LPF低通滤波后输出连续模拟的正弦波形。

       假设波形存储器ROM中存储了一个完整正弦波波形的样点数据,那么通过改变K位频率控制字的大小www.cechina.cn,就调整了累加器的步进值,亦即改变了输出的正弦波单周期样点数,从而实现了正弦波形的频率控制。如每次对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位。

    &n

版权声明:版权归控制工程网所有,转载请注明出处!

频道推荐

关于我们

控制工程网 & CONTROL ENGINEERING China 全球工业控制、自动化和仪器仪表领域的先锋媒体

CE全球

联系我们

商务及广告合作
任小姐(北京)                 夏小姐(上海)
电话:010-82053688      电话:18616877918
rendongxue@cechina.cn      xiashuxian@cechina.cn
新闻投稿:王小姐

关注我们的微信

关于我们 | 网站地图 | 联系我们
© 2003-2020    经营许可编号:京ICP证120335号
公安机关备案号:110102002318  服务热线:010-82053688