ImageVerifierCode 换一换
格式:DOCX , 页数:40 ,大小:244.92KB ,
资源ID:10946375      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10946375.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(48MATLAB语言在DSP设计中的应用.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

48MATLAB语言在DSP设计中的应用.docx

1、48MATLAB语言在DSP设计中的应用 MATLAB语言在DSP设计中的应用随着计算机技术的高速发展,计算机语言也得到了迅速发展。我们熟知的BASIC、FORTRAN、C等广泛地应用于各种场合。但从工程计算和图形显示的角度,这些语言并不方便。1984年,美国Mathworks公司正式推出了 MATLAB语言。MATLAB是“矩阵实验室”(MATrix LABoratoy)的缩写,是一种科学计算软件,主要适用于控制和信息处理领域的分析设计。它是一种以矩阵运算为基础的交互式程序语言,能够满足工程计算和绘图的需求。与其它计算机语言相比,其特点是简洁和智能化,适应科技专业人员的思维方式和书写习惯,使

2、得编程和调试效率大大提高,并且很容易由用户自行扩展。因此,当前已成为美国和其它发达国家大学教学和科学研究中必不可少的工具。MATLAB语言自1988年推出3.x(DOS)版本,目前已出了4.x,5.x,6.x等(Windows)版本。随着版本的升级,内容不断扩充。1MATLAB的工作环境MATLAB的工作环境主要由命令窗(Command Windows)、文本编辑器(File Editor)、若干个图形窗(Figure Windows)及文件管理器组成。MATLAB视窗采用了WINDOWS视窗风格(如图5-1-1)。各视窗之间的切换可用快捷键Alt+Tab。图5-1-1 MATLAB的命令窗、

3、文本编辑窗和图形窗使用MATLAB4.x以上的版本,可在WINDOWS主界面上直接点击MATLAB图标,进入MATLAB命令窗口。在MATLAB命令窗下键入一条命令,按Enter键,该指令就被立即执行并显示结果。如果一个程序稍复杂一些,则需要采用文件方式,把程序写成一个由多条语句构成的文件。这时就需要用到文本编辑器。建立一个新文件,应在MATLAB命令窗口下点击空白文档符号或在File菜单下点击New,将打开MATLAB文本编辑器窗口,显示一个空白的文档。对已经存在的文件,则点击打开文件或在File菜单下点击Open,会自动进入文件选择窗口,找到文件后点亮并打开即可进入MATLAB文本编辑器窗

4、口。在MATLAB文本编辑器窗口中建立的文件默认为.m文件。如果要建立的文件是M函数文件,即希望被其它程序象MATLAB中的库函数那样被调用,则文件的第一句应是函数申明行,如:function y,w=XYZ(x,t)式中,function为MATLAB关键字,放置输出宗量,()中放置输入宗量,XYZ为函数名。当其它程序调用该函数时,只需在程序中直接使用function关键字后面的部分。函数申明行是M函数文件必不可少的一部分。程序执行的结果以图形方式显示时,将自动打开图形窗。在程序中,图形窗命令为figure。MATLAB允许打开多个图形窗。如果程序中对图形窗没有编号,将按程序执行的顺序自动给

5、图形窗编号。在MATLAB命令窗下,还具有许多文件管理的功能。例如,我们自己编写的文件放在一个专门的文件夹中,则需要将这个文件夹的路径存盘。否则,这个文件夹中的文件将不能在MATLAB环境下执行。在MATLAB命令窗口File下选set Path,将打开一个路径设置窗口。在这个窗口的Path菜单下选Add to Path,找到需要的文件夹,列入MATLAB路径,然后在File菜单下Save Path即可。MATLAB提供了许多演示程序供使用者参考学习。在MATLAB命令窗下键入demo,将出现MATLAB演示图形窗。使用者可根据提示进行操作。通常画面的上半部是图形,下半部是相应的MATLAB程

6、序语句。使用者可以在界面上直接修改其中的程序语句并执行,观察其结果。因此demo是一个很好的学习辅助手段。MATLAB语言支持使用DOS命令。在MATLAB命令窗下执行DOS命令,只需在原DOS命令前加!(惊叹号),回车后将直接执行该命令。在用MATLAB语言编写的程序中也可以直接使用!加DOS命令,作为一条MATLAB程序来执行。2MATLAB的基本语法在MATLAB中,变量和常量的标识符最长允许19个字符,标识符中第一个字符必须是英文字母。MATLAB区分大小写,默认状态下,A和a被认为是两个不同的字符。一、数组和矩阵(一)数组的赋值数组是指一组实数或复数排成的长方阵列。它可以是一维的“行

7、”或“列”,可以是二维的“矩形”,也可以是三维的甚至更高的维数。在MATLAB中的变量和常量都代表数组,赋值语句的一般形式为 变量=表达式(或数)如键入a=1 2 3; 4 5 6; 7 8 9则将显示结果:a= 1 2 3 4 5 6 7 8 9如键入X=-3.5 sin(6*pi) 8/5*(3+4) sqrt(2)则将显示:X = -3.5000 -0.0000 11.2000 1.4142数组放置在 中;数组元素用空格或逗号“,”分隔;数组行用分号“;”或“回车”隔离。(二)复数MATLAB中的每一个元素都可以是复数,实数是复数的特例。复数的虚部用i或j表示。复数的赋值形式有两种:z=

8、1+1i ,2+2i ;3+3i ,4+4i z=1,2;3,4+1,2;3,4*i得 z=1.000+1.000i 2.000+2.000i 3.000+3.000i 4.000+4.000i以上两式结果相同。注意,在第二式中“*”不能省略。在复数运算中,有几个运算符是常用的。运算符“”表示把矩阵作共轭转置,即把矩阵的行列互换,同时把各元素的虚部反号。函数conj表示只把各元素的虚部反号,即只取共轭。若想求转置而不要共轭,就把conj和“”结合起来完成。例如键入 w=z,u=conj(z),v=conj(z)可得 w=1.000-1.000i 3.000-3.000i 2.000-2.000

9、i 4.000-4.000iu=1.000-1.000i 2.000-2.000i 3.000-3.000i 4.000-4.000iv=1.000+1.000i 3.000+3.000i 2.000+2.000i 4.000+4.000i(三)数组寻访和赋值的格式表M-1 常用子数组的寻访、赋值格式子数组的寻访 和赋值 使 用 说 明 a(r,c) 由a的“r指定行”和“c指定列”上的元素组成的子数组 a(r,:) 由a的“r指定行”和“全部列”上的元素组成的子数组 a(:,c) 由a的“全部行”和“c指定列”上的元素组成的子数组 a(:) 由a的各列按自左到右的次序,首尾相接而生成“一维长

10、列”数组 a(s) “单下标”寻访。生成“s指定的”一维数组。s若是“行数组”(或“列数组”),则a(s)就是长度相同的“行数组”(或“列数组”)例:a=1 2 3; 4 5 6; 7 8 9;键入a(1,2)显示:ans = 2键入a(2,:)显示:ans = 4 5 6键入a(:,3)显示:ans = 3 6 9其它情况读者可以自行上机观察使用,此处不再一一举例。(四)执行数组运算的常用函数表M-2 三角函数和双曲函数 名 称 含 义 名 称 含 义 名 称 含 义 acos 反余弦 asinh 反双曲正弦 csch 双曲余割 acosh 反双曲余弦 atan 反正切 sec 正割 aco

11、t 反余切 atan2 四象限反正切 sech 双曲正割 acoth 反双曲余切 atanh 反双曲正切 sin 正弦 acsc 反余割 cos 余弦 sinh 双曲正弦 acsch 反双曲余割 cosh 双曲余弦 tan 正切 asec 反正割 cot 余切 tanh 双曲正切 asech 反双曲正割 coth 双曲余切 asin 反正弦 csc 余割 表M-3 指数函数 名 称 含 义 名 称含 义 名 称 含 义 exp 指数 log10 常用对数 pow2 2的幂 log 自然对数 log2 以2为底的对数 sqrt 平方根说明:表M-3、表M-4的使用形式与其它语言相似。如X=tan

12、(60), Y=20*log(U/0.775), Z=1-exp(-1.5*t)。表M-4 复数函数 名 称含 义 名 称含 义 名 称 含 义 abs 模,或绝对值 conj 复数共轭 real 复数实部 angle 相角(弧度) imag 复数虚部例:已知h=a+jb,a=3,b=4,求h的模。输入:a=3b=4h=a+b*jabs(h)将显示:ans =5键入:angle(h)将显示:ans =1. 9273键入:real(h)将显示:ans =3键入:imag(h)则显示:ans =4 表M-5 取整函数和求余函数 名 称 含 义 名 称 含 义 ceil 向+舍入为整数 rem(a,

13、b) a整除b,求余数 fix 向0 舍入为整数 round 四舍五入为整数 floor 向-舍入为整数 sign 符号函数 mod(x,m) x整除m取正余数例:键入ceil(1.45)显示:ans = 2键入:fix(1.45)显示:ans = 1键入:floor(-1.45)显示:ans = -2 键入:round(1.45)显示:ans = 1键入:round(1.62)显示:ans =2 键入:mod(-55,7) 显示:ans = 1 键入:rem(-55,7) 显示:ans =-6 (五)基本赋值数组表M-6 常用基本数组和数组运算 基本数组zeros全零数组(mn阶)logsp

14、ace 对数均分向量(1n阶数组)ones 全么数组(mn阶)freqspace频率特性的频率区间rand随机数数组(mn阶)meshgrid画三阶曲面时的X,Y网格randn 正态随机数数组(mn阶)linspace均分向量(1n阶数组)eye(n)单位数组(方阵): 将元素按列取出排成一列 特殊变量和函数 ans 最近的答案 Inf Infinity(无穷大) eps浮点数相对精度 NaN Not-a-Number(非数)realmax 最大浮点实数 flops 浮点运算次数 realmin 最小浮点实数 computer 计算机类型 pi3.14159235358579 inputnam

15、e * 输入变量名 i,j虚数单位 size 多维数组的各维长度 length 一维数组的长度 为便于大量赋值,MATLAB提供了一些基本数组。举例说明:A=ones(2,3),B=zeros(2,4),C=eye(3)得 A=1 1 1 B=0 0 0 0 C=1 0 0 1 1 1 0 0 0 0 0 1 0 0 0 1 线性分割函数linespace(a,b,n)在a和b之间均匀地产生n个点值,形成1n元向量。如D=linspace(0,1,5)得 D= 0 0.2500 0.5000 0.7500 1.0000(六)数组运算和矩阵运算 MATLAB中最基本的运算是矩阵运算。但是在MAT

16、LAB的运用中,大量使用的是数组运算。从外观形状和数据结构上看,二维数组和(数学中的)矩阵没有区别。但是,矩阵作为一种变换或映射算子的体现,其运算有着明确而严格的数学规则。而数组运算是MATLAB软件所定义的规则,其目的是为了数据管理方便、操作简单、指令形式自然简便以及执行计算有效。虽然数组运算尚缺乏严谨的数学推理,数组运算本身仍在完善和成熟中,但它的作用和影响正随着MATLAB的发展而扩大。为更清晰地表述数组运算与矩阵运算的区别,我们以表M-7叙述各数组运算指令的意义。其中假定S=2,n=3,P=1.5。A=1 2 3; 4 5 6; 7 8 9,B=2 3 4; 5 6 7; 8 9 1。

17、表M-7 举例说明数组运算指令的意义 指 令 含 义 运 算 结 果 s+A 标量s分别与A元素之和 3 4 5 6 7 8 9 10 11 A-s A分别与标量s的元素之差-1 0 1 2 3 4 5 6 7 s.*A 标量s分别与A的元素之积 2 4 6 8 10 12 14 16 18s./A或A.s s分别被A的元素除 2.0000 1.0000 0.6667 0.5000 0.4000 0.3333 0.2857 0.2500 0.2222 A.n A的每个元素自乘n次 1 8 27 64 125 216 343 512 729 p.A 以p为底,分别以A的元素为指数 求幂值1.50

18、00 2.2500 3.3750 5.0625 7.5938 11.3906 17.0859 25.6289 38.4434 A+B 对应元素相加 3 5 7 9 11 13 15 17 10 A-B 对应元素相减-1 -1 -1 -1 -1 -1 -1 -1 8 A.*B 对应元素相乘 2 6 12 20 30 42 56 72 9 A./B或 B.A A的元素被B的对应元素除 0.5000 0.6667 0.7500 0.8000 0.8333 0.8571 0.8750 0.8889 9.0000 exp(A) 以自然数e为底,分别以A的元素为指数,求幂 1.0e+003 * 0.002

19、7 0.0074 0.0201 0.0546 0.1484 0.4034 1.0966 2.9810 8.1031 log(A) 对A的各元素求对数 0 0.6931 1.0986 1.3863 1.6094 1.7918 1.9459 2.0794 2.1972 sqrt(A) 对A的各元素求平方根 1.0000 1.4142 1.7321 2.0000 2.2361 2.4495 2.6458 2.8284 3.0000例:有一函数X(t)=tsin3t,在MATLAB程序中如何表示?解: X=t.*sin(3*t)例:有一函数X(t)=sin3t/3t, 在MATLAB程序中如何表示?解

20、: X=sin(3*t)./(3*t)二、逻辑判断与流程控制(一)关系运算关系运算是指两个元素之间数值的比较,一共有六种可能。如表M-8所列。关系运算的结果只有两种可能,即0或1。0表示该关系式为“假”,1表示该关系式为“真”。例1:A=3+4=7,得 A=1。例2:已知N=0,B=N=0,得 B=1。 若N=2,B=N=0,得 B=0。表M-8 关系运算符 指 令 含 义 指 令 含 义 = 大于等于 大于 = 不等于(二)逻辑运算逻辑量的基本运算为“与(&)”、“或()”、“非()”三种,另外还可以用“异或(xor)”,如表M-9所示。表M-9 逻辑运算符 运 算 A=0 A=1 B=0

21、B=1 B=0 B=1 A&B 0 0 0 1 A|B 0 1 1 1 A 1 1 0 0 xor(A,B) 0 1 1 0 (三)基本的流程控制语句 if条件执行语句格式: if 表达式 语句, end if 表达式1 语句组A, else 语句组B, endif 表达式1 语句组A, elseif 表达式2 语句组B, else 语句组C, end执行到该语句时,计算机先检验if后的逻辑表达式,为1则执行语句A;如为0则跳过A检验下一句程序,直到遇见end,执行end后面的一条语句。例:if n3 x=3; end若n=5,则结果 x=3 while循环语句格式: while 表达式 语句

22、组A, end执行到该语句时,计算机先检验while后的逻辑表达式,为1则执行语句A;到end处,它就跳回到while的入口,再检验表达式,如仍为1则再执行语句A,直到结果为0,就跳过语句组A,直接执行end后面的一条语句。例:while k=1000 k=k+1; end键入k将显示 k= 1001 for循环语句格式: for k=初值:增量:终值 语句组A, end将语句组A重复执行N次,但每次执行时程序中k值不同。增量缺省值为1。例:y=0;for k=1:20 y=y+k;end键入y将显示y=210 switch多分支语句格式: switch 表达式(标量或字符串) case 值1

23、 语句组A case 值2 语句组B otherwise 语句组N end当表达式的值与某case语句中的值相同时,它就执行该case语句后的语句组,然后直接跳到终点的end处。三、基本绘图方法(一) 二维图形函数MATLAB语言支持二维和三维图形,这里我们主要介绍常用的二维图形函数。如表M-11所示。表M-11 常用图形函数库 基本XY图形 plot 线性X-Y座标绘图 polar 极座标绘图 loglog 双对数X-Y座标绘图 plotyy 用左、右两种Y座标画图 semilogx 半对数X座标绘图 semilogy 半对数Y座标绘图 stem 绘制脉冲图 stairs 绘制阶梯图 bar

24、 绘制条形图 坐 标 控 制 axis控制座标轴比例和外观subplot 按平铺位置建立子图轴系 hold 保持当前图形 图 形 注 释 title 标出图名(适用于三维图形) gtext 用鼠标定位文字 xlabel X轴标注(适用于三维图形) legend 标注图例 ylabel Y轴标注(适用于三维图形) grid 图上加座标网格(适用于三维) text 在图上标文字(适用于三维) 打 印 print 打印图形或把图存为文件 orient 设定打印纸方向 printopt打印机默认选项 常用的三维曲线绘图命令 Plot3在三维空间画点和线 mesh 三维网格图 fill3在三维空间绘制填

25、充多边形 surf 三维曲面图最常用的命令使用说明:plot(t,y)表示用线性X-Y座标绘图,X轴的变量为t,Y轴的变量为y。subplot(2,2,1)建立22子图轴系,并选定图1。axis(0 1 -0.1 1.2)表示建立一个座标,横座标的范围从0至1,纵座标的范围从-0.1至1.2。title(X(n)曲线)在子图上端标注图名作图时,线形、点形和颜色的选择可参考表M-12。表M-12 线形、点形和颜色标志符 b c g k m r w y颜 色 蓝 青 绿 黑 品红 红 白 黄标志符 。 线、点 点 圆圈 号 号 实线 星号 点线点划线 虚线(二)举例以下举例说明二维图形函数在程序中

26、的使用方法。例1:作一条曲线,程序如下。t=0:0.5:4*pi; %将t在0到4间每间隔0.5取一点y=exp(-0.1*t).*sin(t);subplot(2,2,1),plot(t,y); %建立22子图轴系,在图1处绘线性图title(plot(t,y); %标注图名subplot(2,2,2),stem(t,y); %在22子图轴系图2处绘脉冲图title(stem(t,y);subplot(2,2,3),stairs(t,y); %在22子图轴系图3处绘阶梯图title(stairs(t,y);subplot(2,2,4),bar(t,y); %在22子图轴系图2处绘条形图tit

27、le(bar(t,y);例2:已知,。在同一座标系对两条曲线作图,用不同的颜色和线型区分。方法一:将同时显示曲线的向量列入数组,t必须等长。显示的线型和颜色不能任意选择。t=0:0.01:2; y1=sin(2*pi*t);y2=cos(4*pi*t);plot(t,y1;y2);图M-1 例2方法一方法二:显示曲线的向量t不必等长,显示的线型和颜色能任意选择。作图时,先画第一条曲线保持住,再画第二条曲线。 图M-2 例2方法二t1=0:0.01:1; y1=sin(2*pi*t1);t2=0:0.01:2y2=cos(4*pi*t2);plot(t1,y1,*m),hold ; %让第一条曲线保持住,再画第二条曲线plot(t2,y2,+b); 3MATLAB在信号处理中常用的函数MATLAB系统软件中具有专用的信号处理工具箱,对于我们学习信号与系统、数字信号处理等课程,进行通信、电子工程设计计算是一个非常有效的辅助手段。这里,我们仅列写出最常用的部分,供大家参考。一、常用的信号及信号的波形(一)常用的信号 在 MATLAB中的信号处理工具箱中,主要提供的信号是离散信号。由于MATLAB对下标的约定为从1开始递增,例如x=5,4,3,2,1,0,表示x(1)=5,x(2)=4,X(3)=3因此要表示一个下标不由1开始的数组x(n),一般应采用两个矢量,如 n=-3,-2,-

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1