设计实验2:多功能函数信号发生器一、摘要任意波形发生器是不断发展的数字信号处理技术和大规模集成电路工艺孕育出来的一种新型测量仪器,能够满足人们对各种复杂信号或特殊信号的需求,代表了信号源的发展方向。
可编程门阵列(FPGA)具有高集成度、高速度、可重构等特性。
使用FPGA来开发数字电路,可以大大缩短设计时间,减小印制电路板的面积,提高系统的可靠性和灵活性。
此次实验我们采用DE0-CV开发板,实现函数信号发生器,根据按键选择生产正弦波信号、方波信号、三角信号。
频率范围为10KHz~300KHz,频率稳定度≤10-4,频率最小不进10kHz。
提供DAC0832,LM358。
二、正文1.方案论证基于实验要求,我们选择了老师提供的数模转换芯片DAC0832,运算放大器LM358以及DE0-CV开发板来实现函数信号发生器。
DAC0832是基于先进CMOS/Si-Cr技术的八位乘法数模转换器,它被设计用来与8080,8048,8085,Z80和其他的主流的微处理器进行直接交互。
一个沉积硅铬R-2R 电阻梯形网络将参考电流进行分流同时为这个电路提供一个非常完美的温度期望的跟踪特性(0.05%的全温度范围过温最大线性误差)。
该电路使用互补金属氧化物半导体电流开关和控制逻辑来实现低功率消耗和较低的输出泄露电流误差。
在一些特殊的电路系统中,一般会使用晶体管晶体管逻辑电路(TTL)提高逻辑输入电压电平的兼容性。
另外,双缓冲区的存在允许这些DAC数模转换器在保持一下个数字词的同时输出一个与当时的数字词对应的电压。
DAC0830系列数模转换器是八位可兼容微处理器为核心的DAC数模转换器大家族的一员。
LM358是双运算放大器。
内部包括有两个独立的、高增益、内部频率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件下,电源电流与电源电压无关。
它的使用范围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运算放大器的场合。
LM358的封装形式有塑封8引线双列直插式和贴片式。
本次实验选用的FPGA是Altera公司Cyclone系列FPGA芯片。
Cyclone V系列器件延续了前几代Cyclone系列器件的成功,提供针对低成本应用的用户定制FPGA特性,支持常见的各种外部存储器接口和I/O协议,并且含有丰富的存储器和嵌入式乘法器,这些内嵌的存储器使我们在设计硬件电路时省去了外部存储器,节省了资源,而其硬件乘法器资源则非常适合用来实现高速DDS调制器。
另外,Cyclone V系列器件使用极低的1.2V内核电压,大大降低了芯片的功耗。
在本文的设计中,FPGA对内主要实现DDS的功能,对外主要为外围器件提供控制信号和数据总线接口。
除了上述元器件以及相对应的软件的使用,我们要对经过DAC0832数模转换器输出的波形进行放大之后再进行低通滤波,以避免外界环境的干扰和系统内部元器件在工作时产生的噪声。
2.理论分析与计算DDS原理:①DDS原理的背景1973年,J.Tiemey和 C.M.Tader等人在《A Digital Frequency Synthesizer》一文中首次提出了DDS的概念,但限于当时的技术条件,DDS并没有引起人们的足够重视。
上世纪90年代以来,随着数字集成电路和微电子技术的发展,DDS技术的优越性才日益体现出来。
②DDS的基本结构DDS与大多数的数字信号处理技术一样,它的基础仍然是奈圭斯特采样定理。
奈圭斯特采样定理是任何模拟信号进行数字化处理的基础,它描述的是一个带限的模拟信号经抽样变成离散值后可不可以由这些离散值恢复原始模拟信号的问题。
奈圭斯特采样定理告诉我们,当抽样频率大于或者等于模拟信号最高频率的两倍时,可以由抽样得到的离散信号无失真地恢复出原始模拟信号。
只不过在DDS技术中,这个过程被颠倒过来了。
DDS不是对模拟信号进行抽样,而是一个假定抽样过程已经发生且抽样值已经量化完成,如何通过某种方法把已经量化的数值重建原始信号的问题。
DDS电路一般由参考时钟、相位累加器、波形存储器、D/A转换器(DAC)和低通滤波器(LPF)组成。
其结构框图如下图所示:o其中,f为参考时钟频率,K为频率控制字,N为相位累加器位c数,A为波形存储器位数,D为波形存储器的数据位字长和D/A转换器位数。
DDS系统中的参考时钟通常由一个高稳定度的晶体振荡器来产生,用来作为整个系统各个组成部分的同步时钟。
频率控制字(Frequency Control Word,FCW)实际上是二进制编码的相位增量值,它作为相位累加器的输入累加值。
相位累加器由加法器和寄存器级联构成,它将寄存器的输出反馈到加法器的输入端实现累加的功能。
在每一个时钟脉冲,相位累加器把频率字累加一次,累加器的输出相应增加一个步长的相位增量,由此可以看出,相位累加器的输出数据实质上是以为步长的线性递增序列(在相位累加器产生溢出以前),它反映了合成信号的相位信息。
相位累加器的输出与波形存储器的地址线相连,相当于对波形存储器进行查表,这样就可以把存储在波形存储器中的信号抽样值(二进制编码值)查出。
在系统时钟脉冲的作用下,相位累加器不停的累加,即不停的查表。
波形存储器的输出数据送到D/A 转换器,D/A 转换器将数字量形式的波形幅度值转换成所要求合成频率的模拟量形式信号,从而将波形重新合成出来。
若波形存储器中存放的是正弦波幅度量化数据,那么D/A 转换器的输出是近似正弦波的阶梯波,还需要后级的低通平滑滤波器进一步抑制不必要的杂波就可以得到频谱比较纯净的正弦波信号。
如下图所示为DDS 各个部分的输出信号:相位累加器输出波形存储器输出DAC输出LPF输出由于受到字长的限制,相位累加器累加到一定值后,就会产生一次累加溢出,这样波形存储器的地址就会循环一次,输出波形循环一周。
相位累加器的溢出频率即为合成信号的频率。
可见,频率控制字K 越大,相位累加器产生溢出的速度越快,输出频率也就越高。
故改变频率字(即相位增量),就可以改变相位累加器的溢出时间,在参考频率不变的条件下就可以改变输出信号的频率。
③ DDS 原理根据傅立叶变换定理,任何满足Dirichlet 条件的周期信号都可以分解为一系列正弦或者余弦信号之和。
为了不失一般性,下面以正弦信号的产生为例来说明DDS 的基本原理。
我们知道,正、余弦信号用可以用复数形式表示为:()cos(2)Re (2)ft Exp j ft ππ= 式(2-1)()sin(2)Im (2)ft Exp j ft ππ= 式(2-2)上图描述了矢量R 绕原点沿正方向(逆时针)旋转时,其模值R 与x 轴夹角()t θ(相位角)及R 在y 轴上的投影S 三者之间的关系。
当R 连续地绕原点旋转,S 将取~R R -+之间的任意值,()t θ将以2π为模取0~2π之间的任意值。
如果将S 看作我们欲重构正弦信号的幅度值,则相位角()t θ和S 的关系为:sin ()S R t θ=。
现将相位数字化(采样、量化),将2π量化成M 等份,则相位量化的最小间隔为2/M θπ∆=,这样造成的结果是重构信号的幅度值S 也相应离散化:2sin()sin()1,2,...,S R n R n n M M πθ=⋅∆=⋅= 式(2-3)由式(2-3)可以看出,S 只能取与相位n θ⋅∆对应的幅度值。
如上图所示,设此时R 不是绕原点连续旋转,而是在系统时钟c f 的控制下以相位增量α∆进行阶跃式旋转(上图中2αθ∆=∆),很容易可以看出来,在相位周期变化的同时,输出信号的幅度S 也在周期重复着,因此,重构信号的周期在幅度中也就体现出来了。
为了进一步探讨相位增量对输出信号频率的影响,我们分别以相位增量为/4π和/8π重构信号幅度,分别如下图1和2所示。
在此,我们假设相位累加是在相同的系统时钟c f 的进行的,即对于不同的相位增量,c f 是固定不变的,这是理解相位增量和重构信号频率关系的基础。
180o 225o270o 315o0o 45o90o135o oT图1 相位增量为/4π时相位幅度的映射关系图2 相位增量为/8π时相位幅度的映射关系对比图1和图2,我们很容易发现,当相位增量减少为原来的二分之一时,输出信号的采样值密集度就成了原来的两倍,那么R 旋转一周的时间自然也增大为原来的两倍,即'2o o T T =。
周期T 与频率f 成倒数关系,由此可得两种情况下输出重构信号的频率关系:'2o o f f =,如图3所示。
相位增量为/4π相位增量为/8π图3 相位增量不同对重构信号频率的影响(仿真)分析到这里,我们可以得出结论,在DDS 系统中,在参考时钟c f 固定不变的前提下,通过改变相位增量的值,就可以得到不同频率的重构信号。
我们假设有一个频率为f 的正弦信号()S t :()sin(2)S t ft π= 式(2-4)现以采样频率c f 对该信号进行抽样,得到离散序列为:()sin(2)c c S nT f nT π=⋅ 式(2-5)其中1/c c T f =为采样周期。
习惯上将式(2-5)写成式(2-6)的形式:()sin(2)0,1,2,c S n f nT n π=⋅= 式(2-6)式(2-6)对应的相位序列为:()20,1,2,c n f nT n φπ=⋅= 式(2-7)该序列的显著特性是线性,即相邻样值之间的相位增量是一常数,且仅与信号频率f 有关,当式(2-7)中的n 取1时得到量化相位增量为:2c f T φπ∆=⋅ 式(2-8)倘若我们将2π相位均匀量化M 等份,人为构造一个相位值'φ∆:'2K Mπφ∆= 式(2-9)并且使得'φφ∆=∆,那么就可以得到如下关系:c cK f f T M f =⋅= 式(2-10)根据以上原理,如果我们用变量K 构造一个量化序列:()n nK ϕ= 式(2-11)然后完成()n ϕ到另一个序列'()S n 的映射,即由()n ϕ构造序列:'22()sin ()sin()S n n nK M M ππϕ⎛⎫== ⎪⎝⎭式(2-12) 将式(2-10)代入式(2-12)可得:'()sin(2)c S n fT n π=⋅ 式(2-13)对比式(2-6)跟式(2-13),我们不难发现,'()S n 其实就是信号()S t 经过采样频率c f 抽样后的离散时间序列。
在满足奈圭斯特采样定律的的条件下,即:12c K f M f =≤ 式(2-14) '()S n 可以经过D/A 转换和低通平滑滤波唯一地恢复出()S t 。
可见,通过上述变换,变量K 将唯一地确定一个单频模拟正弦信号()S t : ()sin(2)c K S t f t Mπ= 式(2-15)该信号的频率为: o c K f f M=式(2-16)式(2-16)就是DDS 的基本方程,是利用DDS 进行频率合成的立足点。