MATLAB是由美国Math Works公司20世纪80年代中期推出的数学软件。MATLAB是“Matric Laboratory”的缩写,意及“矩阵实验室”,优秀的数值计算能力和卓越的数据可视化能力使其很快在数学软件中脱颖而出。Matlab已经发展成为多学科、多种工作平台的功能强大的大型软件。在欧美的高校和研究机构中,MATLAB是一种非常流行的计算机语言,许多重要的学术刊物上发表的论文均是用MATLAB来分析计算以及绘制出各种图形。
MATLAB是一完整的并可扩展的计算机环境,是一种进行科学和工程计算的交互式程序语言。它的基本数据单元是不需要指定维数的矩阵,它可直接用于表达数学的算式和技术概念,而普通的高级语言只能对一个个具体的数据单元进行操作。因此,解决同样的数值计算问题,使用MATLAB要比使用Basic、Fortran和C语言等提高效率许多倍。许多人赞誉它为万能的数学“演算纸”。MATLAB采用开放式的环境,你可以读到它的算法,并能改变当前的函数或增添你自己编写的函数。
最初的MATLAB是用FORTRAN编写的,在DOS环境下运行。新版的MATLAB 是C语言编写的高度集成系统。它在几乎所有流行的计算机机种,诸如PC、MACINTOSH、SUN、VAX上都有相应的MATLAB版本。新版的MATLAB增强了图形处理功能,并在WINDOWS环境下运行。现今,MATLAB的发展已大大超出了“矩阵实验室”的范围,在许多国际一流专家学者的支持下,Maths Works公司为MATLAB配备了涉及到自动控制、信息处理、计算机仿真等种类繁多的工具箱(Tool Box),这些工具箱有数理统计、信号处理、系统辨识、最优化、稳健等等。近年来一些新兴的学科方向,Maths Works公司也很快地开发了相应的工具箱,例如:神经网络、模糊逻辑等。Matlab已经成为线性代数、自动控制理论、概率论及数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程的基本教学工具,是攻读学位的大学生、硕士生、博士生必须掌握的基本技能。目前,MATLAB在国内高校越来越受到重视,应用也越来越广泛。
MATLAB包含的内容非常丰富,功能强大,可以概括为以下几个方面:
▲ 可以在多种操作系统下运行,如DOS、Windows 95/98/2000/2000/NT、Compaq Alpha、LinuxSun Solaris等。
▲ 有超过500种的数学、统计、科学及工程方面的函数,使用简单快捷,并且有很强的用户自定义函数的能力。
▲ 有强大的图形绘制和可视化功能,可以进行视觉数据处理和分析,进行图形、图像的显示及编辑,能够绘制二维、三维图形,使用户可以制作高质量的图形,从而写出图文并茂的文章。
▲ 有和用其他高级语言(如C,C++,FORTRAN,JAVA)编写的外部程序相接口的能力,也可把MATLAB程序转换成上述高级语言的子程序。
▲ 有从外部文件及外部硬件设备读入数据的能力。
▲ 有丰富的网络资源,从相关的Web网站可以直接获得全套的MATLAB联机帮助文件和说明书的电子文档,还可以获得各类技术支持与帮助。
▲ 有丰富的工具箱〔toolbox〕。各个领域的专家学者将众多学科领域中常用的算法编写为一个个子程序,即m文件,这些m文件包含在一个个工具箱中。其工具箱可以分为两大类,即功能性工具箱和科学性工具箱。功能性工具箱主要用来扩充MATLAB的符号计算、图形可视化、建模仿真、文字处理等功能以及与硬件实时交互的功能。学科性工具箱是按学科领域来分类的,如信号处理、控制、通信、神经网络图像处理、系统辨识、鲁棒控制、模糊逻辑、小波等工具箱。、
MATLAB中的信号处理工具箱内容丰富,使用简便。在数字信号处理中常用的算法,如FFT,卷积,相关,滤波器设计,参数模型等,几乎都只用一条语句即可调用。数字信号处理常用的函数有波形的产生、滤波器的分析和设计、傅里叶变换、Z变换等,如:
波形产生:
sawtooth(锯齿波或三角波)
Diric(Dirichlet或周期sinc函数)
rand(白噪声信号波形)
square(方波)
sinc(sinc或
chirp(chirp信号波形)
滤波器的分析:
abs(求幅值)
angle(求相角)
conv(求卷积)
freqz(数字滤波器频率响应)
impz(数字滤波器的冲击响应)
zplane(数字系统零极点图)
IIR滤波器设计:
butter(巴特沃思数字滤波器)
cheby1(切比雪夫I型)
cheby2(切比雪夫II型)
maxflat(最平滤波器)
ellip(椭圆滤波器)
yulewalk(递归数字滤波器)
bilinear(双线性变换)
impinvar(冲激响应不变法)
FIR滤波器设计:
triang(三角窗)
blackman(布莱克曼窗)
boxcar(矩形窗)
hamming(汉明窗)
hanning(汉宁窗)
kaiser(凯塞窗)
fir1(基于窗函数法)
fir2(基于频率抽样法)
firrcos(上升余弦FIR滤波器设计法)
intfilt(内插FIR滤波器设计法)
kaiserord(用Kaiser窗设计FIR滤波器的参数估计)
各种变换:
czt(线性调频Z变换)
dct(离散余弦变换)
fft(一维快速傅里叶变换)
fft2(二维快速傅里叶变换)
idct(逆离散余弦变换)
ifft(一维逆快速傅里叶变换)
ifft2(二维逆快速傅里叶变换)
hilbert(Hilbert变换)