基于MATLAB的信号发生器设计 一、前言 目前,MATLAB已经广泛地应用于工程设计的各个领域,如电子、通信等领域,它已成为国际上最流行的计算机仿真软件设计工具。MATLAB不再仅仅是一个矩阵实验室,而是一种功能强大的的实用高级计算机编程语言。 Data Acquisition Toolbox是MATLAB自带的数据获取工具箱,其中包含了许多有用的函数供用户调用,这些函数根据各自不同的功能大致可分为以下几组:数据获取对象的构造,获取和设置参数,执行,模拟输入/输出函数,数字输入/输出函数。在本次设计通用信号发生器的过程中,大量使用了以上函数,并采用两种不同的方式完成数/模转换的工作。 二、信号发生器的设计和实现程序简介 程序参考MATLAB 的Data Acquisition Toolbox实现。在MATLAB的GUI设计中,有两种设计方式:利用GUI编辑器和编写M文件。 GUI是用户的操作界面,是选择波形、设定和修改波形参数、设定采样率、选择输出通道和运行、停止程序的人机交互接口。本程序的界面中,可选波形包括正余弦(sin),Sa波(sinc),方波(square),三角波(triangle),锯齿波(tooth),噪声波(random),频变波(chirp),以及自定义波形(读取图形和数据文件)。波形参数包括频率(frequency),幅度(amplitude),直流偏置(offset),初相位(phase),占空比(duty cycle),频变方法(method),频变时间(target time),初始频率(initial(F)),目标频率(target(F))等。因为PCI-6024E只有2路DAC,所以输出通道的选择只有这2路,或者只输出其中的一路。运行、停止则是开始和停止计算波形、输出波形的过程。编写M文件来处理GUI界面的事件的响应。 本设计的独特之处在于输出通道的可选择性,可选择NI-DAQ(PCI-6024E),声卡,或者并行等。考虑到信号幅度范围对于不同硬件也是不同的(PCI-6024E是-10~10v),超出范围的部分是无效的,程序同样会报错并停止运行。 触发start 按钮将使程序进入运行状态,这包括计算波形(二维数组),绘制波形(在PC界面坐标系中),以及输出波形(在选定的输出板卡中)。触发stop 按钮(运行状态时start按钮就转变为stop按钮了)将停止程序的运行,以及数组数据输出到板卡上。 界面浏览 本信号发生器的界面大致是有以下五个区域组成:菜单区,参数设定区(output1,output2),波形绘制(output1output2),输出选择区,以及输出控制区。界面如下图所示。 信号生成 信号生成,即是用数学方法将所选波形(连续信号)按采样率离散为数字序列,序列中的各个数字既是信号在采样率分之一时间间隔的采样值。再将各相邻采样点用短直线相连,即可近似还原出原波形。可见,同等情况下,采样率越高,信号的恢复程度越好。 正弦波(sin) 正弦波参数如表1所示。设采样率:samp 数组表示: t=0:(1/samp):1; y= offset + amplitude *sin(2*pi*frequency*t+phase*pi/180); 说明:t在1秒内有samp个均匀采样点,y做为samp×1的一维数组输出到板卡的一个通道 Sa波(sinc) Sa波参数如表2所示。设采样率:samp 数组表示: t=0:(1/samp):1; y=offset+amplitude*sin(2*pi*frequency*t+phase*pi/180+eps)./ (2*pi*frequency*t+phase*pi/180+eps); 这里“/”用的是“./”,表示数组中对应元素运算。为了2*pi*frequency*t+phase*pi/180=0的情况表达式仍然有效,加入无限小量“eps”。 方波(square) 方波参数如表3所示。设采样率:samp 数组表示: t=0:(1/samp):1; y= offset + amplitude* sign(duty/100/ frequency -mod(t, 1/frequency)); 三角波(triangle) 三角波参数如表4所示。设采样率:samp 数组表示: t=0:(1/samp):1; y=(4*amplitude*frequency*mod(t,1/frequency)-2*amplitude).*sign(mod(t1,1/frequency)-1/frequency/2)-amplitude+offset; 上升和下降
matlab信号发生器设计,基于MATLAB的信号发生器设计说明.ppt
最新推荐文章于 2023-12-19 11:56:39 发布