基于FPGA的DDS信号发生器的设计

时间:2025-03-10

基于FPGA的DDS信号发生器的设计

电工电子实验报告

课程名称 实验名称 选题性质

EDA技术基础 综合实验总结

基于FPGA的DDS信号发生器的设计

基于FPGA的DDS信号发生器的设计

基于FPGA的DDS信号发生器的设计

1 DDS的基本原理

DDS技术是一种把一系列数字量形式的信号通过DAC转换成模拟量形式的信号的合成技术,它是将输出波形的一个完整的周期、幅度值都顺序地存放在波形存储器中,通过控制相位增量产生频率、相位可控制的波形。DDS电路一般包括基准时钟、相位增量寄存器、相位累加器、波形存储器、D/A转换器和低通滤波器(LPF)等模块,如图1.1所示。

相位增量寄存器寄存频率控制数据,相位累加器完成相位累加的功能,波形存储器存储波形数据的单周期幅值数据,D/A转换器将数字量形式的波形幅值数据转化为所要求合成频率的模拟量形式信号,低通滤波器滤除谐波分量。

整个系统在统一的时钟下工作,从而保证所合成信号的精确。每来一个时钟脉冲,相位增量寄存器频率控制数据与累加寄存器的累加相位数据相加,把相加后的结果送至累加寄存器的数据输出端。这样,相位累加器在参考时钟的作用下,进行线性相位累加,当相位累加器累加满量时就会产生一次溢出,完成一个周期性的动作,这个周期就是DDS合成信号的一个频率周期,累加器的溢出频率就是DDS输出的信号频率。

相位累加器输出的数据的高位地址作为波形存储器的地址,从而进行相位到幅值的转换,即可在给定的时间上确定输出的波形幅值。

波形输出

图1-1:DDS原理图

波形存储器产生的所需波形的幅值的数字数据通过D/A转换器转换成模拟信号,经

过低通滤波器滤除不需要的分量以便输出频谱纯净的所需信号。信号发生器的输出频率fo可表示为:

f0 M. f M.fs2

式中

N

( 1.1)

fs

为系统时钟, f为系统分辨率,N为相位累加器位数,M为相位累加器的增量。

参数确定及误差分析.

2 参数确定

f

首先确定系统的分辨率 f,最高频率fmax,及最高频率max下的最少采样点数

基于FPGA的DDS信号发生器的设计

Nmin

根据需要产生的最高频率

fmax

以及该频率下的最少采样点数Nmin,由公式

fs fmax.Nmin

确定系统时钟

(1.2)

fs

的下限值。同时又要满足分辨率计算公式

fs2

综合考虑决定

N

f

(1.3)

fs

的值。

选定了s的值后,则由公式(1.3)可 得2

数N。 然后由最高输出频率

f

fs

N

f,据此可确定相位累加器位

fo f M

S

(1.4)

Z

推出M=2,得出相位增量寄存器为S位。

确定波形存储器的地址位数W,本系统中决定寄存2个数据值,因此RAM地址为Z位。

一般选用FPGA/CPLD器件作为DDS的实现器件,对于D/A转换器的选择,首先要考虑到D/A转换器的转换速率。要实现所需的频率,D/A的转换速度要大于

fmax.Nmin

然后根据D/A转换器字长所带来的误差,决定D/A的位数。由此选择D/A转换器的型号。

3 DDS的FPGA实现设计

本设计要求DDS实现的性能指标为:当系统时钟频率为24MHz时,分辨率为1.43Hz,当相位增量寄存器为19位时,最高输出频率是749731Hz。(理论上完全可以达到,甚至更高,但是由于受到DA器件及运算放大器的影响,实际中的频率不可能达到)。

根据上面所列公式可以得出:累加器位数N= 24;相位增量寄存器为19位。

如图3.1所示,DDS系统包括相位增量寄存器、相位累加器、地址寄存器、波形存储器、时钟倍频器及地址发生部分等几个模块。内部所有模块均用Verilog语言编写或调用maxplus2中的已有的lpm库文件,其顶层设计用原理图的方式进行模块间的连接。

图3.1 DDS系统框图

下面就上面向个模块的结构进行论述:

基于FPGA的DDS信号发生器的设计

湖北师范学院电工电子实验教学示范中心·

《EDA技术基础》实验

3.1 相位累加器

相位累加器在参考时钟的作用下,进行线性相位累加,当相位累加器累加满量时就会产生一次溢出,完成一个周期性的动作,这个周期就是DDS合成信号的一个频率周期,累加器的溢出频率就是DDS输出的信号频率。相位增量分段寄存器的端口如图3.1.1所示。根据前面的计算可知,相位增量寄存器需要

24位。

图3.1.1 相位增量寄存器

图3.1.2是相位增量分段寄存器仿真图,从图中可以看出,在时钟的激励下,累加器的仿真结果是正确的.

图 3.1.2累加器的仿真结果

3.2 波形存储器 波形存储器实际上就是一个ROM,波形存储器存储的是所生成波形一周期采样256点的数据值,通过地址的改变,所输出的值就会变化,因为,地址不一定是连续变化的,所以所输出的值也不是连续的,在同样的时钟周期下,地址间隔的变化也就造成了生成波形的频率的变化。地址值每溢出一次,便完成了一个周期的输出。 当改变波形存储器中波形数据时,也就改变了输出波形。

图3.2.1 ROM模块 ROM的设计直接调用LPM中的库生成,端口分别为:时钟输入端clock,输出数据总线daout(7:0),输入数据总线r …… 此处隐藏:4505字,全部文档内容请下载后查看。喜欢就下载吧 ……

基于FPGA的DDS信号发生器的设计.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219