《matlab函数库》PPT课件

上传人:xian****812 文档编号:297354662 上传时间:2022-05-24 格式:PPT 页数:119 大小:3.90MB
返回 下载 相关 举报
《matlab函数库》PPT课件_第1页
第1页 / 共119页
《matlab函数库》PPT课件_第2页
第2页 / 共119页
《matlab函数库》PPT课件_第3页
第3页 / 共119页
《matlab函数库》PPT课件_第4页
第4页 / 共119页
《matlab函数库》PPT课件_第5页
第5页 / 共119页
点击查看更多>>
资源描述

《《matlab函数库》PPT课件》由会员分享,可在线阅读,更多相关《《matlab函数库》PPT课件(119页珍藏版)》请在金锄头文库上搜索。

1、第六章第六章MATLAB的其他函数库的其他函数库 6.1 数据分析和傅里叶变换函数库数据分析和傅里叶变换函数库 6.2 矩阵的分解与变换函数库矩阵的分解与变换函数库 6.3 多项式函数库多项式函数库 6.4 函数功能和数值分析函数库函数功能和数值分析函数库6.5 字符串函数库字符串函数库 6.6 符号数学函数库符号数学函数库 6.7 系统仿真函数库系统仿真函数库 6.1 数据分析和傅里叶变换函数库数据分析和傅里叶变换函数库6.1.1 基本的数据分析基本的数据分析MATLAB的基本数据处理功能是按列向进行的,因此要求待处理的数据矩阵按列向分类,而不同的行向则表示数据的不同样本。例如,10个学生的

2、身高及三门课程分数列表如下: data = 154 49 83 67 158 99 81 75 155 100 68 86 145 63 75 96 145 63 75 96 141 55 65 75 155 56 64 85 147 89 87 77 147 96 54 100 145 60 76 67进行简单数据处理的命令见表4-1。其中大部分命令的意义很明确,不需解释。std标准差是指列中N个元素与该列平均值之差的平方和按N-1点取平均值的开方,即数列求和命令sum相当于矩形法求和,可用来近似求积分,用梯形法求和命令trapz求积分更为精确。梯形法是把相邻两点数据的平均值作为数据点,十个

3、数据只能产生9个数据点。如果数组长度为N,则sum和trapz的关系为trapz(data)=sum(data)-0.5(data(1)+data(N)其差额为半个首点和半个末点的数据和,将相加以后的结果乘以步长,才近似表示了这些数据包络下的面积。有些数据处理命令的结果不是一个标量而是一个列向量,为了节省篇幅,我们只取数据中的前三行,其结果见表4-2。注意其结果一般与原数据具有同样的行数,只有求差分(diff)才会减少一行,因为它是求相邻行之间的差。另外,cumtrapz函数是用梯形法累计求面积, 和trapz相仿,它也会使数据长度减少一。6.1.2 用于场论的数据分析函数用于场论的数据分析函

4、数用于场论的命令有以下几个: gradient: 用来求二维和三维场的近似梯度,例如根据电位分布求电场就可用这个函数。 del2: 是二维和三维场的拉普拉斯算子。 cross: 为两个向量的矢量积。 dot: 为两个向量的数量积。设i,j,k为沿x,y,z方向的单位向量,则对于两向量a=axi+ayj+azk和b=bxi+byj+bzk而言:向量的矢量积为(叉乘)ab=(aybz-azby)i+ (azbx-axbz)j+ (axby-aybx)k向量的数量积为(点乘)ab=axbx+ayby+azbz在MATLAB中这两个向量可表为: a=ax,ay,az; b=bx,by,bz; cros

5、s(a,b) = ay*bz-az*by, az*bx-ax*bz, ax*by-ay*bx; dot(a,b) = a*b; 6.1.3 用于随机数据分析的函数用于随机数据分析的函数MATLAB有两个产生随机数的命令: 一个是rand(m,n), 它产生在0与1之间均匀分布的m行n列随机数矩阵,其均值为,标准差(或均方根差)为0.2887; 另一个是randn(m,n), 它产生正态分布的m行n列随机数矩阵,其均值为0,标准差为1。其分布情况可用直方图命令hist(x,N)来显示, 其中N表示直方图横坐标的分割数,默认值为10。例如 x=rand(1,1000); hist(x) y=ran

6、dn(1,1000); hist(y,50)得出的两组图形分别如图4-1(a)、(b)所示。hist(x)是把1000个x中处于,0.91.0 各个区域中的数目分别清点出来,画成直方图。如果x真是均匀分布的,那么这个图应该是水平直线。实际上,随机数规律是按统计方法确定的,所以各区域的数量仍参差不齐,只有数据量无限增加时,此规律才越来越明显地表现出来。hist(y,50)则把y的最小值和最大值之间分成50份进行统计,得到一个钟形的,即正态分布的曲线。图 6-1 均匀分布与正态分布随机数直方图6.1.4 用于相关分析和傅里叶分析的函数用于相关分析和傅里叶分析的函数相关分析(包括卷积)和傅里叶分析分

7、别用于信号的时域和频域处理。这里虽然只给出了十几个函数,实际上它们是整个信号处理计算的基础。(1) corrcoef给出两个同长信号的相关系数,例如对前面两个随机序列,键入 R=corrcoef(x,y)得 R = -0.0508 1主对角线上是x和y的自相关系数,它必定为1; 此处可看出x和y的互相关很弱。(2) cov(x,y)给出x、y的协方差矩阵,对上述x、y,有 cov(x,y) = 0.0785 -0.0148 -0.0148 1.0782 其主对角线上的值分别为x和y的均方差,即标准差的平方(因为是随机数, 所以它不会严格等于理论值)。(3) conv(x,y) 给出x,y的卷积

8、。如果x是输入信号,y是线性系统的脉冲过渡函数,则x,y的卷积就给出系统的输出信号。卷积函数也用于多项式相乘,见小节。(4) filter(b,a,x)也是根据输入信号x和线性系统特性求输出信号的函数。它与conv 的不同在于系统的特性是以传递函数的分子多项式系数向量b和分母多项式系数向量a给出,而不是以脉冲过渡函数的形式给出的。(5) X=fft(x,N)求出时域信号x的离散傅里叶变换X。N为规定的点数。N的默认值为所给x的长度。当N取2的整数幂时变换的速度最快。通常取大于又最靠近x的整数幂,即令N2 nextpow2(length(x)。例如x的长度为12,nextpow2(12)=4,N

9、=24=16,多出的各点补以零。一般情况下,fft求出的函数为复数,可用abs及angle分别求其幅度和相位。在画频谱图时往往最关心其幅频特性。【例例6-1-1】 给出一个信号t=0: .001: 3; u=sin(300*t)+2*cos(200*t)它的幅频特性可用下列语句求得: U=fft(u); plot(abs(U)得出的频谱曲线如图4-2(a)所示,它对采样频率呈对称形式。为了看得更清楚,把坐标间隔缩小,键入axis(0,300,0,3000),得出的频谱曲线如图4-2(b)所示。图 6-2 例6-1-1中信号的幅频曲线(6) x=ifft(X)为傅里叶反变换函数,其用法与fft相

10、仿。(7) sound(u,s)会在音箱中产生u所对应的声音。s规定重放的速度,其缺省值为8192 (b/s)。数据分析和傅里叶变换函数库见表4-3。6.2 矩阵的分解与变换函数库矩阵的分解与变换函数库6.2.1 线性方程组的系数矩阵线性方程组的系数矩阵在节中我们提到了可以用矩阵除法来解线性方程组,本节将讨论有关解线性方程组的一些深入的问题及其工具函数。这些函数见表4-4中的矩阵分析和线性方程部分。det(a)用以求方阵a的行列式。若det(a)不等于零,则a的逆阵inv(a)存在。线性方程组的系数矩阵只有满足这个条件,它的解才存在。rank(a)用以求任意矩阵a的秩, 也就是它所能划分出的行

11、列式不为零的最大方阵的边长。trace(a)求出矩阵主对角线上元素的和。如果det(a)虽不等于零,但数值很小,近似于零,则这样的线性方程组称为病态的线性方程组,其解的精度比较低。为了评价线性方程组系数矩阵的病态程度,用了条件数(Condition Number) 的概念。条件数愈大,方程病态愈重,解的精度愈低。当系数矩阵的条件数很大(达到1016)而又拿它作除数(即解此线性方程组)时,MATLAB会提出警告: “条件数太大,结果可能不准确”,求条件数的函数为cond(a),a可以不是方阵。在线性方程组A*x=B中,系数矩阵A的行数m表示方程的数目,其列数n表示未知数的数目。在正常情况下,方程

12、数等于未知数数,即n=m,A为方阵,AB意味着inv(A)*B。实际上,对于方程数大于未知数数(mn)的超定方程组,以及方程数小于未知数数(mn2 x2=zeros(1,n1-n2),x2; elseif n1n2 x1=zeros(1,n2-n1),x1; end, y=x1+x2; 这样,多项式相加就可写成: c = polyadd(a,b),相减可另编一个子程序,或在polyadd的输入变元中加负号来实现。(3) 多项式相除: 相除是相乘的逆运算,用deconv实现。但除法不一定除得尽,会有余子式,因此键入 q,r=deconv(c,a) q=3 6 9 r=0 0 0 0 0 0其中,

13、 q是商式,r是余子式。因为用的是相乘的数据a和c,恰好除净。如令a1=a+1,则有: a1=3 5 7 9 q1,r1=deconv(c,a1) r1=0 0 0 7.5556 7.1111 4.0000余式为2+7.1111x+4,可以用商式与除式相乘,再加上余式的方法来检验: c1=conv(q1,a1)+r1得 c1 = 6 24 60 96 102 72与c相同。6.3.2 多项式求导、求根和求值多项式求导、求根和求值 (1) 多项式求导数(polyder): 键入 e=polyder(c)得 e = 30 96 180 192 102(2) 多项式求根(roots和poly函数):

14、 键入 ra=roots(a); rb=roots(b); rc=roots(c); ra,rb,rc得 ra=-1.6506 rb -1.0000 - 1.4142irc是ra和rb的并集,这是完全可以预计到的,为节省篇幅, 不再列出。由根求多项式系数是roots的逆运算,其函数名也是poly,有 a=poly(ra); b=poly(rb)从poly函数的用法可以看出MATLAB的智能特点: 当a是向量时,poly把它看做根来组成多项式; 当a是方阵时,poly用它组成方阵的特征多项式。(3) 多项式求值(polyval): 将多项式a中的自变量x赋予值xv时,该多项式的值可用 F=pol

15、yval (a,xv)求得,其中xv可以是复数,而且可以是矩阵或数组,此时polyval对输入变元作元素群运算,这对于求线性系统的频率特性特别方便。polyvalm则对输入的变元阵方阵作矩阵多项式运算。【例例6-3-2】 设a为系统分母系数向量,b为系统分子系数向量,求此系统的频率响应并画出频率特性。先令频率数组w取线性间隔: w=linspace(0,10); %在w等于010之间按线性间隔取100点(默认值) A=polyval(a,j*w); %分别求分母分子多项式的值(为复数数组) B=polyval(b,j*w); subplot(2,1,1); plot(w,abs(B./A) %

16、画两者元素群相除所得的幅频特性 subplot(2,1,2); plot(w,angle(B./A) %画相频特性频率特性通常在对数坐标中绘制。因此输入频率数组取对数等间隔: w1=logspace(-1,1) %在w1从10-110之间,按对数分割为50点(默认值) F=polyval(b,j*w1)./polyval(a,j*w1); %求出这些点上的频率响应(复数) subplot(2,1,1),loglog(w1,abs(F) %在双对数坐标中画出幅频特性 subplot(2,1,2); semilogx(w1,angle(F) %在双对数坐标(x)中画出相频特性所得曲线如图4-3所示。图 4-3 线性坐标和对数坐标中的频率特性(a) 线性坐标中的频率特性; (b) 对数坐标中的频率特性6.3.3 多项式拟合多项式拟合 p=polyfit(x,y,n)用于多项式曲线拟合。其中x,y是已知的N个数据点坐标向量,当然其长度均为N。n是用来拟合的多项式次数,p是求出的多项式的系数,n次多项式应该有n+1个系数,故p的长度为n+1。拟合的准则是最小二乘法。 【例例4-3-3】 设原始数

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号