基于MATLAB的函数信号发生器
目的
函数信号发生器是基于软硬件实现的一种波形发生仪器。在工工程实践中需要检测和分析的各种复杂信号均可分解成各简单信号之和,而这些简单信号可由函数信号发生器模拟产生,因此它在工程分析和实验教学有着广泛的应用。MATLAB是一个数据分析和处理功能十分强大的工程实用软件,他的数据采集工具箱为实现数据的输入和输出提供了十分方便的函数和命令,在信号处理方面方便实用。本文介绍了使MATLAB建立一个简单函数信号发生器的基本流程,并详细叙述了简单波形(正弦波、方波、三角波、锯齿波、白噪声、脉冲)信号的具体实现方法。通过此次的设计对MATLAB有个更深刻的了解,熟练的使用MATLAB的GUI设计简单的界面程序。
算法原来和实现过程
该虚拟信号发生器的设计由GUI界面及其对应的程序组成。设计函数发生器有正弦信号、方波信号、三角波、锯齿波、白噪声、脉冲信号。其中,前五种波形都可以利用MATLAB提供的函数实现,并根据输入的幅值、相位、频率等信息进行调整。根据脉冲信号在某一时刻出现的一冲激特点,可由编写程序来实现。界面主要由MATLAB创建,之后编写界面所用的函数,从而实现函数信号发生器。
(1)正弦信号的实现
正弦波信号的数学表达式如(1)。
其中:
![v2-a3c0111e9a485b7964955b3165241d69_b.jpg](https://ss.csdn.net/p?https://pic2.zhimg.com/v2-a3c0111e9a485b7964955b3165241d69_b.jpg)
为幅值;ω为频率;
![v2-6b53236c95c639233a0bf1306bef9222_b.jpg](https://ss.csdn.net/p?https://pic3.zhimg.com/v2-6b53236c95c639233a0bf1306bef9222_b.jpg)
为相位。
在MATLAB中,幅值、频率、相位、在用户界面输入。y的表达式都得到以后,用plot二维作图函数获得波形显示。
(2)方波信号的实现
与正弦波一样,从用户界面获得幅值、频率、相位、采样频率等信息,用square函数获得对应y坐标值,用plot绘图,格式如(2)。
其中duty为占空比。
(3)三角波和锯齿波的实现
这两种波形的表达式皆要借助于sawtooth命令。Swathooth(t)用来产生周期为2π,幅值为从-1到+1的锯齿波。当width=1时,产生标准的锯齿波。其表达式如(3)。
其中A为幅值,ω为频率,φ为相位。
Sawtooth(t,width)用于产生三角波,其中width是取值介于0和1之间的一个参数,它决定了在一个周期中峰值的发生点。本设计中取width=0.5,可以获得标准形状的三角波。其表达式如(4)。
其中A为幅值,ω为频率,φ为相位。