120 likes | 748 Views
MATLAB 入门. ---- 数字信号处理的有力工具. 一、 MATLAB 介绍. ( 1 ) MATLAB 是美国, Math Works 公司推出的产品。 MATLAB 是 Matrix Laboratory 的缩写,即 “ 矩阵实验室 ” 。 ( 2 ) MATLAB 与其它语言( Basic , C )相比,效率可以提高很多倍,誉为 “ 万能的演算纸 ” 。 ( 3 ) MATLAB 已成为标准的教学工具。 ( 4 ) MATLAB 还配备了涉及自动控制、信息处理,计算机仿真等种类繁多的工具箱:数理统计、信号处理 、系统辨识、最优化、稳健、神经网络、模糊逻辑等。.
E N D
MATLAB入门 ----数字信号处理的有力工具
一、MATLAB介绍 • (1)MATLAB是美国,Math Works 公司推出的产品。MATLAB是Matrix Laboratory的缩写,即“矩阵实验室”。 • (2)MATLAB与其它语言(Basic,C)相比,效率可以提高很多倍,誉为“万能的演算纸”。 • (3) MATLAB已成为标准的教学工具。 • (4) MATLAB还配备了涉及自动控制、信息处理,计算机仿真等种类繁多的工具箱:数理统计、信号处理 、系统辨识、最优化、稳健、神经网络、模糊逻辑等。
二、 MATLAB的语言的特点 • 1、变量 • MATLAB的基本变量均代表一矩阵。矩阵可以由语句和函数产生,也可以由外部的数据文件输入,还可以由键盘输入一些小的矩阵。 • 例如: 在出现 后,键入一个3*3的矩阵并赋予变量A。 • A=[1 3 5;2 4 6;7 8 9] • 单个矩阵元素可以用括号中的下标来表示,例如:A(1,1)=1,A(2,2)=4,A(2,3)=?A(:,3)代表第三列元素组成的向量,A(1:3,1:2)代表一3x2的子矩阵。
2、基本操作符 • (1)加“+”、减“-”、乘“*”、除“/”、幂“^”代表矩阵的加、减、乘、除以及乘方运算。 • (2)“.*”代表两个矩阵的对应元素相乘;“./”表示两个矩阵对应元素相除;”\”表示用右边的矩阵除以左边的矩阵,A\B等效于A的逆矩阵左乘B矩阵。 • (3)虚部i=sqrt(-1) • (4)A^P表示A的P次方,“. ^”计算对应元素的幂, A.^P表示两个大小相同的矩阵进行操作,P中每一元素作为A中对应元素的幂次。 • (5)矩阵的转置用“`”来表示
3、输入输出语句 • (1)MATLAB用load 语句输入磁盘中存储的数据。MATLAB本身的存储格式——二进制的“.mat”文件也使用load命令装入。 • (2)save命令将空间中的变量以二进制格式或ASCLL格式存储到磁盘文件中。 • (3)MATLAB也有“fopen、fread、fwrite等输入、输出语句,但优先选择load,save。 • (4)waveread可以读取声音文件,wavewrite可以形成一个后缀为wave的声音文件。 • (5)imread用于读取图像文件,imshow用于显示图像文件。
4、库函数 • (1)基本数学函数:sin、exp、sqrt • (2)矩阵运算基本函数:inv、det、(lu)LU分解、diag • (3)特殊数学函数:贝塞尔函数(bessel),第一类椭圆完全积分(ellipk)等。 • (4)MATLAB工具箱还提供了适合于各种专门用途的库函数。
5、作图语句 • (1)基本绘图函数:二维图形(plot)、三维图形(mesh)、等值线图(contour)、极坐标(polar)、直方图(hist)等。 • (2)图形修饰函数:文本注释(text)、题头(title)、x轴或y轴标注(xlabel,ylabel)以及增加网格(grid)等。
6、控制语句 • (1)MATLAB有着和其它高级语言相类似的语句,例如 :循环(for)、终止循环(break)、条件(if,while)等。 • (2)注:这些语句要谨慎使用,因为,MATLAB是对数组进行操作,很多时候可以不用控制语句,用了反而会使程序的运行速度减慢。
7、帮助语句help • (1)使用:在命令窗口键入help可取的信息,如:键入“help[“显示如何使用方括号(注意:在编程中括号时不能随意使用的),键入“help signal”将提供所有信号处理工具箱中的有关函数的信息。 • (2)也可以使用软件工具栏中的help进行帮助查找。
8、用于数字信号处理的 工具箱-signal • (1)包含数字信号处理常用的滤波器设计、傅里叶变换、z变换等。 • 设计IIR滤波器:buttord、butter、cheb1ord • 设计FIR滤波器:fir1、fir2、firls、remezord • 窗函数:bartlett、blackman、hamming • 傅里叶变换:FFT、IFFT • 频率变换:freqz、freqs、lp2lp、lp2bp、
三、算例 • 例1 给定一因果系统 • 求出并绘出H(z)的幅频响应和相频响应。 • b=[1,-1]; • a=[1,-sqrt(2),0.9]; • [h,w]=freqz(b,a); • am=20*log10(abs(h)); • subplot(2,1,1); • plot(w,am); • subplot(2,1,1); • plot(w,ph);
例2 图像傅里叶变换 • X=imread( `trees.tif `); • X=double (X) / 255; • Y=fft2(X); • figure, imshow(Y) • C=ifft2(Y); • figure, imshow(C)