026
电子信息工程-基于FPGA的移相信号发生器设计样本
(样本只提供该系统的基本情况介绍,若需要完整的设计和论文,建议您购买本系统,凡是购买本站系统的,本站均根据您的要求,把系统上的开发信息,题目等修改成符合您的要求)
本系统开发工具:单片机/汇编
本设计包含内容:源代码+毕业论文+开题报告+答辩稿
论文大概:
摘要:本文讨论了基于FPGA芯片的直接数字频率合成器(DDS)的设计方法。因为DDS的实现依赖于高速、高性能的数字器件,使用现场可编程器件FPGA,利用其高速、高性能及可重构性的特性,就能根据需要方便地实现各种不同频率的信号输出。
关键词:直接数字频率合成器,现场可编程门阵列,相位累加器,数/模转换器
Abstract:This paper
talks about the design method of DDS which is based on FPGA chip.
Because the realization of DDS is dependent on digital devices that
are high-speed and high quality, we choose FPGA as an objective
device. Then by using the high-speed, high quality and
re-construction characters of FPGA can conveniently achieve
complicated functions of frequency modulation, phase modulation and
amplitude modulation according to the demand.
Key Words: Direct
Digital Frequency Synthesizer, FPGA, Phase Addition, DAC
2、DDS的基本原理
DDS的基本原理是基于采样定理,通过查表法及D/A转换而合成模拟信号,对于正弦信号,其波形可以用下式来描述。式中 是输出信号,
指输出信号的频率。Sout对于时间 是连续变化的,对上式进行离散化处理,对Sout信号进行抽样,设正弦信号的相位为 在一个时钟周期
内,相位 的变化量应为式中, 为时钟脉冲 的频率,为了对 进行数字量化,把 分割成 份,设每个 周期的相位增量 用量化值 来表示,则 且
为整数,与 的表达式联立,可得 由上式可知,相位增量量化值 与输出频率 为线性关系。当系统时钟 的频率 为 时, 就等于 。
显然,信号发生器的输出可描述为 式中, 为前一个 周期的相位值,同样可以得出
由上面的推导可知,只要对相位的量化值进行简单的累加运算,就可以确定正弦信号的当前相位值,而用于累加的相位增量量化值 决定了信号的输出频率
,并呈简单的线性关系。直接数字频率合成器DDS就是根据这种原理而设计的。
3、DDS的设计结构及工作原理
基本的DDS结构,它主要由相位累加器、相位调制器、正弦ROM查找表、D/A转换器、和低通滤波器组成。
系统时钟
由一个稳定的晶体振荡器产生,用来同步整个合成器的各组成部分。同步寄存器的使用是为了当输入的频率字改变时不会干扰相位累加器的正常工作。相位累加器是整个DDS的核心,它由N位加法器和N位相位寄存器级联构成,类似一个简单的加法器,完成上面推导中的相位累加功能。每来一个时钟脉冲,加法器就将输入的N位频率字与相位寄存器输出的累加相位数据相加,然后将相加后的结果送至相位累加器的输入端,相位寄存器就将在上一个时钟作用后产生的新相位数据反馈到加法器的输入端,以使加法器在下一个时钟的作用下继续将相位数据与输入的频率字相加。当相位累加器累加满量程(
)时,就会产生一次溢出,完成一个周期性的动作,这个周期就是合成信号的一个周期,累加器的溢出频率就是DDS的合成信号频率。
相位调制器接收相位累加器的相位输出,并与一个相位偏移值相加,主要用于信号的相位调制,如PSK(相移键控)等。在不使用时可去掉该部分,或加一个固定的相位字输入。注意相位字输入也要用同步寄存器保持同步,但相位字输入的宽度M与频率字输入N往往是不相等的,一般M<N。&NBSP;
正弦ROM查找表的作用是完成
的查表转换,或理解为相位到幅度的转换。将相位累加器或相位调制器输出的相位数据作为取样地址,来寻找正弦ROM表进行相位到幅度的变换,输出不同的幅度编码。在许多需要幅度的场合,可在正弦ROM查找表后,D/A转换前放置一个采用乘法器实现的幅度控制模块。再经D/A转换器得到相应的阶梯波,最后经过低通滤波器对阶梯波进行平滑处理,得到由输入的频率字决定的连续变化的输出正弦波。在通信中为便于进行正交调制和正交解调,往往需要得到一对正交的正弦波。在用模拟的压控振荡器VCO时,输出一组完全正交的信号较为困难,而对于DDS来说,只要在基本DDS结构中放两个信号正交的ROM查找表即可(如一个放置
表,另一个放置 表)。
由前面的公式推导可得出基本DDS结构的常用参数计算如下:
DDS的输出频率:为频率输入字,其数据位宽度为N。
DDS的频率分辨率: 。
4、DDS的FPGA实现方案
现场可编程门阵列FPGA(Field Programmable Gate
Array),是大规模可编程器件。它具有速度高、规模大、可编程以及有强大的EDA软件设计平台的支持等特性。而DDS的实现依赖于高速、高性能的数字器件,由于通用TTL/CMOS器件工作频率有限,所以选用高速工作特性的FPGA实现DDS是必须的,有效的。
器件采用ALTERA公司的ACEX系列EP1K100QI208-2 芯片.该芯片具有如下主要特性:
(1)
采用查找表(LUT)和嵌入式阵列块(EAB)相结合的结构模式,可提供高效低功耗的优良性能。因为LUT结构适用于实现高速的数据通道、增强型寄存器、数字运算及数字信号处理设计,而EAB结构可以实现复杂的逻辑功能和存储功能。
(2) 高集成度:EP1K100是一个10万门集成度的FPGA芯片,门延时时间仅为2ns,能够实现各种逻辑功能。
(3)
高速度:由于采用先进的CMOS制造技术,因此器件具有非常低的功耗和相当高的速度;采用快速连续并可预测的快速互连通道(FAST
TRACK)以及对芯片内部电路的专业化改进,因此在整个芯片内提供了快速、连续的信号延时,从而增强了系统的性能。
对于Altera
IK100的应用开发使用Altera公司的EDA开发软件(MAXPLUS-II或Quartus-II)。MAXPLUS-II(Quartus-II)是集设计输入、编译处理、逻辑综合、器件适配、软件仿真、编程下载于一体的集成开发环境。它功能齐全,使用简单方便。在本方案中,考虑到使用了2个累加器,根据特定的△f的值,自动地累加产生ROM的地址。本设计的关键点在于根据设计的要求确定存储器地址改变的频率F、输出信号相位累加器的大小及△f的取值。该电路通常采用ROM结构,相位累加器的输出是一种数字式锯齿波,通过取它的若干位作为ROM的地址输入,而后通过查表和运算,ROM就能输出所需波形的量化数据。在原理图中相位累加器调用lpm_add_sub加减法器模拟,相位累加器的好坏将直接影响到整个系统的速度,采用流水线技术能大幅度地提升速度。波形存储器(ROM)通过调用lpm_rom元件实现,其LPM_FILE的值*.mif是一个存放波形幅值的文件。波形存储器设计主要考虑的问题是其容量的大小,它一般由EAB实现。存储器ROM表的尺寸随着地址位数或数据位数的增加成指数递增关系,因此在实际设计时充分利用了信号周期内的对称性和算术关系来减少EAB的开销。
为得到精确的正弦波数据,以用于初始化LPM_ROM元件,有如下两种方法:
(1)在C语言集成开发环境下,编写函数s=sin(atan(1)*8*i/1024);运行程序,在DOS环境下把得到的结果复制到(Memory
Initialization File)(.mif)文件中,这样就完成了ROM的初始化工作。
(2)利用Matlab/DSP
Builder 设计向导工具
先在Matlab simulink
中建立正弦信号发生器的模型,设置好参数,再经过Simulink模型仿真,使用SignalCompiler
把生成的结果转换成VHDL设计文件,接着把这个设计文件用来初始化ROM单元。