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

内容发布更新时间 : 2024/5/4 14:14:15星期一 下面是文章的全部内容请认真阅读。

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

15

该序列的显著特性是线性,即相邻样值之间的相位增量是一常数,且仅与信号频率f有关,当式(2-10)中的n取1时得到量化相位增量为:

???2?f?Tc 式(2-11)

倘若我们将2?相位均匀量化M等份,人为构造一个相位值??':

2???'?K 式(2-12)

M并且使得??'???,那么就可以得到如下关系:

Kf?f?Tc? 式(2-13) Mfc根据以上原理,如果我们用变量K构造一个量化序列:

?(n)?nK 式(2-14)

然后完成?(n)到另一个序列S'(n)的映射,即由?(n)构造序列:

2??2??S'(n)?sin??(n)??sin(nK) 式(2-15)

M?M?将式(2-13)代入式(2-15)可得:

S'(n)?sin(2?fTc?n) 式(2-16)

对比式(2-9)跟式(2-16),我们不难发现,S'(n)其实就是信号S(t)经过采样频率fc抽样后的离散时间序列。在满足奈圭斯特采样定律的的条件下,即:

Kf1?? 式(2-17) Mfc2S'(n)可以经过D/A转换和低通平滑滤波唯一地恢复出S(t)。

可见,通过上述变换,变量K将唯一地确定一个单频模拟正弦信号S(t):

K S(t)?sin?(2cft ) 式(2-18)

M该信号的频率为:

fo?Kfc 式(2-19) M式(2-19)就是DDS的基本方程,是利用DDS进行频率合成的立足点。在实际的DDS应用中,一般取M?2N,N为正整数,于是DDS的基本方程可写成:

Kfo?Nfc00000K?1,2,...,2N?1 式(2-20)

2由式(2-20)可以看出,当K?1时,DDS系统输出信号频率fo最小,而这个最小频率同时也是DDS系统的频率分辨率:

16

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

fomin??fo?fc 式(2-21) N2对于DDS系统从波形存储器中读数据的过程,我们可以将其看作是对波形存储器中的波形数据再次采样的过程,也就是说,DDS系统查表的过程就是从波形存储器中二次采样过程,一个周期内查表的点数即为采样的点数。DDS系统要恢复出原始波形,其在一个周期内至少要取样两点,这是受我们一直都在强调的奈圭斯特采样定理的限制。那么DDS系统在理论上能输出的最大频率是:

ffomax?c 式(2-22)

2经过以上的分析,我们得出以下几点结论:

(1)DDS系统的输出频率fo只与频率控制字K、系统时钟频率fc、相位累加器位数N有关。在系统时钟频率fc和相位累加器位数固定时,通过改变频率控制字K的值,就可以方便地改变输出信号的频率。

(2)DDS系统的频率分辨率只与系统的系统时钟频率fc和相位累加器位数N有关。想要提高系统的分辨率,可以增加相位累加器位数或者是降低系统时钟频率。

(3)DDS理论上最大输出频率不会超过系统时钟频率fc的二分之一,但在实际应用中,由于DDS系统中的低通滤波器非理想特性,由通带到阻带之间存在着一个过渡带,工程中DDS最高输出频率只取到40ü左右。

2.2.3 DDS技术特点

DDS这一新技术特点鲜明,优点很突出,缺点也很明显。

DDS系统的优点有很多,它的很多特性是其他频率合成技术所没有的,其中最主要的特性有以下三点:

(1)DDS技术可以用于产生任意波形

基于前面对DDS系统的基本结构分析,很容易理解,只要改变存储在波形存储器中的波形数据,就可以改变输出波形。所以对于任何周期性波形,只要满足采样定理,都可以利用DDS技术来实现。

(2)DDS系统具有很高的频率分辨率

DDS系统输出频率的分辨率和频点数随相位累加器的位数成指数增长,由

式(2-21)可知,在系统时钟频率不变的情况下,只要增大相位累加器的位数N,

就可以得到几乎是任意小的频率分辨率,可以满足精细频率控制的要求。DDS如此精细的频率分辨率,使其输出频率已十分逼近连续变化。

(3)输出频率切换速度快且相位保持连续

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

17

与锁相频率合成相比,由于DDS系统是一个开环系统,所以当一个新的频率控制字送到时,它会迅速合成这个新的频率,实际的频率切换时间可以达ns级。同时,频率切换时,DDS系统的输出波形的相位是连续的。DDS系统的频率字改变时,输出波形的变化过程可以用图2.12描述。

P相位累加器输出值变化示意曲线输出波形变化曲线

图2.12 频率控制字改变时累加器的输出值和输出波形的变化(仿真)

在波形输出到P点时,频率字发生了改变(变小),相位累加器的累加值即相位步进变小,其输出值斜率也变小,系统的输出波形的频率也在同时刻变小。DDS系统在频率字发生改变后的一个时钟周期,其输出频率就可以就转换到了新的频率上,也即在频率字的值改变以后,累加器在经过一个时钟周期后就按照新的频率字进行累加,开始合成新的频率。所以我们可以认为DDS的频率切换是在一个系统时钟周期内完成的,系统时钟频率越高,切换速度越快。

另外,从前面对DDS技术原理的分析可知,要改变输出频率,实际上改变的是频率字,也就是相位增量。当频率字的值从K1改变为K2之后,相位累加器是在已有的累积相位上,再对K2进行累加,相位函数曲线是连续的。从图2.12也可以看出,只是在频率字改变的瞬间相位函数曲线的斜率发生了突变,相位值并没有发生跳跃,因此DDS能够在频率切换的过程中保持相位连续,输出波形能够平滑地从一个频率过渡到另外一个频率。

由于DDS采用数字化技术,最终合成信号是经过D/A转换得到的,所以不可避免的存在着以下缺点:

(1)DDS在工程中的最高输出频率一般只能达到系统时钟频率的40%,要想获得较高的频率,就必须提高系统时钟频率,也就是说DDS的相位累加器、波形存储器和D/A转换器都将工作在较高的时钟频率下,它的实现依赖于高速数字电路和高速D/A转换器。这也是DDS系统在早期没有受到重视,而直到最近几年才迅速发展的原因。

(2)DDS系统采用数字合成技术,先离散信号再变换成模拟信号输出,这其中导致了各种误差,尤其是相位截断误差,因此各种杂波是不可避免的。

18

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

为了具有较高的输出频率,DDS系统的参考时钟频率一般都比较高,根据 式(2-21),在较高的时钟频率下,要想获得较高的频率分辨率,只有通过增加相位累加器的位数N,故一般N的取值都较大。如果相位累加器的所有输出都用来作为波形存储器的寻址地址,那么存储器的容量会大得惊人。例如,如果32位累加器的所有位都用来作为存储器的地址,那么需要4G个存储单元,而如果换成48位的累加器,那么就需要256T(1T=1024G)个存储单元,这样的设计显然是没有办法接受的。因此存储器的地址线位数A一般都小于N。这样存储器的地址线就只能接到相位累加器的输出的高A位上,而低N?A位则要舍弃,也就产生了相位截断误差,表现在输出频谱上就是杂散分量。

2.3 DDS输出特性

作为一种全数字器件,杂散多是其固有特性,这一长期以来限制DDS应用的主要因素。为了获得低杂散输出信号,对DDS输出特性的分析显得尤为必要。要研究DDS的输出特性,从研究其频谱特性[8]着手是一种比较好的方法。我们首先来分析一下理想情况下DDS输出的频谱特性。

2.3.1 理想情况下DDS的频谱特性

所谓理想情况就是不考虑相位截断误差和幅度量化误差,同时假定D/A转换器和低通滤波器是完全理想的,即DDS必须满足下面三个条件:

(1)相位累加器的全部输出用来作为波形存储器地址码;

(2)波形存储器的幅度没有量化误差,即波形存储器所存储的信号幅度值用无限长二进制代码来表示;

(3)DAC的分辨率无穷大,并且DAC具有理想的数模转换特性。 我们假设相位累加器输出的相位序列为?(n),则?(n)为一周期序列,其周期为:

2Nmk? 式(2-23) NGCD(2,K)其中符号GCD(a,b)表示求a和b的最大公约数。

同时我们还假设相位序列寻址波形存储器得到的幅度序列为S(n),则其周期也为mk,我们拿重建余弦信号来分析,S(n)可表示为:

2?S(n)?cos(NK?n) 式(2-24)

2幅度序列S(n)经过D/A转换后变成余弦波阶梯波,用S(t)来表示该阶梯波,

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

19

则S(t)的周期为T?mk?Tc,其中1/Tc为DDS系统的参考时钟频率。

我们知道,任何周期信号都可以展开为傅立叶级数,设S(t)的傅立叶展开式为:

S(t)?m????C?m?ejm?t 式(2-25)

其中??2?T?2?mk?Tc。

由于S(t)在一个周期内可以表示为:

S(t)?mk?1n?0?cos(2?K?n)??(nTc) 式(2-26) 2N其中?(nTC)?u(t?nTc)?u?t?(n?1)Tc?,u(t)为单位阶跃函数。

所以有

Cm?1T?jm?tS(t)?edt ?0T(n?1)Tc1mk?1?2?????cos(NK?n)??e?jm?tdt? 式(2-27)

nTcTn?0?2?其中

?(n?1)TcTce?jm?t?Tc2?jm?nTc?jmmdt?e?e2?sin(?Tc) 式(2-28)

m?22?2?2?1?j2NKn?j2NKn?cos(NK?n)??e?e 式(2-29) ???22?? 将式(2?28)及式(2?29)代入式(2?26),并利用下面的等式:

mk?1n?0?ej2?nqmk?mk000000q?i?mk,i?0,?1,?2,...??? 式(2-30) ?00000000其余q? 可得

??1?jmmm?ek?sinc()0000m?i?mk?pk,i?0,?1,?2,... 式(2-31) Cm??2mk??000000000000000000其余m其中pk?Ksin(?x)m,sinc(x)?。 k2N?x 从式(2-25)可以得知S(t)展成傅立叶级数后,第m根谱线的频率值为: