Presentation is loading. Please wait.

Presentation is loading. Please wait.

第9章 DDS设计 9.1 DDS的基本原理 9.2 DDS的模块设计 9.3 FSK调制器设计.

Similar presentations


Presentation on theme: "第9章 DDS设计 9.1 DDS的基本原理 9.2 DDS的模块设计 9.3 FSK调制器设计."— Presentation transcript:

1 第9章 DDS设计 9.1 DDS的基本原理 9.2 DDS的模块设计 9.3 FSK调制器设计

2 9.1 DDS的基本原理 我们知道,对于正弦信号发生器,它的输出可以用下式来描述: (9-1)

3 其中Sout是指该信号发生器的输出信号波形,fout指输出信号对应的频率。上式的表述对于时间t是连续的,为了用数字逻辑实现该表达式,必须进行离散化处理。用基准时钟clk进行抽样,令正弦信号的相位:
(9-2) 在一个clk周期Tclk内,相位的变化量为: (9-3)

4 其中fclk指clk的频率,对于,可以理解成“满”相位。为了对进行数字量化,把切割成2N份,由此,每个clk周期的相位增量可用量化值来表述为
且为整数。与(9-3)式联立,可得: (9-4)

5 显然,信号发生器的输出可描述为: (9-5) 其中,指前一个clk周期的相位值,同样可以得出 (9-6)

6 由上面的推导可以看出,只要对相位的量化值进行简单的累加运算,就可以得到正弦信号的当前相位值;而用于累加的相位增量量化值决定了信号的输出频率fout,并呈现简单的线性关系。直接数字合成器DDS就是根据上述原理而设计的数字控制频率合成器。 图9-1所示是一个基本的DDS结构,主要由相位累加器、相位调制器、正弦ROM查找表和D/A构成。图中的相位累加器、相位调制器、正弦ROM查找表是DDS结构中的数字部分,由于具有数控频率合成的功能,又合称为NCO(Numerically Controlled Oscillators)。

7 图9-1 基本DDS结构

8 相位累加器是整个DDS的核心,在这里完成上文原理推导中的相位累加功能。相位累加器的输入是相位增量,又由于与输出频率fout是简单的线性关系:,
故相位累加器的输入又可称为频率字输入,事实上,当系统基准时钟fckj是2N时,就等于fout。频率字输入在图9-1中还经过了一组同步寄存器,使得当频率字改变时不会干扰相位累加器的正常工作。

9 相位调制器接收相位累加器的相位输出,在这里加上一个相位偏移值,主要用于信号的相位调制,如PSK(相移键控)等。在不使用时可以去掉该部分,或者加一个固定的相位字输入。相位字输入也需要用同步寄存器保持同步。需要注意的是,相位字输入的数据宽度M与频率字输入N往往是不相等的,M<N。

10 正弦ROM查找表完成的查表转换,也可以理解成相位到幅度的转换,它的输入是相位调制器的输出,事实上就是ROM的地址值;输出送往D/A,转化成模拟信号。由于相位调制器的输出数据位宽M也是ROM的地址位宽,因此在实际的DDS结构中N往往很大,而M总为10位左右。M太大会导致ROM容量的成倍上升,而输出精度受D/A位数的限制未有很大改善。因此,在实际应用中,对于ROM容量的缩小,人们提出了很多解决方法。

11 下面给出一些关于基本DDS结构的常用参量计算。
1.  DDS的输出频率fout 由DDS工作原理推导的公式中很容易得出输出频率的计算: (9-7) 是频率输入字,fclk是系统基准时钟的频率值,N是 相位累加器的数据位宽,也是频率输入字的数据位宽。

12 2.  DDS的频率分辨率 或称频率最小步进值,可用频率输入值步进一个最小间隔对应的频率输出变化量来衡量。由(9-7)易得 (9-8) 3.  DDS的频率输入字的计算 的计算公式如下:

13 对于通信上的应用,往往需要得到一对正交的正弦信号,以便进行正交调制和正交解调。在用模拟的压控振荡器VCO时,输出一组完全正交的信号较为困难,而对于DDS而言,只要在基本DDS结构中增加一块ROM查找表,在两块ROM中分别放置一对正交信号即可(如一个放置sin表、另一个放置cos表),如图9-2所示。

14 图9-2 正交信号发生器

15 幅度调制在很多场合是需要的。我们改进基本DDS结构,在正弦ROM表后、D/A前放置一个幅度控制模块,一般采用乘法器来实现。如图9-3。

16 图9-3 幅度调制

17 9.2 DDS的模块设计 建立DDS模型 首先在Simulink中新建一个模型,调用DSP Builder模块构成图9-4所示的基本DDS子系统SubDDS。

18 图9-4 DDS子系统SubDDS

19 图中,DDS子系统SubDDS共有三个输入,分别为Freqword(频率字输入)、Phaseword(相位字输入)和Amp(幅度控制输入);一个输出,为DDSout。输入/输出模块的参数设置如下:
Freqword模块:(Altbus) 库:Altera DSP Builder中Bus Manipulation库 参数“Bus Type”设为“signed Integer” 参数“Node Type”设为“Input port” 参数“number of bits”设为“32”

20 Phaseword模块:(Altbus)
库:Altera DSP Builder中Bus Manipulation库 参数“Bus Type”设为“signed Integer” 参数“Node Type”设为“Input port” 参数“number of bits”设为“16” Amp模块:(Altbus)

21 参数“number of bits”设为“10”
DDSout模块:(Altbus) 库:Altera DSP Builder中Bus Manipulation库 参数“Bus Type”设为“signed Integer” 参数“Node Type”设为“Output port”

22 由Delay模块和Parallel Adder Subtractor模块以及Phaseword1模块构成相位累加器,其参数如下:
Parallel Adder Subtractor模块:(Parallel Adder Subtractor) 库:Altera DSP Builder中Arithmetic库 参数“Number of Inputs”设为“2”,“Add(+)Sub(-)”设为“++” 选择“Pipeline” 参数“Clock Phase Selection”设为“1”

23 Delay模块:(Delay) 库:Altera DSP Builder中Storage库 参数“Depth”设为“1” 参数“Clock Phase Selection”设为“1” Phaseword1模块:(Altbus) 库:Altera DSP Builder中Bus Manipulation库 参数“Bus Type”设为“signed Integer” 参数“Node Type”设为“Internal Node” 参数“number of bits”设为“32”

24 相位调整部分由Parallel Adder Subtractor1模块和BusConversion2模块构成,参数如下:
Parallel Adder Subtractor1模块:(Parallel Adder Subtractor) 库:Altera DSP Builder中Arithmetic库 参数“Number of Inputs”设为“2”,“Add(+)Sub(-)”设为“++” 选择“Pipeline” 参数“Clock Phase Selection”设为“1”

25 BusConversion2模块:(BusConversion)
库:Altera DSP Builder中Bus Manipulation库 参数“Input Bus Type”设为“signed Integer” 参数“Input [number of bits].[]”设为32 参数“Output Bus Type”设为“Signed Integer” 参数“Output [number of bits].[]”设为“10” 参数“Input Bit Connected to Output MSB”设为“31” 参数“Input Bit Connected to Output LSB”设为“22” 使用“Round”

26 剩下的模块构成幅度控制部分,模块参数如下:
Product模块:(Product) 库:Altera DSP Builder中Arithemtic库 参数“Pipeline”设为“2” 参数“Clock Phase Selection”设为“1” 不选择“Use LPM”

27 BusConversion3模块:(BusConversion)
库:Altera DSP Builder中Bus Manipulation库 参数“Input Bus Type”设为“signed Integer” 参数“Input [number of bits].[]”设为“20” 参数“Output Bus Type”设为“Signed Integer” 参数“Output [number of bits].[]”设为“10” 参数“Input Bit Connected to Output MSB”设为“18” 参数“Input Bit Connected to Output LSB”设为“9” 使用“Round” 使用“Saturate” 最后,建立子系统。至此,基本DDS模型就建立完成。

28 DDS模型的使用 在此调用上面设计的DDS子系统SubDDS,构建一个简单的DDS应用模型,见图9-5。

29 图9-5 DDS的使用

30 输入相位字为0,频率字为2000000,幅度控制值为124,设置Simulink的仿真停止时间Stop Time为5,仿真步进Fixed Step Size设为1e-3。
下面开始仿真。图9-6显示了仿真结果。

31 图9-6 仿真结果

32 9.3 FSK调制器设计 FSK调制器原理 二进制数字频率调制(2FSK)是利用二进制数字基带信号控制载波进行频谱变换的过程。

33 在发送端,产生不同频率的载波振荡来传输数字信息“1”或“0”;在接收端,把不同频率的载波振荡还原成相应的数字基带信号。相邻两个振荡波形的相位可能是连续的,也可能是不连续的,因此有相位连续的FSK及相位不连续的FSK之分。 FSK调制的方法有两种: (1) 直接调频法。用数字基带矩形脉冲控制一个振荡器的某些参数,直接改变振荡频率,输出不同频率的信号。 (2) 频率键控法。用数字矩形脉冲控制电子开关在两个振荡器之间进行转换,从而输出不同频率的信号。

34 FSK模型 在此设计一个FSK模型,在调制方法上选择直接调制法。采用DDS方法来生成频率可控的正弦信号,利用数字基带信号控制DDS的频率字输入,实现FSK调制。 如图9-7所示,这是一个简化的DDS结构,由8 bit累加器作为相位累加器,由二选1选择器来选择累加器的相位,相位是由数字基带信号控制的。 采用改变相位增量来控制频率的方法,可以产生相位连续的调制波形。在实际应用中,数据输出data_out需要经过DAC进行数模转换,然后经低通滤波器后产生最终的模拟输出信号。

35 图9-7 FSK调制模型

36 FSK调制的仿真结果如图9-8所示,高电平控制的时候,正弦波的频率较高,而低电平的时候正好相反。

37 图9-8 FSK调制的Simulink仿真结果


Download ppt "第9章 DDS设计 9.1 DDS的基本原理 9.2 DDS的模块设计 9.3 FSK调制器设计."

Similar presentations


Ads by Google