基于FPGA的任意波形发生器设计与实现 下载本文

内容发布更新时间 : 2024/11/2 19:17:07星期一 下面是文章的全部内容请认真阅读。

10

基于FPGA的任意波形发生器的设计与实现

地址计数器的输出作为波形存储器的扫描地址,波形存储器输出相应地址的数字幅度序列,再经过数模转换成模拟阶梯波形,最后通过低通滤波器平滑滤波得到最后的输出波形(对DDS结构详细说明请参照本章第2节)。

假定地址计数器的时钟频率为fc,波形存储器内存有波形一周期内的n个采样值,那么合成的波形频率为:

fo?fc 式(2-3) n可见,采用图2.3结构进行频率合成,输出信号的的频率必须通过更改参考时钟频率或者修改波形存储中的数据点个数来实现。通过进一步的研究,人们提出了一种更为灵活的DDS结构,图2.4所示是基于相位累加器的DDS改进模型。

频率控制字K相位累加器fc波形存储器数模转换器低通滤波器输出fo参考时钟图2.4 DDS改进结构

为了区分它跟DDWS的不同,我们将这种结构称为直接数字频率合成(Direct Digital Frequency Synthesis,DDFS)。这种结构用相位累加器取代了原来的地址计数器,使得输出频率的控制变得更加简便,只需要通过修改频率控制字就能实现。随着对DDS技术研究和工程应用的不断深入,DDFS已经逐渐成为DDS的主流结构,以至于人们习惯于用DDS来特指DDFS。DDS具有很高的频率分辨率、初始相位可控及频率切换时间快等突出优点,但同时存在比较严重的杂散。通过对DDS杂散形成机理及特点的深入研究,人们提出了一系列改进措施,大大提高了其输出信号的杂散指标。DDS另外一大优势在于它能方便的产生任意波形,在具体应用中,只需要修改波形存储器内的波形数据即可。在综合考虑DDS技术的这些优势后,本设计决定采用DDS来实现任意波形发生器,同时引入改进措施来降低DDS的杂散指标。

2.2 DDS原理分析

1973年,J.Tiemey和C.M.Tader等人在《A Digital Frequency Synthesizer》一文中首次提出了DDS的概念,但限于当时的技术条件,DDS并没有引起人们的足够重视。上世纪90年代以来,随着数字集成电路和微电子技术的发展,DDS技术的优越性才日益体现出来。

第二章 任意波形发生器的理论分析

11

2.2.1 DDS基本结构

DDS与大多数的数字信号处理技术一样,它的基础仍然是奈圭斯特采样定理。奈圭斯特采样定理是任何模拟信号进行数字化处理的基础,它描述的是一个带限的模拟信号经抽样变成离散值后可不可以由这些离散值恢复原始模拟信号的问题。

奈圭斯特采样定理告诉我们,当抽样频率大于或者等于模拟信号最高频率的两倍时,可以由抽样得到的离散信号无失真地恢复出原始模拟信号。只不过在DDS技术中,这个过程被颠倒过来了。DDS不是对模拟信号进行抽样,而是一个假定抽样过程已经发生且抽样值已经量化完成,如何通过某种方法把已经量化的数值重建原始信号的问题。

DDS电路一般由参考时钟、相位累加器、波形存储器、D/A转换器(DAC)和低通滤波器(LPF)组成[7]。其结构框图如图2.5所示。

NN相位累加器NN位加法器N位寄存器A波形存储器DLPFDAC频率控制字 Kfo参考时钟图2.5 DDS基本结构框图

其中,fc为参考时钟频率,K为频率控制字,N为相位累加器位数,A为波形存储器位数,D为波形存储器的数据位字长和D/A转换器位数。

DDS系统中的参考时钟通常由一个高稳定度的晶体振荡器来产生,用来作为整个系统各个组成部分的同步时钟。频率控制字(Frequency Control Word,FCW)实际上是二进制编码的相位增量值,它作为相位累加器的输入累加值。相位累加器由加法器和寄存器级联构成,它将寄存器的输出反馈到加法器的输入端实现累加的功能。在每一个时钟脉冲fc,相位累加器把频率字K累加一次,累加器的输出相应增加一个步长的相位增量,由此可以看出,相位累加器的输出数据实质上是以K为步长的线性递增序列(在相位累加器产生溢出以前),它反映了合成信号的相位信息。相位累加器的输出与波形存储器的地址线相连,相当于对波形存储器进行查表,这样就可以把存储在波形存储器中的信号抽样值(二进制编码值)查出。在系统时钟脉冲的作用下,相位累加器不停的累加,即不停的查表。波形存储器的输出数据送到D/A转换器,D/A转换器将数字量形式的波形幅度值转换成所要求合成频率的模拟量形式信号,从而将波形重新合成出来。若波形存储器中存放的是正弦波幅度量化数据,那么D/A转换器的输出是近似正弦波的阶梯波,

12

基于FPGA的任意波形发生器的设计与实现

还需要后级的低通平滑滤波器进一步抑制不必要的杂波就可以得到频谱比较纯净的正弦波信号。图2.6所示为DDS各个部分的输出信号。

由于受到字长的限制,相位累加器累加到一定值后,就会产生一次累加溢出,这样波形存储器的地址就会循环一次,输出波形循环一周。相位累加器的溢出频率即为合成信号的频率。可见,频率控制字K越大,相位累加器产生溢出的速度越快,输出频率也就越高。故改变频率字(即相位增量),就可以改变相位累加器的溢出时间,在参考频率不变的条件下就可以改变输出信号的频率。

相位累加器输出波形存储器输出DAC输出LPF输出图2.6 DDS各部分输出波形

2.2.2 DDS原理

根据傅立叶变换定理,任何满足Dirichlet条件的周期信号都可以分解为一系列正弦或者余弦信号之和。为了不失一般性,下面以正弦信号的产生为例来说明DDS的基本原理。

我们知道,正、余弦信号用可以用复数形式表示为:

cos(2?ft)?Re?Exp(j2?ft)? 式(2-4) sin(2?ft)?Im?Exp(j2?ft)? 式(2-5)

ySR?(t)x

??图2.7描述了矢量R绕原点沿正方向(逆时针)旋转时,其模值R与x轴夹

????角?(t)(相位角)及R在y轴上的投影S三者之间的关系。当R连续地绕原点旋

图2.7 信号的复数表示形式

转,S将取?R~?R之间的任意值,?(t)将以2?为模取0~2?之间的任意值。如

第二章 任意波形发生器的理论分析

13

果将S看作我们欲重构正弦信号的幅度值,则相位角?(t)和S的关系为:,将2?量化成M等份,则相位量S?Rsin?(t)。现将相位数字化(采样、量化)

化的最小间隔为???2?/M,这样造成的结果是重构信号的幅度值S也相应离散化:

S?Rsin(n???)?Rsin(2??n)0000n?1,2,...,M 式(2-6) M由式(2-6)可以看出,S只能取与相位n???对应的幅度值。

y????x

??如图2.8所示,设此时R不是绕原点连续旋转,而是在系统时钟fc的控制下

图2.8 相位数字化示图

以相位增量??进行阶跃式旋转(图2.8中???2??),很容易可以看出来,在相位周期变化的同时,输出信号的幅度S也在周期重复着,因此,重构信号的周期在幅度中也就体现出来了。

为了进一步探讨相位增量对输出信号频率的影响,我们分别以相位增量为

?/4和?/8重构信号幅度,分别如图2.9和2.10所示。在此,我们假设相位累加是在相同的系统时钟fc的进行的,即对于不同的相位增量,fc是固定不变的,这是理解相位增量和重构信号频率关系的基础。

90o135o45o180o0oTo225o270o315o

图2.9 相位增量为?/4时相位幅度的映射关系

14

基于FPGA的任意波形发生器的设计与实现

90o135o45o180o0oTo'225o270o315o

图2.10 相位增量为?/8时相位幅度的映射关系

对比图2.9和图2.10,我们很容易发现,当相位增量减少为原来的二分之一

??时,输出信号的采样值密集度就成了原来的两倍,那么R旋转一周的时间自然也增大为原来的两倍,即To'?2To。周期T与频率f成倒数关系,由此可得两种情况下输出重构信号的频率关系:fo?2fo',如图2.11所示。

相位增量为?/4相位增量为?/8

图2.11 相位增量不同对重构信号频率的影响(仿真)

分析到这里,我们可以得出结论,在DDS系统中,在参考时钟fc固定不变的前提下,通过改变相位增量的值,就可以得到不同频率的重构信号。那么相位增量跟我们的频率控制字K之间有什么联系呢,频率控制字又是通过怎样的方式来控制输出信号的频率的呢?

我们假设有一个频率为f的正弦信号S(t):

S(t)?sin(2?ft) 式(2-7)

现以采样频率fc对该信号进行抽样,得到离散序列为:

S(nTc)?sin(2?f?nTc) 式(2-8)

其中Tc?1/fc为采样周期。习惯上将式(2-8)写成式(2-9)的形式:

S(n)?sin(2?f?nTc)00000n?0,1,2,? 式(2-9)

式(2-9)对应的相位序列为:

?(n)?2?f?nTc00000n?0,1,2,? 式(2-10)