基于DDS的高精度任意波形发生器设计

摘要:系统利用直接数字频率合成技术(dds)完成任意波形发生器设计,以fpga作为核心控制器件,用flash和ram作为波形数据存储模块,在上位机软件的控制下,利用高精度d/a转换器,实现正弦波、方波、三角波、锯齿波、高斯白噪声等任意波形输出。系统可广泛用于通讯、遥控遥测、震动激励和仪器仪表等领域。
随着数字信号处理技术的飞速发展,高精度大动态范围d/a转换器的出现和广泛应用,基于取样技术和计算技术,通过数字方法生成频率和相位相对固定且可调的合成技术,即直接数字频率合成(dds)技术日益成熟,它采用全数字化结构,具有频率分辨率高、相对带宽宽、频率转换速度快、相位噪声低、信号纯度高等优点。因此,本系统采用dds技术来完成任意波形发生器设计。
1dds工作原理
直接数字频率合成(dds)技术是一种以采样定理为基础的全数字化波形产生方法。dds频率合成器主要由相位累加器、波形数据存储器、d/a转换器和低通滤波器组成,其原理框图如图1所示。在一个系统时钟周期内,相位累加器将前一次的累加值与频率控制字相加,得到新的累加值,将新的累加值作为地址,从波形数据存储器中读取信号的幅度值,送入d/a转换器将数字信号转换为模拟信号,最后再经低通滤波器生成需要波形。其中波形数据存储器中存储了周期信号单个周期的幅度值,相位累加器每溢出1次,可从波形数据存储器中读取1个周期的信号幅度值。因此,若假设频率控制字为k,相位累加器为n位,则经过个系统时钟周期,可产生1个周期的输出信号,再设系统时钟频率为fsclk,则输出信号频率。
2系统总体框图
系统总体框图如图2所示。其中,上位机软件由labwindows软件编写,用于控制信号的产生,下位机以fpga作为核心控制器件,主要用于接收上位机发送的控制命令和信号参数,并控制下位机系统产生对应波形。下位机系统主要分为fpga控制单元、波形存储单元、波形产生单元。波形存储单元主要包括flash和sram,flash用于存储各种波形数据,波形产生时,fpga先将要产生的波形数据从flash读入sram,再利用相位累加器的累加值从sram中读取波形数据。波形产生单元主要完成波形数据的产生,首先将sram读出的波形幅度数据送入d/a转换器,产生信号的阶梯序列波,再通过低通滤波器和功率放大电路产生输出信号。
3系统硬件设计
3.1flash连接电路图
flash采用美国飞索半导体公司的s29al032d,其容量为32mb,它用于存储各种波形的幅度信息,其存储形式如图4所示。
由图4可知,地址区间0x000000~0x01ffff存储正弦波幅度值,地址区间0x020000~0x03ffff存储三角波数据,地址区间0x040000~0x05ffff存储锯齿波数据,地址区间0x060000~0x07ffff存储白噪声数据,地址区间0x080000~0x0fffff为4个用户自定义区,存储4种用户需产生的周期波形数据。