新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于Matlab/DSP Builder任意波形信号发生器的两种设计

基于Matlab/DSP Builder任意波形信号发生器的两种设计

作者:时间:2011-03-30来源:网络收藏

0 引言
在当今的科技信息社会中,尤其是在电子和信号测试系统中,通常需要一些复杂、特定频率的信号,通常的难以满足要求,市场上出售的一些的价格昂贵,体积较大,不能满足实际的需要。
Altera 是一款系统级的工具,依赖于Mathworks公司的数学分析工具/Simulink,可以在Sireulink中进行图形化和仿真,同时又可以通过signalCompiler把/Simulink的模型文件(.mdl)转换成相应的硬件描述语言VHDL,本文用两种方法,即传统型的直接数字频率合成(DDS)的信号发生器,在的开发工具下实现任意信号发生器的设计,不涉及到编程,操作简单。

1 传统型任意信号发生器的设计
1.1 设计原理
传统型任意信号发生器原理比较简单,将时钟源作为地址发生器(计数器)的输入时钟,通过改变时钟源的频率,可以实现调整地址发生器(计数器)产生地址的变化速率,从而达到改变输出与输出频率的目的。当地址发生器输出值等于待生成数据存储器中数据的地址时,待生成波形数据存储器将输出此数据到高速D/A转换,将其变为模拟信号,经低通滤波器后输出所需波形。D/A的输出频率fuot与待生成波形数据存储器的波形数据点数N以及时钟源的频率fclk关系为:

由式(1)可知,只要改变数据波形点数N就能控制输出信号的频率。
1.2 系统设计
根据图1所示的原理框图,在 平台上,建立传统型任意信号发生器的Simulink模型,如图2所示。

本文引用地址:http://www.eepw.com.cn/article/150910.htm


在图2中,Increment Decrement模块起到一个地址发生器的作用,随着时钟的输入不断累加输出,ROM模块存放待生成信号的波形数据,输入模块input通过produt模块控制信号的输出。
利用Matlab强大的仿真功能,方便、快捷地生成给定频率、周期、脉宽的任意波形数据,但生成的数据通常是浮点型的,要将其转换为十六进制的Hexadecimal(Itel-Form)File(.hex)格式的文件,然后将*.hex文件添加到ROM存储器中,设置系统模型的参数,就可以得到任意信号波形。

2 DDS的任意信号发生器的设计
2.1 设计原理

DDS的任意信号发生器结构框图如图3所示。由图3可以看出,相位累加器在系统时钟的控制下以频率控制字长的步长进行累加,输出的线性相位序列和相位控制字相加后对待生成波形数据ROM查表寻址,待生成波形数据ROM查找表输出相应波形的离散序列,再由DAC将其转换为模拟量,把存入的数据重新整合起来。此过程实际完成了相位到幅度的转换。


设系统时钟为fclk,频率输入字为Freword,相位输入字为Phaseword,N是相位累加器的数据位宽(频率输入字的数据位宽),相位调制器的位宽为M,则DDS的输出信号频率为:

输出信号的相移为:

由式(2)和式(3)可知,改变频率输入字和相位输入字就可以分别控制输出信号的频率和相位。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭