0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于QuartusⅡ6.0和Lab-Windows/CVI 8.0的DDS系统的改进设计

电子设计 来源:现代电子技术 作者:周磊,王紫婷 2020-11-26 10:25 次阅读

1 引 言

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,低通滤波器)构成。

基于QuartusⅡ6.0和Lab-Windows/CVI 8.0的DDS系统的改进设计

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非理想特性造成的杂散。但是,通过滤波处理完全可以把这些杂散对波形的影响降到最低。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储器
    +关注

    关注

    38

    文章

    7120

    浏览量

    161925
  • 频率合成器
    +关注

    关注

    5

    文章

    199

    浏览量

    32152
  • DDS
    DDS
    +关注

    关注

    21

    文章

    614

    浏览量

    151704
收藏 人收藏

    评论

    相关推荐

    Quartus II8.0破解补丁

    Quartus II8.0破解补丁
    发表于 09-16 08:33

    quartus ii 8.0破解问题

    quartus ii 8.0运行破解文件后破解文件会停止运行,求大神回答如何解决
    发表于 09-20 17:42

    谁有quartus ii 6.0的下载啊?、??

    谁有quartus ii 6.0的下载啊?、??明天就要考试了。。。
    发表于 01-17 14:25

    基于Lab Windows/CVI的压力测量控制系统的设计

    设计了一个基于Lab Windows/CVI 的压力测量控制系统,人机交互界面友好,大大提高了压力测量的有效性和准确性。系统由上、下位机两部
    发表于 08-05 11:53 32次下载

    基于Lab Windows/CVI的激光声遥感系统显控软件设

    本文介绍了激光声遥感系统显控软件的功能和设计中的关键技术,并给出其在Lab Windows/CVI环境下的实现方案,总结了基于此种方案的优越性。Wi
    发表于 08-17 10:22 18次下载

    cvi 8.0 下载 (NI LabWindows 电子测量)

    NI LabWindows/CVI 8.0 (电子测量): NI LabWindows CVI 8.0 最新完整版,专业强大的用于测试、测量与控制开发软件!! LabWindows/
    发表于 01-26 09:36 880次下载
    <b class='flag-5'>cvi</b> <b class='flag-5'>8.0</b> 下载 (NI LabWindows 电子测量)

    基于Lab Windows/CVI7.1综合检测系统

    基于Lab Windows/CVI7.1综合检测系统 采用Lab Windows/
    发表于 08-25 00:08 676次阅读
    基于<b class='flag-5'>Lab</b> <b class='flag-5'>Windows</b>/<b class='flag-5'>CVI</b>7.1综合检测<b class='flag-5'>系统</b>

    基于Lab Windows/CVI的激光声遥感系统

    1 引言 Windows操作系统因其卓越的性能已成为各个领域广泛采用的操作系统平台,由于Windows系统底层操作采取了屏蔽的策略,因而对
    发表于 09-24 10:18 1941次阅读
    基于<b class='flag-5'>Lab</b> <b class='flag-5'>Windows</b>/<b class='flag-5'>CVI</b>的激光声遥感<b class='flag-5'>系统</b>

    基于无线传输技术的设备状态监测系统研究

    系统用PTR2000无线传输数据的方式对设备的状态进行监控,减少了数据传输中的干扰,从而提高了传输的可靠性。而且在软件上采用Lab-WindowsCVI强大的数据分析和处理功能,不仅实现
    发表于 04-24 14:31 1733次阅读
    基于无线传输技术的设备状态监测<b class='flag-5'>系统</b>研究

    quartus_11.1_Crack_Windows

    电子发烧友网站提供《quartus_11.1_Crack_Windows.rar》资料免费下载
    发表于 05-13 16:54 9次下载

    LabWindows教程之LabWindows CVI的虚拟仪器设计与应用教材免费下载

    Windows/CVI,以及利用该软件设计虚拟仪器的方法。其主要内容包括:Lab Windows/CVI的开发环境,虚拟仪器常用面板及控件
    发表于 12-03 08:00 115次下载

    CVI实验指导(三)Lab WindowsCVI采集正弦波实验

    信号发生器输出稳定的正弦波,并用开发板采集,再用Lab WindowsCVI的的控件进行波形显示。三、实验步骤:1.打开CVI软件,新建项目。连接开发板。2.在控件面板放入一个Graph控件
    发表于 01-17 11:28 5次下载
    <b class='flag-5'>CVI</b>实验指导(三)<b class='flag-5'>Lab</b> WindowsCVI采集正弦波实验

    CVI实验指导(八)Lab WindowsCVI制作流水灯

    第八章:Lab WindowsCVI制作流水灯文章目录第八章:Lab WindowsCVI制作流水灯一、实验目的:了解CVI中LED控件的使用。二、实验内容:在CVI中模拟出流水灯效果
    发表于 01-17 11:33 3次下载
    <b class='flag-5'>CVI</b>实验指导(八)<b class='flag-5'>Lab</b> WindowsCVI制作流水灯

    CVI实验指导(二) Lab WindowsCVI波形显示实验

    Lab WindowsCVI波形显示实验文章目录Lab WindowsCVI波形显示实验一、实验目的:熟悉Lab WindowsCVI中Timer控件和Strip Chart控件的使用。二、实验内容
    发表于 01-17 11:34 3次下载
    <b class='flag-5'>CVI</b>实验指导(二) <b class='flag-5'>Lab</b> WindowsCVI波形显示实验

    CVI实验指导(五)Lab WindowsCVI单通道AD连续采集并采样

    。二、实验内容:利用信号发生器输出稳定的正弦波,并用开发板采集,再用Lab WindowsCVI的的控件进行波形显示。三、实验步骤:1.打开CVI软件,新建项目。连接开发板。2.在控件面板放入一个Graph
    发表于 01-17 11:42 3次下载
    <b class='flag-5'>CVI</b>实验指导(五)<b class='flag-5'>Lab</b> WindowsCVI单通道AD连续采集并采样