MATLAB实验报告
更新时间:2024-03-26 21:43:01 阅读量: 综合文库 文档下载
- matlab安装教程推荐度:
- 相关推荐
MATLAB
实 姓名:专业:学号:
验 报 告
实验一 MATLAB环境的熟悉与基本运算
一、实验目的:
1.熟悉MATLAB开发环境
2.掌握矩阵、变量、表达式的各种基本运算
二、实验基本知识:
1.熟悉MATLAB环境:
MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、工作空间浏览器 文件和搜索路径浏览器。 2.掌握MATLAB常用命令 clc clear help lookfor who 3.MATLAB变量与运算符 变量命名规则如下:
(1) 变量名可以由英语字母、数字和下划线组成 (2) 变量名应以英文字母开头 (3) 长度不大于31个 (4) 区分大小写
MATLAB中设置了一些特殊的变量与常量,列于下表。
变量名 ANS i或j pi eps realmax 表1 MATLAB的特殊变量与常量 功能说明 变量名 默认变量名,以应答 realmin 最近一次操作运算结果 虚数单位 INF(inf) 圆周率 NAN(nan) 浮点数的相对误差 nargin 最大的正实数 nargout 功能说明 最小的正实数 无穷大 不定值(0/0) 函数实际输入参数个数 函数实际输出参数个数 清除命令窗口中内容 清除工作空间中变量 对所选函数的功能、调用格式及相关函数给出说明 查找具有某种功能的函数但却不知道该函数的准确名称 查询工作空间中的变量信息 MATLAB运算符,通过下面几个表来说明MATLAB的各种常用运算符
表2 MATLAB算术运算符
操作符 + - * .* ^ .^ 功能说明 加 减 矩阵乘 数组乘 矩阵乘方 数组乘方 操作符 \\ .\\ / ./ ' .' 功能说明 矩阵左除 数组左除 矩阵右除 数组右除 矩阵转置 数组转置 表3 MATLAB关系运算符
操作符 == ~= > < >= <= 表4 MATLAB逻辑运算符
逻辑运算符 & | ~ Xor 逻辑运算 And Or Not 说明 逻辑与 逻辑或 逻辑非 逻辑异或 功能说明 等于 不等于 大于 小于 大于等于 小于等于 表5 MATLAB特殊运算
符号 : ; , () [] {} 功能说明示例 1:1:4;1:2:11 分隔行 分隔列 构成向量、矩阵 构成单元数组
符号 功能说明示例 . .. … % 注释 ! 调用操作系统命令 = 用于赋值 4.MATLAB的一维、二维数组的寻访
表6 子数组访问与赋值常用的相关指令格式
指令格式 A(r,c) A(r,:) A(:,c) A(:) A(i) A(r,c)=Sa A(:)=D(:) 指令功能 数组A中r指定行、c指定列之元素组成的子数组 数组A中r指定行对应的所有列之元素组成的子数组 数组A中c指定列对应的所有行之元素组成的子数组 数组A中各列元素首尾相连组成的“一维长列”子数组 \一维长列\子数组中的第i个元素 数组A中r指定行、c指定列之元素组成的子数组的赋值 数组全元素赋值,保持A的行宽、列长不变,A、D两组元素 总和应相同 5.MATLAB的基本运算
表7 两种运算指令形式和实质内涵的异同表
数组运算 指令 A.' A=s s+B s-B,B-s s.*A 矩阵运算 含义 指令 含义 非共轭转置 A? 共轭转置 把标量s赋给A的每个元素 标量s分别与B元素之和 标量s分别与B元素之差 标量s分别与A元素之积 s*A 标量s分别与A每个元素之积 s./B,B.\\s 标量s分别被B的元素除 S*inv(B) B阵的逆乘s A.^n A的每个元素自乘n次 A^n A阵为方阵,自乘n次 A.^p 对A各元素分别求非整数幂 A^p 方阵A的非整数乘方 A+B 对应元素相加 A+B 矩阵相加 A-B 对应元素相减 A-B 矩阵相减 A.*B 对应元素相乘 A*B 内维相同矩阵相乘 A./B A的元素别B的对应元素除 A/B A右除B B.\\A 与上相同 B\\A A左除B exp(A) 以自然数e为底,分别以A的元expm(A) A的矩阵指数函数 素为指数,求幂 log(A) 对A的各元素求对数 logm(A) A的矩阵对数函数 sqrt(A) 对A的各元素求平方根 sqrtm(A) A的矩阵平方根函数 6.MATLAB的常用函数
表8 标准数组生成函数
指令 含义 指令 diag 产生对角形数组(对高维不适用) rand eye 产生单位数组(对高维不适用) randn magic 产生魔方数组(对高维不适用) zeros ones 产生全1数组 size() 表9 数组操作函数
指令 diag flipud fliplr reshape rot90 det rank 含义 提取对角线元素,或生成对角阵 以数组“水平中线”为对称轴,交换上下对称位置上的数组元素 以数组“垂直中线”为对称轴,交换左右对称位置上的数组元素 在总元素数不变的前提下,改变数组的“行数、列数” 矩阵逆时针旋转90度 方阵的行列式值 矩阵的秩 含义 产生均匀分布随机数组 产生正态分布随机数组 产生全0数组 返回指定矩阵的行数和列数 三、实验内容
1、学习安装MATLAB软件。
2、学习使用help命令,例如在命令窗口输入help eye,然后根据帮助说明,
学习使用指令eye(其它不会用的指令,依照此方法类推)
3、学习使用clc、clear,观察command window、command history和workspace
等窗口的变化结果。
4、初步程序的编写练习,新建M-file,保存(自己设定文件名,例如exerc1、
exerc2、 exerc3??),学习使用MATLAB的基本运算符、数组寻访指令、标准数组生成函数和数组操作函数。
注意:每一次M-file的修改后,都要存盘。
四、实验结果
练习A:
(1) help rand,然后随机生成一个2×6的数组,观察command window、
command history和workspace等窗口的变化结果。
(2)学习使用clc、clear,了解其功能和作用。
(3)输入C=1:2:20,则C(i)表示什么?其中i=1,2,3,…,10。
(4)输入A=[7 1 5;2 5 6;3 1 5],B=[1 1 1; 2 2 2; 3 3 3],在命
令窗口中执行下列表达式,掌握其含义:
A(2, 3) A(:,2) A(3,:) A(:,1:2:3) A(:,3).*B(:,2) A(:,3)*B(2,:) A*B A.*B A^2 A.^2 B/A B./A
(5)二维数组的创建和寻访,创建一个二维数组(4×8)A,查询数组
A第2行、第3列的元素,查询数组A第2行的所有元素,查询数组A第
6
列
的
所
有
元
素
。
(6)两种运算指令形式和实质内涵的比较。设有3个二维数组A2×4,B2×4,C2×2,写出所有由2个数组参与的合法的数组运算和矩阵指令。
(7)学习使用表8列的常用函数(通过help方法)
(8)学习使用表9数组操作函数。
练习B
(9)用reshape指令生成下列矩阵(不超过3次操作),并取出方框内的数组元素。
五、心得体会
这次实验是一次上机进行,所以只有一步一步按照实验的步骤做,通过这
次实验更加明白了一些知识和一些用法,光从书本上还是无法真的知道各种用法的区别的。
实验二 MATLAB数值及符号运算
一、 实验目的:
1、掌握矩阵的基本运算 2、掌握矩阵的数组运算 3、掌握多项式的基本运算 4、会求解代数方程
5、掌握创建符号表达式和矩阵的方法 6、掌握符号表达式的微分和积分运算
二、 实验基本知识:
1、多项式运算
poly —— 产生特征多项式系数向量 roots —— 求多项式的根
p=poly2str(c,?x?)(以习惯方式显示多项式) conv,convs多项式乘运算 deconv多项式除运算 多项式微分
polyder(p): 求p的微分
polyder(a,b): 求多项式a,b乘积的微分 2、代数方程组求解 1).恰定方程组的解
方程ax=b(a为非奇异)两种求解方法: x=inv(a)?b — 采用求逆运算解方程
x=a\\b — 采用左除运算解方程
2)超定方程组的解
方程 ax=b ,m matlab可求出两个解:用除法求的解x是具有最多零元素的解 是具有最小长度或范数的解,这个解是基于伪逆pinv求 得的。 3、符号矩阵的创建 1)用matlab函数sym创建矩阵(symbolic 的缩写) 命令格式:A=sym('[ ]') 2)用字符串直接创建矩阵 4、符号矩阵与数值矩阵的转换 将数值矩阵转化为符号矩阵,函数调用格式:double(A) 将符号矩阵转化为数值矩阵,函数调用格式: numeric(A) 5、符号微积分与积分变换 diff(f) — 对缺省变量求微分 diff(f,v) — 对指定变量v求微分 diff(f,v,n) —对指定变量v求n阶微分 int(f) — 对f表达式的缺省变量求积分 int(f,v) — 对f表达式的v变量求积分 int(f,v,a,b) — 对f表达式的v变量在(a,b)区间求定积分 6、符号代数方程求解 solve(f) —— 求一个方程的解 solve(f1,f2, …fn) —— 求n个方程的解 7、符号微分方程求解指令:dsolve 命令格式:dsolve(f,g): f —— 微分方程,可多至12个微分方程的求 解;g为初始条件,默认自变量为 'x',可任意指定自变量't', 'u'等,微分方程的各阶导数项以大写字母D表示 三、实验内容及结果: 1、已知a=[1 2 3;4 5 6;7 8 0],求其特征多项式并求其根。 2、已知多项式a(x)=x2+2x+3,b(x)=4x2+5x+6,求a,b的积并微分。 ?x1?2x2?83、求解方程 1)? 2x?3x?13 2?1?x1?2x2?1?2)?2x1?3x2?2 ?3x?4x?32?1?x1?2x2?3x3?1 3)? 2x?3x?4x?2 23?1 4、用两种方法创建符号矩阵,A =[ a, 2*b] [3*a, 0] 5、计算二重不定积分 ??xe?xydxdy 6、对符号方程f = ax2+bx+c 求解。1)对x求解,2)对a求解。 d2ydydy7、求解微分方程2?2?2y?0,y(0)?1,(0)?0。 dxdxdx 8、已知系统冲激响应为h(n)=[0.05,0.24,0.40,0.24,0.15,-0.1,0.1] ,系统输入u(n)由指令randn('state',1);u=2*(randn(1,100)>0.5)-1产生,该输入信号的起始作用时刻为0。试用直杆图(提示:用stem指令)画出分别显示该系统输入、输出信号的两张子图。 四、心得体会 这次实验进一步提升自己的能力,虽然刚开始实验时没有把所有的实验做完,回来后又一个人把没做完的补完,学习的过程是很美好的。希望一次比一次有进 步。 实验三 MATLAB语言的程序设计 一、实验目的: 1、熟悉MATLAB程序编辑与设计环境 2、掌握各种编程语句语法规则及程序设计方法 3、函数文件的编写和设计 4、了解和熟悉跨空间变量传递和赋值 二、实验基本知识: 1、程序流程控制语句 for循环结构 语法:for i=初值:增量:终值 语句1 ?? 语句n end 说明:1.i=初值:终值,则增量为1。 2.初值、增量、终值可正可负,可以是整数,也可以是小数,只须符合数学逻辑。 while 循环结构 语法:while 逻辑表达式 循环体语句 end 说明:1、whiIe结构依据逻辑表达式的值判断是否执行循环体语勾。若表达式的 值为真,执行循环体语句一次、在反复执行时,每次都要进行判断。若表达式的值为假,则程序执行end之后的语句。 2、为了避免因逻辑上的失误,而陷入死循环,建议在循环体语句的适当位置加break语句、以便程序能正常执行。(执行循环体的次数不确定;每一次执行循环体后,一定会改变while后面所跟关系式的值。) 3、while循环也可以嵌套、其结构如下: while逻辑表达式1 循环体语句1 while逻辑表达式2 循环体语句2 end 循环体语句3 end if-else-end分支结构 if 表达式 1 语句1 else if 表达式 2(可选) 语句2 else(可选) 语句3 end end 说明:1.if结构是一个条件分支语句,若满足表达式的条件,则往下执行;若不 满足,则跳出if结构。 2.else if表达式2与else为可选项,这两条语句可依据具体情况取舍。 3.注意:每一个if都对应一个end,即有几个if,记就应有几个end。 switch-case结构 语法:switch表达式 case常量表达式1 语句组1 case常量表达式2 语句组2 ?? otherwise 语句组n end 说明:1.switch后面的表达式可以是任何类型,如数字、字符串等。 2.当表达式的值与case后面常量表达式的值相等时,就执行这个case后面的语句组如果所有的常量表达式的值都与这个表达式的值不相等时,则执行otherwise后的执行语句。 程序流程控制指令 break、return、pause 2、函数文件的结构和编写方法 函数只能在函数体内对变量进行操作,也就是只能访问函数本身工作空间中的变量。 M函数文件的结构 (1) 函数定义行(function) (2) H1行(函数帮助文本的第一行) (3) 函数帮助文本 (4) 函数体 (5) 注释 函数文件编写后,保存时,其文件名必须与函数名相同。注意:函数名不要与MATLAB自身的函数命令相同。 三、实验内容及结果: 练习A 1、熟悉MATLAB程序编辑与设计环境 2、用for循环语句实现求1~100的和。 3、用for循环语句实现编写一个求n阶乘的函数文件。 4、一行100列的Fibonacci数组a,元素满足Fibonacci规则:a(1)=a(2)=1, a(i)=a(i-1)+a(i-2)(i=3,4,?),求该数组中第一个大于10000的元素。 练习B思考题 4、已知一维数组A=[2,4,5,8,10],B=[4,6,9,3,4],用for循环语句实现 。求和函数可用sum()。. 5、利用for循环求1!+2!+3!+ ? +5!的值。. 6、编写M函数表示曲线y2=e-t/3sin(3t)以及它的包络线y1=e-t/3,并从命令窗口输入命令语句绘制曲线,t的取值范围是[0,4π]。 7、设,编写一个M函数文件,使得调用f(x) 时,x可用矩阵代入,得出的f(x)为同阶矩阵。 四、心得体会 这次实验,是我第一次练习用m文件写程序,然后再运行。用m文件要比直接在窗口上写要好一些,因为m文件是可以保存下来,这样自己当时没有截取结果,以后也是可以在自己的电脑上打开。 实验四 采用SIMULINK的系统仿真 一、实验目的: 1、熟悉SIMULINK 工作环境及特点 2、掌握线性系统仿真常用基本模块的用法 3、掌握SIMULINK 的建模与仿真方法 二、实验基本知识: 1.了解SIMULINK模块库中各子模块基本功能 2. SIMULINK 的建模与仿真方法 (1)打开模块库,找出相应的模块。鼠标左键点击相应模块,拖拽到模型窗口中即可。 (2)创建子系统:当模型大而复杂时,可创建子系统。 (3)设置仿真控制参数。 三、实验内容及结果 练习 SIMULINK仿真实际应用. d2xdx1. 利用SIMULINK求解微分方程 2??(1?x2)?x?0,方程的初始 dtdt条件为x(0)=1, dx(0)?0。在增益模块‘Gain’取值分别为2和100dt)的情况下(即??2,??100运行,给出运行结果。 Gain2x\1sx'1sIntegrator1xScopeIntegratorGain1-K- 2. 已经系统框图,求传递函数,并求阶跃响应。 UA1+-1s?1+-A2G21s?1A3+-G11s?1G31s?1G4Y1s?1G6-+A51s?1G5-+A4 四、心得体会 此次实验,我们是需要用SIMULINK来完成。刚开始用SIMULINK时,有些慌慌张张,因为不清楚一些模块的位置。后来通过老师的提点知道位置并成功把图画出来了,同时自己也掌握SIMULINK 的建模 与仿真方法 。 实验五 采用SIMULINK的系统仿真(二) 一、实验目的: 1、熟悉SIMULINK 工作环境及特点 2、掌握线性系统仿真常用基本模块的用法 3、掌握SIMULINK 的建模与仿真方法 4、子系统的创建和封装设计 二、实验基本知识: 1.了解SIMULINK模块库中各子模块基本功能 2. SIMULINK 的建模与仿真方法 (1)打开模块库,找出相应的模块。鼠标左键点击相应模块,拖拽到模型窗口中即可。 (2)创建子系统:当模型大而复杂时,可创建子系统。 (3)设置仿真控制参数。 三、实验内容及实验结果 1、用两种滤波器设计方法实现下列问题: 构建一个低通滤波系统的SIMULINK模型。输入信号是一个受正 x(态噪声干扰的采样信号 kTs)?sin(2??10?kTs)?1.5cos(2??100?kTs)?n(kTs)N ( 0,在此 n ( kT ) ~ 0 .2 ) ,而 T s ? 0 . 001 (秒)采用10阶Butterworth低 2通滤波器,以便从输入信号中过滤获得10Hz的输出信号。 2、利用Simulink求解I(t)??0edx在区间t?[0,1]的积分,并求出积分值I(1). t?x2 exp(-u^2)ClockFcn1sIntegratorScope0Display 3、时变系统的仿真:对时变受控对象模型 2 d y ( t ) ? 0 . 2 t dy ? 5 t ? e sin( 2 t ? 6 ) y ( t ) ? u ( t ) 2 ? e dt dt 考虑一个控制系统模型如图所示,其中 KP?200,Ki?10,??2 均为常数,试分析闭环系统的阶跃响应曲线。 200s+10sStepTransfer FcnSaturation1sIntegrator1sIntegrator1Scopeexp(-0.2^u)ProductFcnsin(2*u+6)Fcn1Product1exp(-5^u)Fcn2Clock 四、心得体会 这次的实验相比于上一次的实验难度要大一些,因为用到的模块多而且比较复杂也不好寻找。但是却让我们学习了很多,解决一个问题的方法有很多,题目的解答也不是只有一种。通过多种方法的解答,更能学习到很多。 实验六 MATLAB的图形绘制 一、实验目的: 1、学习MATLAB图形绘制的基本方法; 2、熟悉和了解MATLAB图形绘制程序编辑的基本指令; 3、熟悉掌握利用MATLAB图形编辑窗口编辑和修改图形界面,并添加图形的各种标注; 4、掌握plot、subplot的指令格式和语法。 二、实验基本知识: 1、plot(x,y)------绘制由x,y所确定的曲线; 2、多组变量绘图:plot(x1, y1, 选项1, x2, y2, 选项2, ……); 3、图形窗口的分割; 4、图形编辑窗口的使用。 三、实验内容及结果 练习A 二维曲线绘制的基本指令plot ? 基本调用格式plot(x,y,'s') 特别注意:?s?是离散点形、连续线型和点线色彩三种设置数据构成的字 符串,三种设置数据可以组合使用,顺序任意。 ? plot的衍生调用格式 : 1. 单色或多色绘制多条曲线 : plot(X,Y,?s?):用s 指定的点形线型色彩绘制多条曲线。 plot(X,Y):采用默认的色彩次序用细实线绘制多条曲线 。 2. 多三元组绘制多条曲线 plot(X1,Y1,'s1',X2,Y2,'s2', ... ,Xn,Yn,'sn') 3. 单输入量绘线 plot(Y) ? 当X、Y均为(m×n)数组时,将绘制出n条曲线。每条曲线的几何位置由X、Y对应的列确定。 ? 当X、Y两个输入量中有一个是一维数组,且该数组的长度与另一个输入量的“行数”(或“列数”)相等时,将绘制出“列数”(或“行数”)条曲线。 ? plot(X,Y,?s?):只能用s指定的同一色彩绘制多条曲线。 【1】二维曲线绘图基本指令演示。本例运作后,再试验plot(t), plot(Y), plot(Y,t) ,以观察产生图形的不同。 t=(0:pi/50:2*pi)'; k=0.4:0.1:1; Y=cos(t)*k; plot(t,Y) 10.80.60.40.20-0.2-0.4-0.6-0.8-101234567 76543210020406080100120 10.80.60.40.20-0.2-0.4-0.6-0.8-1020406080100120 76543210-1-0.8-0.6-0.4-0.200.20.40.60.81 【2】用图形表示连续调制波形Y=sin(t)sin(9t) 及其包络线。 t=0:pi/1000:pi; y1=@(t)sin(t).*sin(9*t); y2=sin(t); plot(t,y1(t),t,y2'*[1,-1],'r--') hold on t0=linspace(0,pi,10); for i=1:length(t0) t00=fzero(y1,t0(i)); plot(t00,0,'o') end plot(pi,0,'o') 10.80.60.40.20-0.2-0.4-0.6-0.8-100.511.522.533.5 【3】在一个图形窗口绘制正弦和余弦曲线,要求给图形加标题“正弦和余弦曲线”,X轴Y轴分别标注为“时间t”和“正弦、余弦”,在图形的某个位置标注“sin(t)”“cos(t)”,并加图例,显示网格,坐标为正方形坐标系。 sint cost10.80.60.4sin(t)cos(t) ?sin(t)正弦、余弦0.20-0.2-0.4-0.6-0.8-1 0123时间4567cos(t)? t=0:pi/100:2*pi; y1=sin(t); y2=cos(t); plot(t,y1,'r.',t,y2,'g.'); legend('sin(t)','cos(t)'); axis square; title('sint cost') text(1,-0.4,'cos(t)\\rightarrow') text(2.8,0.4,'\\leftarrowsin(t)') xlabel('时间');ylabel('正弦、余弦') sint cost10.80.60.4 正弦、余弦0.20-0.2-0.4-0.6-0.8 12cost??sintsintcost -1 03t4567四、心得体会 这次是通过写程序得到绘制的图形,突然觉得MATLAB这个软件非常的神奇,先自己写,再运行,然后再对比结果进行修改。这个过程看到了波形格式各样的变换很精彩。 实验七 MATLAB在信号与系统中的应用 一、实验目的: 1.掌握利用MATLAB求解LTI系统的方法 2.掌握用MATLAB中滤波分析的函数命令。 3. 熟悉MATLAB信号处理工具箱。 二、实验基本知识: 1、绘制三维网格曲面图指令mesh()。 2.对于线性定常离散系统的响应函数为filter()。 函数调用格式: filter(B,A,x):对输入为向量x进行滤波处理。 三、实验内容及结果: 2?n1、已知二阶系统传递函数为H(s)?2,当?n?1时,试计算阻尼比?2s?2??ns??n从0.1~1时的二阶系统的阶跃响应,并绘制阶跃响应三维网格曲面图。 2、某LTI系统的单位冲激响应h(t)?e0,求系统响应 y(t). ?0.1t,输入x(t)???1,?0,1?t?10,初始条件为 其它 3、已知滤波器fc=30,fs=1000,为10阶的butterworth滤波器,对信号输入x(n)=0.8n(n=0:31)的响应y(n). 画出输入x(n)、输出y(n)波形。 四、心得体会 此次实验学习了很多,掌握利用MATLAB求解LTI系统的方法,同时也掌握用MATLAB中滤波分析的函数命令。 实验八:频率采样法设计FIR数字滤波器 数字滤波器从滤波器功能上可以分为低通、高通、带通、带阻以及全通滤波器;根据系统的单位冲击响应的特性,又可以分为有限长单位冲激响应滤波器(FIR)和无限长单位冲激响应滤波器(IIR)。 与IIR滤波器相比,FIR滤波器在保证幅度特性满足技术要求的同时,很容易做到有严格的线性相位特性。设FIR滤波器单位脉冲响应h(n)的长度为N,其系统函数为: 当滤波器的系数N满足一定的对称条件时,就可以获得线性相位。线性相位FIR滤波器共分为四种类型,分别为: 1) 类型I,系数对称,即2) 类型II,系数对称,即3) 类型III,系数反对称,即4) 类型IV,系数反对称,即 1)频率采样法 设计滤波器时,通常给出的是幅频特性的技术指标要求,可直接在频域进行处理,按照理想的频率特性 ,在 到2之间等间隔采样N点,得到: ,N为奇数。 ,N为偶数。 ,N为奇数。 ,N为偶数。 然后用H(k)的傅里叶逆变换作为滤波器的系数: 构成一个系统传递函数为 的实际的FIR数字滤波器,这种设 计方法称为频率采样法。 在使用频率采样法设计FIR数字滤波器时,应注意下列问题: (1)根据频域抽样定理,被采样的理想频率特性其采样点数N与滤波器的长度M应满足NM,否则将造成混叠。本实验取N=M。 (2)为保证滤波器的系数为实序列,作为复数序列的理想频率特性应具有共轭 对称性,幅度特性应为偶函数,相位特性应为奇函数。注意:必须在0~2的全频段上才能观察到其对称图形。习惯上,我们一般利用其对称性,只做0~频段上的图形。 (3)理想频率特性的相位特性应该与频率成线性关系,即满足线性相位的条件。 2)频率采样法的优化设计 为了提高阻带的衰减,减小通带的波动,可以采用频率采样的优化设计法,即在间断点区间内插入一个或几个过渡带采样点。 例1. 用频率采样法设计一个FIR数字低通滤波器,3dB截止频率 ,采 样点数分别取N=21点和N=61点,分别显示其幅频特性和脉冲响应曲线,观察采样点数对滤波器特性的影响。 参考程序如下: N = 21; %采样点数 n = 0:N-1; wc = 0.4*pi; %截止频率 N1 = fix(wc/(2*pi/N)); %样点间隔为2*pi/N,N1为wc的样点数 N2 = N - 2*N1 - 1; %N2为阻带样点数 A = [ones(1,N1+1),zeros(1,N2),ones(1,N1)]; %建立幅度特性样本序列 theta = -pi*(N-1)/N * [0 : N-1]; %建立相位特性样本序列 wa = [0:N-1]/N*2; %为作图建立对应的频率向量 %画图 subplot(211); plot(wa,A,'.-'); axis([0,2,-0.2,1.2]); title('理想幅频响应及样点序列(N=21)'); xlabel('频率(单位:\\pi)'); ylabel('H(e^{j\\omega})'); subplot(212); plot(wa,theta,'.-'); axis([0,2,-80,0]); title('理想相频响应及样点序列(N=21)'); xlabel('频率(单位:\\pi)'); ylabel('\\phi(\\omega)'); 理想幅频响应及样点序列(N=21)1H(ej?)0.5000.20.40.811.21.41.6频率(单位:?)理想相频响应及样点序列(N=21)0.61.820-20?(?)-40-60-8000.20.40.60.811.2频率(单位:?)1.41.61.82 N = 61; %采样点数 n = 0:N-1; wc = 0.4*pi; %截止频率 N1 = fix(wc/(2*pi/N)); %样点间隔为2*pi/N,N1为wc的样点数 N2 = N - 2*N1 - 1; %N2为阻带样点数 A = [ones(1,N1+1),zeros(1,N2),ones(1,N1)]; %建立幅度特性样本序列 theta = -pi*(N-1)/N * [0 : N-1]; %建立相位特性样本序列 wa = [0:N-1]/N*2; %为作图建立对应的频率向量 %画图 subplot(211); plot(wa,A,'.-'); axis([0,2,-0.2,1.2]); title('理想幅频响应及样点序列(N=61)'); xlabel('频率(单位:\\pi)'); ylabel('H(e^{j\\omega})'); subplot(212); plot(wa,theta,'.-'); axis([0,2,-80,0]); title('理想相频响应及样点序列(N=61)'); xlabel('频率(单位:\\pi)'); ylabel('\\phi(\\omega)'); 由图形应可见:该滤波器特性符合幅度特性为偶函数,相位特性为奇函数的 特点。后面部分示例不再使用0~2的全频段,仅在0~频段上显示特性曲线。 将理想的幅频特性和实际的幅频特性在同一图形中显示,同时显示其脉冲响应曲线,观察采样点数对滤波器特性的影响。此时可通过对上面的程序进行修改实现目的: %N = input('N='); %由使用者输入N N = 41; n = 0:N-1; wc = 0.4*pi; %截止频率 N1 = fix(wc/(2*pi/N)); %样点间隔为2*pi/N,N1为wc的样点数 N2 = N - 2*N1 -1; %N2为阻带样点数 A = [ones(1,N1+1),zeros(1,N2),ones(1,N1)]; %建立幅度特性样本序列 theta = -pi*(N-1)/N *[0: N-1]; %建立相位特性样本序列 Hk = A.*exp(j*theta); %建立频域特性样本序列 h = real(ifft(Hk)); %由反变换求脉冲序列h(n),并取实部 [H,w] = freqz(h,1,1000,'whole'); %计算滤波器的频率响应 H1 = (H(1:1000))'; %对矩阵H取转置 w1 = (w(1:1000))'; mag = abs(H1); db = 20*log((mag+eps)/max(mag)); %将单位转换为dB pha = angle(H); wa = [0:N-1]/N*2; %画图 subplot(311); plot(wa,A,'.-',w1/pi,mag); axis([0,2,-0.1,1.2]); title('理想幅频、样点序列及实际滤波器幅频响应'); xlabel('频率(单位:\\pi)'); ylabel('H(e^{j\\omega})'); subplot(312); stem(n,h); title('滤波器脉冲响应'); xlabel('n'); ylabel('h(n)'); subplot(313); plot(w1/pi,pha),title('实际滤波器的相频响应'); N = 21 理想幅频、样点序列及实际滤波器幅频响应H(ej?)10.5000.20.40.60.811.2频率(单位:?)滤波器脉冲响应1.41.61.820.5h(n)0-0.50103040n实际滤波器的相频响应20506050-500.20.40.60.811.21.41.61.82 N = 61 N=21和N=61时滤波器的幅频响应N=21和N=61时滤波器的幅频响应(dB)1.4501.201-500.80.6-1000.4-1500.2000.511.52-20000.511.52 例2:在满足上面显示理想/实际滤波器幅频响应等的设计要求下,在过渡带中增 加一个样点T1,取值0.42。要求显示其幅频特性曲线,观察增加了过渡带采样点后对滤波器特性的影响。 提示:只需将建立幅频特性样本序列的一句程序修改 结果:在过渡带增加了一点之后,通带波动迅速减小,阻带衰减也得到了很大的提高。 程序如下: %N = input('N='); %由使用者输入N N = 41; %采样点数 n = 0:N-1; wc = 0.4*pi; %截止频率 N1 = fix(wc/(2*pi/N)); %样点间隔为2*pi/N,N1为wc的样点数 N2 = N - 2*N1 -1; %N2为阻带样点数 T1=0.42; A = [ones(1,N1),T1,zeros(1,N2-1),T1,ones(1,N1)]; %建立幅度特性样本序列 theta = -pi*(N-1)/N *[0: N-1]; %建立相位特性样本序列 Hk = A.*exp(j*theta); %建立频域特性样本序列 h = real(ifft(Hk)); %由反变换求脉冲序列h(n),并取实部 [H,w] = freqz(h,1,1000,'whole'); %计算滤波器的频率响应 H1 = (H(1:1000))'; %对矩阵H取转置 w1 = (w(1:1000))'; mag = abs(H1); db = 20*log((mag+eps)/max(mag)); %将单位转换为dB pha = angle(H); wa = [0:N-1]/N*2; %画图 subplot(311); plot(wa,A,'.-',w1/pi,mag); axis([0,2,-0.1,1.2]); title('理想幅频、样点序列及实际滤波器幅频响应'); xlabel('频率(单位:\\pi)'); ylabel('H(e^{j\\omega})'); subplot(312); stem(n,h); title('滤波器脉冲响应'); xlabel('n'); ylabel('h(n)'); subplot(313); plot(w1/pi,pha),title('实际滤波器的幅频响应');
正在阅读:
MATLAB实验报告03-26
地下室施工组织设计09-24
开展文明科室创建活动实施方案02-29
2014年仁爱英语八年级下短语归纳 208-20
城市的远见——坚持远见,整体规划 观后感08-27
社会心理学10-22
2011高考江苏数学填空题压轴题05-30
高中化学 保护生存环境全章复习与巩固知识讲解学案 新人教版选修02-26
ANSYS实例分析(三角桁架受力分析 )05-31
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 实验
- 报告
- MATLAB
- 平顶山市公务员非酒精性脂肪肝和代谢综合征相关性调查研究
- 第二节 动物与人类生活的关系
- 梁杰-永磁同步电机在螺杆泵和柱塞泵等恒力矩负载中的应用 - 图文
- 2015年5月院感主题月知识竞赛复习题2
- 基于matlab产生gold序列课程设计报告
- 2017-2022年中国仓储物流市场深度分析与投资发展前景趋势研究报
- 18春福师《幼儿心理卫生与辅导》在线作业二
- 纯液体饱和蒸汽压的测定 - 静态法(华南师范大学物化实验)
- 译林版英语六年级上册Unit1测试题
- 开发成本 明细科目
- 机场特许经营法律制度的理论与实务
- 三片式法兰球阀课程设计
- 净宗法师:一向专称不虑烦恼业障
- 2018年对外经济贸易大学国际关系考研复试科目复试分数线复试参考
- 2013年6月3日基安达恒泰南庄施工图纸对接会议纪要
- 最新-2019年上半年工作总结 2019年度财务部工作总结及计划 精品
- 江西财经大学2013组网技术实验报告 - 图文
- 只有一个地球教案
- 研究生学术综合英语补充课文的原文翻译和习题答案 - 图文
- 人力资源管理实习日记 - 图文