已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于 FPGA 的 DDS 正弦波信号源设计 目 录 一、频率合成技术概述及 DDS 性能特点 .4 4 (一) 频率合成技术概述.4 (二) DDS 特点 .5 二、DDS 基本原理.6 6 (一) 波形存储器基本原理.6 (二) DDS 基本原理 .6 (三) DDS 设计中的参数选择 .8 (四) 小结.8 三、DDS 的 VHDL 语言实现.9 9 (一) EDA 技术与 VHDL 语言 .9 (二) DDS 的 FPGA 实现方法 .10 (三) 开发平台.10 (四) 基本 DDS 的 VHDL 实现与仿真.10 四、 提高输出频谱纯度的方法与实验验证 .14 (一) DDS 的频谱纯度提高方法简述 .14 (二) 相位随机抖动原理与 VHDL 实现.15 (三) 频谱纯度提高的实验验证.20 五、程序下载及硬件调试 .2020 (一) FPGA 的配置和下载 .20 (二) 调试与程序固化.21 六、结束语 .2121 七、致谢 .2222 参考文献 .2222 附录 .2323 (一) 各组成模块的 VHDL 程序 .23 1 基于 FPGA 的 DDS 正弦波信号源设计 一、频率合成技术概述及 DDS 性能特点 (一)(一) 频率合成技术概述 频率合成是指由一个或多个频率稳定度和精确度很高的参考信号源通过频率域的线形运 算,产生具有同样稳定度和精确度的大量离散频率的过程。实现频率合成的电路叫频率合成 器,频率合成器是现代电子系统的重要组成部分。它在很多领域都有很广泛的应用。如在通 信、雷达、导航、遥控摇测、电子对抗、以及现代化的仪器仪表的领域,都可以看到频率合 成器的身影,由于它应用领域的广泛,所以人们对它进行了深入的研究。到现在为止,已经 发展到了第三代频率合成技术。 随着电子技术的不断发展,对频率合成器的要求越来越高,频率合成器的主要性能指标 有: 1 输出频率范围 频率范围是指频率合成器输出最低频率和输出最高频率之间的变化范围,它包含中心频 率和带宽两个方面的含义。 2频率稳定度 频率稳定度是指在规定时间间隔内,频率合成器输出频率偏离标定值的数值,它分长期, 短期和瞬间稳定度三种。 3频率间隔 频率间隔是指两个输出频率的最小间隔,也称频率分辨率。 4频率转换时间 频率转化时间是指输出由一个频率转换到另一个频率的时间。 5频率纯度 频率纯度以杂散分量和相位噪声来衡量。杂散又称寄生信号,分为谐波分量和非谐波分 量两种。主要由频率合成过程中的非线形失真产生;相位噪声是衡量输出信号抖动大小的参 数。 6调制性能 调制性能是指频率合成器的输出是否具有调幅、调频、调相等功能。 频率合成器的实现方法有三种:直接模拟频率合成、间接频率合成和直接数字频率合成。 直接模拟频率合成技术是一种早期的频率合成技术,它用一个或几个参考频率源经谐波 发生器变成一系列谐波,再经混频、分频、倍频和滤波等处理产生大量的离散频率。这种方 法的优点是频率转换时间短、相位噪声低,但是由于采用大量的混频、分频、倍频和滤波等 途径,使频率合成器的体积大,成本高,结构复杂,容易产生杂散分量,且难于抑制。 间接频率合成技术又称锁相式频率合成,它是利用锁相技术实现频率的加、减、乘、除。 其优点是由于锁相环路相当于一个窄带跟踪滤波器,因此能很好地选择所需频率的信号,抑 制杂散分量,且避免了大量使用滤波器,十分有利于集成化和小型化。此外,一个设计良好 的压控振荡器具有高的短期频率稳定性,而标准频率源具有高的长期频率稳定度,锁相式频 率合成器把这两者结合在一起,使其合成信号的长期频率稳定度和短期频率稳定度都很高。 但锁相式频率合成器的频率转换时间较长,单环频率合成器的频率间隔不可能做得很小。 直接数字频率合成(DDSDigital Direct Frequency Synthesis)技术是一种全新的 频率合成方法,是频率合成技术的一次革命。这种技术首先由美国学者 J 2 .Tierny,C.M.Rader 和 B.Gold 三人于 1971 年首次提出,但限于当时的技术和工艺水平,DDS 技术仅仅在理论上进行了一些探讨,而没有应用到实际中去。随着微电子技术的迅速发展, 直接数字频率合成(DDSDigital Direct Frequency Synthesis)得到了飞速发展,它以 有别于其它频率合成方法的优越性能和特点成为现代频率合成技术中的佼佼者。具体体现在 相对带宽宽、频率转换时间短、频率分辨率高、输出相位连续、可产生宽带正交信号及其他 多种调制信号、可编程和全数字化、控制灵活方便等方面,并具有极高的性价比。 (二) DDS 特点 DDS 是一种全数字化的频率合成器,由相位累加器、波形 ROM、D/A 转换器和低通滤波器 构成。时钟频率给定后,输出信号的频率取决于频率控制字,频率分辨率取决于累加器位数, 相位分辨率取决于 ROM 的地址线位数,幅度量化噪声取决于 ROM 的数据位字长和 D/A 转换器 位数。 DDS 在相对带宽、频率转换时间、相位连续性、正交输出以及集成化等一系列性能指标方 面远远超过了传统频率合成技术所能达到的水平,为系统提供了优于模拟信号源的性能。 它的一些优点如下: 1.输出频率相对带宽较宽 输出频率带宽为 50%(理论值)。但考虑到低通滤波器的特性和设计难度以及对输出信号 杂散的抑制,实际的输出频率带宽仍能达到 40%。 2.频率转换时间短 DDS 是一个开环系统,无任何反馈环节,这种结构使得 DDS 的频率转换时间极短。事实上, 在 DDS 的频率控制字改变之后,需经过一个时钟周期之后按照新的相位增量累加,才能实现 频率的转换。因此,频率转换时间等于频率控制字的传输,也就是一个时钟周期的时间。时 钟频率越高,转换时间越短。DDS 的频率转换时间可达纳秒数量级,比使用其它的频率合成方 法都要短数个数量级。 3.频率分辨率极高 若时钟的频率不变,DDS 的频率分辨率就是由相位累加器的位数 N 决定。只要增加相位累 加器的位数 N 即可获得任意小的频率分辨率。目前,大多数 DDS 的分辨率在 1Hz 数量级,许 多小于 1mHz 甚至更小。 4.相位变化连续 改变 DDS 输出频率,实际上改变的是每一个时钟周期的相位增量,相位函数的曲线是连 续的,只是在改变频率的瞬间其频率发生了突变,因而保持了信号相位的连续性。 5.输出波形的灵活性 只要在 DDS 内部加上相应控制如调频控制 FM、调相控制 PM 和调幅控制 AM,即可以方便 灵活地实现调频、调相和调幅功能,产生 FSK、PSK、ASK 和 MSK 等信号。另外,只要在 DDS 的波形存储器存放不同波形数据,就可以实现各种波形输出,如三角波、锯齿波和矩形波甚 至是任意的波形。当 DDS 的波形存储器分别存放正弦和余弦函数表时,既可得到正交的两路 输出。 6.其他优点 由于 DDS 中几乎所有部件都属于数字电路,易于集成,功耗低、体积小、重量轻、可靠 性高,且易于程控,使用相当灵活,因此性价比极高。 DDS 也有局限性,主要表现在: 1.输出频带范围有限 由于 DDS 内部 DAC 和波形存储器(ROM)的工作速度限制,使得 DDS 输出的最高频有限。 目前市场上采用 CMOS、TTL、ECL 工艺制作的 DDS 芯片,工作频率一般在几十 MHz 至 400MHz 左右。采用 GaAs 工艺的 DDS 芯片工作频率可达 2GHz 左右。 2.输出杂散大 由于 DDS 采用全数字结构,不可避免地引入了杂散。其来源主要有三个:相位累加器相 3 位舍位误差造成的杂散;幅度量化误差(由存储器有限字长引起)造成的杂散和 DAC 非理想 特性造成的杂散。 二、DDS 基本原理 (一)波形存储器基本原理 波形存储器(ROM) 地址译码 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 可寻址空间 2 N 在 2个单元内存储 N 一个周期的波形 图 1 ROM 内部存取数原理 DDS 采用的是全数字结构,它将用一定的算法预先把以时钟频率对正弦信号进行抽样得到 的值放存储器中。这里以 ROM 为例。如果 ROM 有 N 条地址线,则这个存储器的存储空间为 2。存储器中的数据与波形的关系如图 1 所示。假如在 2个存储单元内存放了一个周期的 NN 正弦波形数据,则每个单元内的数据就表示正弦值的大小,这种存储器称为波形数据存储器。 如果重复地从 02-l 单元读出波形数据存储器中的数据,在波形数据存储器的输出端就会 N 得到周期的正弦序列。此时得到的数据是抽样量化后的正弦信号。如果将周期的正弦序列输 入到 D/A 转换器,则会在 D/A 转换器的输出端得到连续的正弦电压或电流。输出序列的周期 是由时钟周期来确定的。设时钟周期为 T,且 ROM 的地址长度为 2,则输出信号的周期为 clk N T=2 T。这说明输出信号的周期与时钟周期成正比,时钟频率越高,读取信号一个周 out N clk 期时间越短,信号频率越高。 (二) DDS 基本原理 对于正弦信号发生器,它的输出可以用下式来描述: S=Asint=Asin(2ft) (1) OUT out 其中 S是指该信号发生器的输出信号波形,f是指输出信号对应的频率。上式的表达对 OUT out 于时间 t 是连续的,为了用数字逻辑式实现该表达式,必须进行离散化处理,用基准时钟 clk 进行抽样,令正弦信号的相位: =2ft (2) out 4 在一个 clk 周期 T ,相位 的变化量为: clk =2fT= (3) outclk clk out f f2 其中 f 是指 clk 的频率对于 2 可以理解为“满”相位,为了对 进行数字量化,把 clk 2 切割成 2份,由此每个 CLK 周期的相位增量 用量化值 B来描述: N B2 , 且 B为整数。与式(3)联立。可得 2 N clk out N f f B 2 B=2 (4) N clk out f f 显然,信号发生器的输出可能为: S=Asin(+)=Asin(B+ B) OUT 1k N 2 2 1k =Af(B+ B) (5)sin 1k 其中 指前一个 clk 周期的相位值,同样得出 1k B2 (6) 1k 2 1kN 由上面的推导,可以看出,只要对相位的量化增量进行简单的累加运算,就可以得到正 弦信号的当前值,而用于累加的相位增量量化值 B决定了信号的输出频率 f,并呈现简单 out 的线形关系。直接数字合成器 DDS 就是根据上述原理而设计的数字控制频率合成器。 频 率 控 制 字 相 位 累 加 器 正弦查表 (ROM) D/A 参考时钟源 图 2 基本 DDS 结构 如图 2 所示的是一个基本的 DDS 结构,主要由相位累加器、同步寄存器、正弦 ROM 查找 表、D/A 构成。相位累加器是整个 DDS 的核心,在这里完成上文原理推导中的相位累加功能。 5 相位累加器由 N 位加法器与 N 位累加寄存器级联构成。相位累加器的输入是相位增量 B, 又由于 B与输出频率 f是简单的线形关系:B=2。相位累加器的输入即相位增 out N clk out f f 量又可以称为频率控制字,用 K 来表示。每来一个时钟脉冲 f,加法器将频率字 k 与累加 clk 寄存器输出的累加相位数据相加,把相加后的结果送到累加寄存器的数据输入端,以使加法 器在下一个时钟脉冲的作用下继续与频率控制字相加。这样,相位累加器在时钟作用下,不 断对频率控制字进行线性相位累加。由此可以看出,相位累加器在每一个时钟输入时,把频 率控制字累加一次,相位累加器输出的数据就是合成信号的相位,相位累加器的输出频率就 是 DDS 输出的信号频率。K 的大小控制了地址加法器输出的递增速率。在此设计中,把 K 设计 成可变值,增加了频率控制的灵活性。其中,K 的最小为 1,最大为 511。在时钟频率 f不 clk 变的情况下,K 的大小控制了 D8D0 从最小到最大变化所用的时间。K 大,每次运算的结果 较前一次的数据增长就大,因而地址数据循环一周所需时间就短,这意味着 D/A 转换器输出 的波形频率就高。反之则相反。 用相位累加器输出的数据作为波形存储器(ROM)的相位取样地址。这样就可把存储在波 形存储器内的波形抽样值(二进制编码)经查找表查出,完成相位到幅值转换。波形存储器 的输出送到 D/A 转换器,D/A 转换器将数字量形式的波形幅值转换成所要求合成频率的模拟量 形式信号。低通滤波器用于滤除不需要的取样分量,以便输出频谱纯净的正弦波信号。 (三) DDS 设计中的参数选择 一般而论,DDS 的组成形式如图 2 所示。 图中波形数据存储器的全部数据被读出一次的频率为: f=K (7) N clk f 2 式中: f:波形数据存储器输出信号的频率; N:地址加法器的数据宽度; K: 频率控制字; f:系统的时钟频率; clk (四)小结 综上所述,DDS 由以下两次变换实现: 1.从不变量 K 以时钟 f产生量化的相位序列。 clk 这个过程一般由一个以 f作时钟的 N 位相位累加器来实现。如图 3 所示 clk 累 加 器频率控制字 N 位 寄 存 器相位量化序列 图 3 产生相位序列的过程 2.从离散量化的相位序列产生对应的正弦信号的离散幅度序列。 6 这个过程可由对波形 ROM 的寻址来完成,如图 4 所示。 相位量化序列波 形 ROM 正弦幅度序列 图 4 产生正弦幅度序列的过程 把量化的数字波形经 D/A 转换,再经过低通滤波器就得到频率为 f 的正弦信号。 不变量 K 被称为相位增量,也叫频率控制字。当 K=1 时,DDS 输出最低频率(也即频率 分辨率)为,因此,只要 N 足够大,DDS 可以得到很细的频率间隔。要改变 DDS 输出频 N clk f 2 率,只要改变 K 即可。 DDS 的最大输出频率由 Nyquist 采样定理决定,即为。 2 clk f 三、DDS 的 VHDL 语言实现 (一) EDA 技术与 VHDL 语言 1EDA 技术 现代电子设计的核心是 EDA(Electronic Design Automation)技术。它是一种实现电子 系统或电子产品自动化设计的技术,它与电子技术、微电子技术的发展密切相关,它吸收了 计算机领域的大多数最新研究成果,以高性能的计算机作为工作平台,是 20 世纪 90 年代从 CAD(Computer Aided Design,计算机辅助设计)、CAM (Computer Aided Manufacture,计算 机辅助制造)、CAT (Computer Aided Test,计算机辅助测试)和 CAE (Computer Aided Engineering,计算机辅助工程)的概念发展起来的。 EDA 工具是以计算机的硬件和软件为基本工作平台,集数据库、图形学、图论与拓扑逻辑、 计算数学、优化理论等多学科最新成果研制而成的计算机辅助设计通用软件包。它依赖功能 强大的计算机,在 EDA 工具软件平台上,对以硬件描述语言 HDL(Hardware Description Language)为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、逻辑化简、逻辑分 割、逻辑综合、结构综合(布局布线) ,以及逻辑优化和仿真测试,直至实现既定的电子硬件 电路系统功能。EDA 技术使得设计者的工作仅限于利用软件的方式,即利用硬件描述语言和 EDA 软件来完成对系统硬件功能的实现。 EDA 技术和可编程逻辑器件给今天的硬件系统设计者提供了强有力的工具,使得电子系统 发生了质的变化。传统的“固定功能集成块+连线”的设计方法正逐步地退出历史舞台,而基 于芯片的设计方法正在成为现代电子系统的主流。 2VHDL 语言 硬件描述语言(HDL-Hardware Description Language) 是一种用形式化方法来描述数字 电路和设计数字逻辑系统的语言。它可以使数字逻辑电路设计者利用这种语言来描述自己的 设计思想,然后利用 EDA 工具进行仿真,再自动综合到门级电路,再用 PLD 或 ASIC 实现其 功能。 硬件描述语言的发展至今己有 20 多年的历史,并成功地应用于设计的各阶段:仿真、 验证、综合等。到 20 世纪 80 年代时,已出现了上百种硬件描述语言,它们对设计自动化起 到了极大的促进和推动作用。但是,这些语言一般各自面向特定的设计领域与层次,而且众 多的语言使用户无所适从,因此急需一种面向设计的多领域、多层次、并得到普遍认同的标 准硬件描述语言。进入 80 年代后期,硬件描述语言向着标准化的方向发展。最终,VHDL 和 Verilog HDL 语言适应了这种趋势的要求,先后成为 IEEE 标准。 VHDL 诞生于 1982 年,它的英文全名是 VHSIC Hardware Description Language,而 7 VHSIC 则是 Very High Speed Integerated Circuit.的缩写词,意为甚高速集成电路。 1987 年,VHDL 被 IEEE 和美国国防部确认为标准硬件描述语言。自 IEEE 公布了 VHDL 的标准 版本(IEEE-1076 )之后,各 EDA 公司相继推出了自己的 VHDL 设计环境,或宣布自己的设计 工具可以和 VHDL 接口。1993 年,IEEE 对 VHDL 进行了修订,从更高的抽象层次和系统描述 能力上扩展 VHDL 的内容,公布了新版本的 VHDL,即 IEEE 标准的 1076-1993 版。 VHDL 主要用于描述数字系统的结构、行为、功能和接口。除了含有许多具有硬件特性 的语句外,VHDL 的语言形式、描述风格与句法是十分类似于一般的计算机高级语言。VHDL 的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个 系统)分成外部(或称可视部分,即端口)和内部(或称不可视部分,即涉及实体内部功能和算 法的完成部分)。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设 计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是 VHDL 系统设计的基本 点。 (二) DDS 的 FPGA 实现方法 虽然目前市场上有较多功能完备的 DDS 芯片,但是一般属于高速芯片,价格较高,同时 专用型的 DDS 控制方式相对固定。在低速应用方面利用 FPGA 设计则可以根据需要方便地实现 各种比较复杂的功能,具有良好的灵活性。因此本文采用了 FPGA 设计 DDS 芯片,利用软件 MaxPlusII 就可以设计我们需要的功能模块。本系统硬件设计中,采用的时钟频率是 10MHz, 使用了 EPF10K20TC144-4 的 FPGA。在该芯片上,通过 VHDL 硬件描述语言设计完成以下功能的 模块及相关控制单元,最后把这些模块连接起来构成一个完整系统就可实现 DDS。主要有: 可控相位累加累减器; 判决控制器; 寄存器; M 序列发生器; 延时器; (三)开发平台 DDS 技术的实现依赖于高速、高性能的数字器件。可编程逻辑器件以其速度高、规模大、 可编程,以及有强大 EDA 软件支持等特性,十分适合实现 DDS 技术。在一般的设计开发中, 我们常使用由 PLD 公司提供的集成 EDA 软件,这些集成的开发软件提供了设计输入编辑器、 HDL 综合器、FPGA/CPLD 适配器、门级仿真器和编程下载器等一整套完整的开发工具,如 Lattice 的 ISP-LEVER 和 ISP-Design EXPERT, Altera 的 MaxPlus II 和 Quarters II、Xilinx 的 ISE 和 Foundation 等。 Altera 是著名的 PLD 生产厂商,多年来一直占据着行业领先的地位。Altera 的 PLD 具有 高性能、高集成度和高性价比的优点,此外它还提供了功能全面的开发工具和丰富的 IP 核、 宏功能库等,因此 Altera 的产品获得了广泛的应用。Altera 的产品有多个系列,按照推出的 先后顺序依次为 Classic 系列、MAX(Multiple Array Matrix)系列、 FLEX(Flexible Logic Element Matrix)系列、APEX(Advanced Logic Element Matrix) 系列、ACEX 系列、Stratix 系列以及 Cyclone 等。 Maxplus II 是 Altera 提供的 FPGA/CPLD 开发集成环境。它是一个完整的 EDA 开发软件, 可完成从设备输入、编译、逻辑综合、器件适配、设计仿真、定时分析、器件编程的所有过 程。Maxplus II 界面友好,使用便捷,被誉为业界最易学的 EDA 软件。它提供了一种与结构 无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程。我们在此设计中 就是利用的 MaxPlusII 这个软件。 (四)基本 DDS 的 VHDL 实现与仿真 在此设计中,利用了正弦信号在不考虑信号的极性的情况下,四分之一周期能够包含一个 周期内的所有内容的原理。因此,本文中在 ROM 中只储存了正弦波四分之一周期的采样值,采 用 VHDL 语言编写出控制语言,并结合硬件,实现了通过 D/A 转换器就能恢复出正确的正弦值 8 的系统功能。由于仅仅储存了正弦波四分之一周期的采样值,提高了 ROM 的利用率,从而提 高了频率分辨率。在此设计思想上,设计出了以下几个部分实现 DDS 的功能。 1.实现判决控制功能的模块 由于选用的 FPGA 芯片 EPF10K20TC144-4 中 ROM 的最大容量为 12.288Kbit,有两个 ROM 每个 ROM 宽度为 8bit,各为 6.144Kbit。在本设计中只需要一个 ROM,因此可以把它们合并起 来构成 16 比特储存宽度。由此可得到地址线的长度为 2=6144/8=768 N N9.58 N 可取 9 以上计算表明可以在 ROM 中最大存入 768 个查找点.本文中为了方便,取 512 个点,这个 值刚好是 29将大大方便后面的设计。实验表明要达到最大 768 个点,编译时要出错,该选用 的 FPGA 的 EAB 单元还不足够。. 由于设计思路是在 ROM 中只存入四分之一周期的数据,这样可以提高采样点数,使输出 频率范围更宽。因此,设计了一个实现判决控制功能的模块。在此模块中,实现的功能是对 输入的时钟进行计数并通过与除法器输出的数据比较并判决,由判决的结果控制相位累加累 减器的加减计数功能同时输出控制信号控制输出信号的符号,因此利用 VHDL 语言设计出了可 实现此功能的模块。仿真结果如图 5 所示。可以看出,通过频率控制字的控制,输出端输出 了控制累加累减的信号“enable”以及控制符号的信号“zhengfu” 。所以此模块可以实现记 数及判决功能。 判决控制模块部分程序: cc: process(clk,cout) begin if clkevent and clk=1then if cout=000 then enable=0; elsif cout=001 then enable=1; elsif cout=010 then enable=0; elsif cout=011 then enable=000 and cout=001 then zhengfu001 and cout=011 then zhengfu=0; else null; end if; end if; end process cc; 图 5 判决控制模块仿真图 9 2.可控累加累减器 在此模块中,受判决器模块输出信号的控制可实现累加或累减的功能。这样就可以实现 用四分之一周期表示完整正弦周期的信号特征。如图 6、图 7、图 8 及图 9 所示,当频率控制 字“freqin”不同时,累加累减的速度不同;当累加累减信号“enable”不同时,系统的功 能也不同,即当“enable”为0时,实现累加功能,当“enable”为1时,实现累减 功能。 可控累加累减器部分程序: process(clk1) begin if res=1 then acc=000000000; else if clk1event and clk1=0 then freqw=freqin; if enable1 =0then acc=acc+freqw; elsif enable1 =1 then acc=acc-freqw; else acc0); end if; end if; end if; ddsout=acc; end process; 图 6 频率控制字为 2,enable 为0时的累加器以 2 做累加仿真图 图 7 频率控制字为 2,enable 为1时的累减器以 2 做累减仿真图 图 8 频率控制字为 4,enable 为0时累加器以 4 做累加仿真图 10 图 9 频率控制字为 4,enable 为1时的累减器以 4 做累减仿真图 由以上几个仿真图可以知道累加累减器设计是正确的。 3.寄存器 在设计中引入了一个寄存器寄存相位累加累减器输出的数据,可以减小误差。寄存器仿 真结果如图 10 所示,表明此模块可以实现寄存的功能。 图 10 寄存器仿真图 4.ROM 查找表的建立及除法模块的设计 在 DDS 中,需要在 ROM 中预先存入正弦信号的采样点值。所以首先需要建立 ROM 查找表。 利用 MATLAB 语言可以很简单精确的得到抽样点值。具体程序如下: i=0:1:512; y=round(sin*65535) 2 pi 512 i 在 MaxPlusII 中,有一个参数可设置模块库(LPMLibrary of Parameterized Modules) ,该库可以以图形或硬件描述语言的方式调用,这使得基于 EDA 技术的电子设计的 效率和可靠性有了很大提高。在此设计中,调用了其中的 LPM_ROM 函数。根据所设计的系统 对 LPM_ROM 的参数进行设置,同时为 ROM 配置数据文件。利用 MATLAB 工具产生 512 点查表数 据,再把该数据映射到 ROM 配置文件中,就可以实现正确调用 LPM_ROM。另外,在设计中还调 用了 LPM 库中的 LPM_divide 模块,输出的数作为判决控制器的输入,实现判决控制器的功能。 5.数控分频器 数控分频器的功能就是当在输入端给定不同输入数据时,将对输入的时钟信号有不同的 分频比。这里采用的方法就是用计数值可并行预置的加法计数器设计完成的,方法是将计数 溢出位与预置数加载输入信号相接即可。如图 11 所示,当控制位D不同时,输出的频率 “FOUT”也不同。图 12、图 13 显示了不同控制位时的分频比。 11 图 11 分频器的波形仿真图 图 12 当为四分频时的波形仿真图 图 13 十分频时的波形仿真图 6.顶层文件 一个程序只可以有一个顶层文件,其他文件都是间接或直接进行调用的。在此设计中, 为 DDS 的主体部分设计了一个顶层模块,这样在设计系统模块时方便调用。该顶层模块的仿 真结果如图 14、图 15 所示,当频率控制字不同时,输出的“data”改变速度不同,从而实现 输出频率不同的正弦波的系统功能。 图 14 顶层文件仿真图(频率控制字为 2 时) 图 15 顶层文件仿真图(频率控制字为 4 时) 12 四、 提高输出频谱纯度的方法与实验验证 (一)DDS 的频谱纯度提高方法简述 实际系统中常常要考虑 DDS 的频谱纯度,频谱纯度不高这是 DDS 的最大缺点之一。这往 往限制了 DDS 在更多场合下的应用。分析原因可知,主要是由于 DDS 是全数字化结构,它的 工作原理使得 DDS 中不可避免地存在幅度量化误差,相位截断误差等因素,从而引起输出频 谱变坏。 对于降低杂散功率的方法,目前研究的已比较多,归纳起来主要有三种。 第一种方法是优化设计波形 ROM 和相位累加器。为了降低相位截断误差,需要增加波形 ROM 的地址线位数,但地址线位数增加一位,ROM 的容量就要增加一倍,因此一味增加地址线 位数是不切实际的,可以通过压缩存储数据来等效地增大 ROM 数据寻址位。压缩 ROM 方法可 以采用插值算法,在采样点之间通过算法实现插入多个点,从而扩大查找表的有效点数。最 简单而直接的方法即只保存正弦波0,/2区间的数据,然后利用对称性来恢复其它象限的 数值,这样一来可得到 4:1 的数据压缩比。 第二种提高频谱纯度的方法是用随机抖动法提高无杂散动态范围。由于 DDS 的周期性, 输出杂散频谱往往表现为离散谱线,随机抖动技术使离散谱线均匀化,从而提高输出频谱的 无杂散动态范围。图 16,17 所示的是两种常见的随机抖动技术。 还有一种方法是以过采样的方法降低带内误差功率,当量化噪声为白噪声时其功率是均 匀分布在 0 f clk. / 2 频带内的 (f clk为采样频率) ,如果提高采样频率,则在原先频带 内的噪声功率将降低,通过低通滤波器后,带外噪声被滤除,频谱将得到改善。但是这个方 法会降低 DDS 的工作频率。 通过对三种方法的比较,本文采用了压缩存储数据和随机抖动技术相结合的方法来提高 频谱纯度的方法。在第三章已经介绍了压缩存储数据的方法,本章主要讨论随机抖动技术的 方法。 相 位 累 加 器 抖 动 序 列 波 形 ROM B=N-AA N 图 16 一种采用相位随机抖动序列提高频谱纯度的方案 波 形 ROM 抖 动 序 列 D/A 转换器 图 17 一种采用幅度随机抖动序列提高频谱纯度的方案 (二)相位随机抖动原理与 VHDL 实现 1.相位随机抖动原理分析 理论分析表明抖动技术可以有效地提高无杂散动态范围或降低杂散分量。随机抖动可以 13 提高 DDS 的输出无杂散动态范围,在于它破坏了杂散的相关性,把离散的强度较大的杂散谱 白化。抖动的方法有好几种,如抖动频率控制字,抖动波形 ROM 的地址和抖动正弦波幅度。 频率控制字抖动时,每次抖动前应把上一次的抖动减掉,否则抖动将在相位累加器中积累, 产生频率调制,因此这种抖动实现起来电路复杂。把伪随机抖动加入在相位累加器输出端 (见图 16) ,从而可以达到提高 DDS 频谱纯度的目的,这个方法的另一个好处是不会降低 DDS 工作的速度。本文利用的是抖动波形 ROM 的地址的方法。 相位抖动的原理图如图 16 所示。抖动源可以看成是一个在0,2 -1上均匀分布的随机 R 序列 r (n) ,相位累加器输出的相位序列 (n)和抖动序列 r (n)相加后再进行相位截 PP 断。DDS 的输出序列 S (n)为: P S (n)=sin(nK)-e(n)cos(nK) (8) P N 2 2 N 2 2 N 2 2 其中 e(n)=e (n)+r (n)为总的相位截断误差。 PP 因为 r (n)有 2 个取值,2 个取值中小于 2 - e (n)的有 2 - e (n)个,而当 P RRR P R P r (n)小于 2 - e (n)时,有 e (n)+r (n)2 ,抖动后不对相位截断起作用。此 P R PPP R 时,总的相位截断误差 e(n)=e (n) ,因此 e(n)=e (n)的概率 P 为: PP1 P = (9) 1 R P R ne 2 )(2 同理当 r (n)2 - e (n)时,有 e (n)+r (n)2 ,抖动后对相位截断起作 P R PPP R 用,此时总的相位截断误差 e(n)=e (n)-2 ,其概率 P为: P R 2 P= (10) 2 R P ne 2 )( 由上两式,对于所有 n,总的相位截断误差的均值为: Ee(n)=e (n)+(e (n)-2 ) P R P R ne 2 )(2 P R R P ne 2 )( =0 (11) 总的相位截断误差方差为: Ee (n)=e (n)+(e (n)-2 ) 22 P R P R ne 2 )(2 P R2 R P ne 2 )( =(2 - e (n) )e (n) (12) R PP 在相位截断误差的最坏情况是 GCD(K,2 )=1,此时 e (n)的一个周期取到了 R P 0,2 -1内的所有值,因此,由上式,误差功率的平均值为: R 14 e (n)= E 1 2 R 2 1 12 0 )2( R n R nn = (13) 6 122 R 有相位截断误差时最好的情况是 GCD(K,2 )=2,此时 e (n) R1R P =2,0,2,0,。由上,误差功率的平均值为: 1R1R e (n)=0+(2 -2)2 E u 2 2 1 R1R1R = (14) 8 22R 根据式(8) ,可求得有相位截断误差时的信噪比上限 SNR和下限 SNR 分别为:u 1 SNR=6A-6.9(dB) u SNR =6A-8.2(dB) (15) 1 已知在未加入相位噪声时信噪比的上限 SNR 和下限 SNR 分别为 pd SNR =-6A+8.2(dB) p SNR =-6D-4.8(dB) (16) d (其中 A 与 D 取值相互关联,A=2+D) 式(15)和式(16)相比可知,相位抖动后相位截断误差功率没有变化,但是由于抖动打 破了相位截断误差的周期性,误差功率谱由原来的离散谱线变成了均匀分布的宽带噪声,从 而提高了信号噪声功率谱密度比,即提高了无杂散动态范围。 M 序列是最长周期线形反馈移位寄存器序列,它具有良好的伪随机特性,其功率谱类似 白噪声,是产生抖动序列的较好信号源,为此可以构建一个长周期的 M 序列作为抖动源。把 它附加在累加器输出低位地址上就可实现相位的随机抖动。 在 FPGA 中实现 M 序列是很容易的,一个生成多项式为:的 M 序列构成数1)( 47 xxxs 据加扰器原理见图 18,此多项式在 WLAN 中已有实际应用。 15 DDDDDDD 数据入数据出 图 18 抖动序列的实现原理 这个加扰器,由 7 个 D 触发器和一个异或门构成,可以产生周期为 127 的重复序列,对 于 DDS 的 ROM 点数来说 127 这个值仍旧太小,本文使用了生成多项式为: 1)( 220 xxxs 的 M 序列,可以产生脉冲为周期的序列。这个伪随机序列要在查找 ROM 很多10485751220 个周期后才会重复,因此其随机性相当好。 设计中要注意的是,若上电时所用的 D 触发器都置 0,则 M 序列将无法工作,本文中用了 两组 M 序列,采用相同的生成多项式,分别加在累加器输出的低 2 位地址上。利用上电复位 把两组 M 序列初始状态分别置于“000000000000000001”和00000000000000000011状态, 这样避免了不能正常工作的困难,同时它们的输出也不会相同。 2,VHDL 语言实现 通过 VHDL 语言可以很方便的设计出 M 序列发生器,但是在设计中要考虑 M 序列与系统接 口的问题。M 序列接入系统的原理图见图 19。如图所示,首先要考虑 M 序列改变原采样地址 后的时间匹配问题。首先 M 序列并不需要在每次时钟到来时都改变原地址,所以首先对时钟 频率分频,由分频后的时钟对 M 序列进行控制。其次,M 序列与原地址相加后,使地址发生偏 移,所以需要加入一个由 M 序列控制延时时间的延时器,延时后的地址才是正确的。M 序列波 形仿真如图 20 所示,由图可以看出,模块输出了周期很长的 M 序列“Dout1”和“DOUT2” , 并且由于对它们设置了不同的初始值,所以得到的波形也不相同。延时后的输出地址仿真图 如图 21 所示。由图可以看出,M 序列使输出地址产生了延时,同时当 M 序列输出值不同时, 延时时间也不同,从而保证了系统的正确性。其功能相当于实现正弦信号的非均匀抽样后再 输出。 M 序列发生器模块部分程序: architecture one of sequence is signal q1: std_logic_vector(19 downto 0); signal q2: std_logic_vector(19 downto 0); begin Dout= q1(0) process(clk,reset) begin if reset=1 then q1=00000000000000000001; 16 q2=00000000000000000011; else if clkevent and clk=1 then M_loop: for i in 0 to 18 loop q1(i+1)=q1(i); q2(i+1)=q2(i); end loop M_loop; q1(0)=q1(19) xor q1(2); q2(0)=q2(19) xor q2(2); end if; end if; end process; end one; 延 时 4 分频时钟序列 原 地 址 M 序列发生器 ROM 存储 器 图 19
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机械制造管理考核制度
- 宁波教师定期考核制度
- 医院医生考试考核制度
- 劳动仲裁绩效考核制度
- 2025少先队考核制度
- 更衣室清洁员考核制度
- 焦化皮带设备考核制度
- 班主任管理 考核制度
- 医院基本药物考核制度
- 岗前业务知识考核制度
- (2026年)中华护理学会团体标准2024针刺伤预防与处理课件
- 非煤矿山复工安全培训
- 银行礼仪规范制度规定
- 护理核心制度实践指南
- 工厂安全生产三级培训课件
- 2025四川安吉物流集团有限公司下半年招聘工作人员11人(二)笔试历年参考题库附带答案详解
- 2026届广东省东莞市三校英语高三上期末学业质量监测模拟试题含解析
- 2026年中学生生物奥林匹克竞赛试题
- 严厉的主奴协议书
- 2025年10月自考15040习概论试题及答案
- 医保管理制度、财务制度、统计信息管理制度、医疗质量安全核心制度
评论
0/150
提交评论