首页 > 文库大全 > 精品范文库 > 5号文库

扬州大学MATLAB实验7.1.4(共五则)

扬州大学MATLAB实验7.1.4(共五则)



第一篇:扬州大学MATLAB实验7.1.4

1.实验目的

(1)学习MATLAB的各种二维绘图(2)学习MATLAB的三维绘图(3)MATLAB的绘图修饰 2.实验内容

在下面的实验操作中,认真记录每项操作的作用和目的。(1)基本二维绘图 1)向量绘图

>> x=0:2*pi/100:2*pi;>> y1=sin(2*x);y2=cos(2*x);>> plot(x,y1)>>plot(x,y2)

>> plot(x,y1,x,y2)

>> plot(x,y1);hold on;>> plot(x,y2);hold off;

>> plot(x',[y1' y2'])

>> plot(x,y1,'c:',x,y2,'ro')

>> figure(1);plot(x,y1);

>> figure(2);plot(x,y2);

>> figure(1);plot(x,y1);>> figure(2);plot(x,y2);>> subplot(221);plot(x,y1);

>> subplot(222);plot(x,y2);>> subplot(223);plot(x,y1,x,y1+y2);>> subplot(224);plot(x,y2,x,y1-y2);

>> w=0.01:0.01:10;>> G=1./(1+2*w*i);>> subplot(121);plot(G);>> subplot(122);plot(real(G),imag(G));

>> x=0:2*pi/8:2*pi;y=sin(x);>> plot(x,y,'o');hold on;

>> x=0:2*pi/8:2*pi;y=sin(x);>> plot(x,y,'o');hold on;

>> xi=0:2*pi/100:2*pi;>> yi=spline(x,y,xi);>> plot(xi,yi,'m');>> whitebg

>> whitebg('b')

>> whitebg('k')

2)函数绘图。

>> fplot('sin',[0 4*pi])>> f='sin(x)';fplot(f,[0 4*pi])

>> fplot('sin(1/x)',[0.01 0.1],1e-3)

>> fplot('[tan(x),sin(x),cos(x)]',[-2*pi,2*pi,-2*pi,2*pi])

>> syms x >> f=exp(-0.5*x)*sin(x);>> ezplot(f,[0,10])

(2)多种二维绘图

1)半对数绘图

>> w=logspace(-1,1);>> g=20*log10(1./(1+2*w*i));>> p=angle(1./(1+2*w*i))*180/pi;>> subplot(211);semilogx(w,g);grid;>> subplot(212);semilogx(w,p);grid;

2)极坐标绘图。>> t=0:2*pi/180:2*pi;>> mo=cos(2*t);>> polar(t,mo);

3)直方图。

>> t=0:2*pi/8:2*pi;>> y=sin(t);>> bar(t,y)

4)离散棒图

>> t=0:2*pi/8:2*pi;>> y=sin(t);>> stairs(t,y)

5)阶梯图。

>> t=0:2*pi/8:2*pi;>> y=sin(t);>> stem(t,y)

6)彗星绘图。>> t=-pi:pi/200:pi;>> comet(t,tan(sin(t))-sin(tan(t)));

(3)图形注释

>> y1=dsolve('D2u+2*Du+10*u=0','Du(0)=1,u(0)=0','x');>> y2=dsolve('D2u+2*Du+10*u=1','Du(0)=0,u(0)=0','x');>> ezplot(y1,[0,5]);hold on;ezplot(y2,[0,5]);

>> axis([0,5,-0.1,0.2])>> title('二阶系统时间响应');>> xlabel('时间t');ylabel('响应幅值y');>> gtext('零输入响应');>> gtext('零状态响应');>> grid;hold off;

(4)三维绘图 1)三维线图。>> t=0:pi/50:10*pi;>> plot3(sin(t),cos(t),t);>> comet3(sin(t),cos(t),t);

2)单变量高度网线图。>> Z2=[1 1;1-1];>> Z4=[Z2 Z2;Z2-Z2];>> Z8=[Z4 Z4;Z4-Z4];>> mesh(Z8);

3)3变量马鞍面网线图。>> x=-4:0.5:4;y=x;>> [X,Y]=meshgrid(x,y);>> Z=X.^2-Y.^2;>> mesh(X,Y,Z);

4)圆锥面网线图。>> t1=0:0.1:0.9;>> t2=1:0.1:2;>> r=[t1-t2+2];>> [X,Y,Z]=cylinder(r,40);>> mesh(X,Y,Z);

5)视角修饰。>> t1=0:0.1:0.9;>> t2=1:0.1:2;>> r=[t1-t2+2];>> [X,Y,Z]=cylinder(r,30);>> mesh(X,Y,Z);>> subplot(2,2,1);mesh(X,Y,Z);view(0,0);>> subplot(2,2,2);mesh(X,Y,Z);view(-20,20);>> subplot(2,2,3);mesh(X,Y,Z);view(-30,30);>> subplot(2,2,4);mesh(X,Y,Z);view(-40,40);

6)MATLABA暖色(hot)函数色图。>> peaks(20);

z = 3*(1-x).^2.*exp(-(x.^2)x.^3y.^2)

>> axis('off')>> colormap(hot);>> colorbar('horiz');

7)光照修饰。>> surfl(peaks(20));>> colormap(hot);>> shading interp;

8)表面修饰。

>> subplot(131);peaks(20);shading flat;

z = 3*(1-x).^2.*exp(-(x.^2)x.^3y.^2)

>> subplot(132);peaks(20);shading interp;

z = 3*(1-x).^2.*exp(-(x.^2)x.^3y.^2)

>> subplot(133);peaks(20);shading faceted;

z = 3*(1-x).^2.*exp(-(x.^2)x.^3y.^2)

9)透视与消隐。>> P=peaks(30);>> subplot(121);mesh(P);hidden off;>> subplot(122);mesh(P);hidden on;

10)裁剪修饰。>> P=peaks(30);>> P(20:23,9:15)=NaN*ones(4,7);>> subplot(121);meshz(P);>> subplot(122);meshc(P);

11)水线修饰。

>> waterfall(peaks(20))>> colormap([1 0 0])

12)等高线修饰。

>> contour(peaks(20),6)>> contour3(peaks(20),10)>> clabei(contour(peaks(20),4))>> clabel(contour(peaks(20),4))>> clabel(contour3(peaks(20),3))

第二篇:MATLAB实验指导书

MATLAB及其应用

实验指导书

物理与信息工程系

目录

实验一 MATLAB编程环境..............................................3 实验二 矩阵基本运算

(一)..........................................5 实验三 矩阵基本运算

(二)..........................................7 实验四 矩阵分析...................................................9 实验五 分支结构程序设计..........................................11 实验六 循环结构程序设计..........................................13 实验七 文件操作..................................................15 实验八 二维曲线的绘制............................................17 实验九 三维曲线和曲面的绘制......................................19 实验十 MATLAB数据统计处理........................................21 实验十一 多项式四则运算..........................................23 实验十二 线性方程组求解及函数求极值.............................25 实验一 MATLAB编程环境

一、实验目的

1.熟悉MATLAB编程环境

二、实验环境

1.计算机

2.MATLAB7.0集成环境

三、实验说明

1.首先应熟悉MATLAB7.0运行环境,正确操作 2.实验学时:2学时

四、实验内容和步骤

1.实验内容

(1)命令窗口的使用。(2)工作空间窗口的使用。(3)工作目录、搜索路径的设置。(4)命令历史记录窗口的使用。(5)帮助系统的使用。(6)了解各菜单的功能。2.实验步骤

(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(3)编辑程序并进行保存。

(4)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。

(5)检查程序输出结果。

五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 实验二 矩阵基本运算

(一)一、实验目的

1.通过实验,进一步熟悉MATLAB编程环境 2.通过实验掌握建立矩阵的几种方法 3.通过实验理解常用的矩阵运算

二、实验环境

1.计算机

2.MATLAB7.0集成环境

三、实验说明

1.首先应熟悉MATLAB7.0运行环境,正确操作 2.自主编写程序,必要时参考相关资料 3.实验学时:2学时

四、实验内容和步骤

1.实验内容

(1)设A和B是两个同维同大小的矩阵,问:

1)A*B和A.*B的值是否相等? 2)A./B和B.A的值是否相等?

3)A/B和BA的值是否相等?操作过程参照教材中除法的矩阵生成。4)A/B和BA所代表的数学含义是什么?(2)写出完成下列操作的命令。

1)将矩阵A第2—5行中第1,3,5列元素赋给矩阵B。2)删除矩阵A的第7号元素。3)将矩阵A的每个元素值加30。4)求矩阵A的大小和维数。(3)下列命令执行后,L1、L2、L3、L4的值分别是多少/ A=1:9;B=10-A;L1=A==B;L2=A<=5;L3=A>3&A<7;L4=find(A>3&A<7);2.实验步骤

(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(3)编辑程序并进行保存。

(4)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。

(5)检查程序输出结果。

五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 实验三 矩阵基本运算

(二)一、实验目的

1.熟悉矩阵的建立方式 2.理解矩阵拆分的方法

3.通过实验进一步掌握矩阵的基本运算

二、实验环境

1.计算机

2.MATLAB7.0集成环境

三、实验说明

1.熟练操作MATLAB7.0运行环境 2.自主编写程序,必要时参考相关资料 3.实验前应写出程序大致框架或完整的程序代码 5.实验学时:2学时

四、实验内容和步骤

1.实验内容

154831,B253 078(1)已知A3203617求下列表达式的值:

1)A+6B和A2-B+I(I为单位矩阵,matlab中使用eye来生成)2)A*B,A.*B和B*A 3)A/B和BA

4)[A,B]和 [A([1,3],:);B^2](2)已知

0.778023104145655,取出其前三行构成矩阵B,其前两列构成矩A325032543.1469.54阵C,其右下角3×2子矩阵构成矩阵D,B与C的乘积构成矩阵E,分别求E=10&A<25)2.实验步骤

(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(3)编辑程序并进行保存。

(4)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。

(5)检查程序输出结果。

五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会

实验四

矩阵分析

一、实验目的

1.学会求矩阵的对角线元素、对角阵和逆矩阵 2.学会求矩阵的行列式的值、秩 3.学会求矩阵的特征值和特征向量 4.通过练习熟悉矩阵分析方法

二、实验环境

1.计算机

2.MATLAB7.0集成环境

三、实验说明

1.熟练操作MATLAB7.0运行环境 2.自主编写程序,必要时参考相关资料 3.实验前应写出程序大致框架或完整的程序代码 5.实验学时:2学时

四、实验内容和步骤

1.实验内容

(1)使用函数,实现方阵左旋90°或右旋90°的功能。例如,原矩阵为A,A左旋后得到B,右旋后得到C。使用函数rot90(A,k)来实现;

101112321471078965,A25811B456,C9836912123121114 710(2)建立一个方阵A,求A的逆矩阵和A的行列式的值,并验证A与A-1是互逆的。A的逆(inv(A));A的行列式(det(A))(3)求下列矩阵的主对角线元素、上三角阵、下三角阵、秩和迹。参考教材

1125141)A3051115030.434322

2)B8.9421 29(4)求矩阵A的特征值。参考教材

10.51 A110.250.50.2522.实验步骤

(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(3)编辑程序并进行保存。

(4)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。

(5)检查程序输出结果。

五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 实验五

分支结构程序设计

一、实验目的

1.理解MATLAB的编程方法

2.掌握if语句和switch语句的使用 3.掌握分支结构程序设计方法

4.通过练习理解MATLAB编程方法和分支结构程序设计方法。

二、实验环境

1.计算机

2.MATLAB7.0集成环境

三、实验说明

1.熟练操作MATLAB7.0运行环境 2.自主编写程序,必要时参考相关资料 3.实验前应写出程序大致框架或完整的程序代码 5.实验学时:2学时

四、实验内容和步骤

1.实验内容

(1)从键盘输入一个数,将它反向输出,例如输入693,输出为396(2)输入一个百分制成绩,要求输出成绩等级A,B,C,D,E其中90-100位A,80-89为B,70-79为C,60-69为D,60以下为E 1)分别用if语句和switch语句实现

2)输入百分制成绩后要判断成绩的合理性,对不合理的成绩应输出出错信息

2.实验步骤(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(3)编辑程序并进行保存。

(4)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。

(5)检查程序输出结果。

五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 实验六

循环结构程序设计

一、实验目的

1、理解循环控制结构的执行过程

2、掌握for语句和while语句的使用

3、掌握循环结构程序设计方法

4、通过练习进一步理解MATLAB的编程方法和循环结构程序设计方法

二、实验环境

1.计算机

2.MATLAB7.0集成环境

三、实验说明

1.熟练操作MATLAB7.0运行环境 2.自主编写程序,必要时参考相关资料 3.实验前应写出程序大致框架或完整的程序代码 5.实验学时:2学时

四、实验内容和步骤

1.实验内容

(1)编写程序实现求两矩阵A.*B.(2)编写程序实现求矩阵的转置。2.实验步骤

(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(3)编辑程序并进行保存。

(4)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。

(5)检查程序输出结果。

五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会

实验七

文件操作

一、实验目的

1、掌握文件的建立、打开与关闭和文件的读写操作

2、理解文件定位操作

3、通过练习理解文件的基本操作

二、实验环境

1.计算机

2.MATLAB7.0集成环境

三、实验说明

1.熟练操作MATLAB7.0运行环境 2.自主编写程序,必要时参考相关资料 3.实验前应写出程序大致框架或完整的程序代码 4.实验学时:2学时

四、实验内容和步骤

1.实验内容

(1)以读写方式打开二进制格式数据文件,将浮点数X添加到文件末尾,将文件内容以浮点数格式读入变量Z,将文本文件的第二行读入变量H,向文件尾部移动文件指针6个字节。

sin(x1.7)lnx,当x取-3.0、-2.9、-2.8、…、2.8、2.9、3.0时,(2)已知y21cos(x1.7)求各点的函数值。要求:将函数值输出到一个数据文件中;从数据文件中读出数据,求各点函数值的平均值;将平均值添加到数据文件末尾。(3)编写程序,该程序能读取一个文本文件,并能将文本文件中的小写字母转换为相应的大写字母而生成一个新的文本文件。2.实验步骤

(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(3)编辑程序并进行保存。

(4)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。

(5)检查程序输出结果。

五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会

实验八

二维曲线的绘制

一、实验目的

1、理解MATLAB绘图方法

2、掌握绘制二维数据曲线图的方法

3、掌握用plot函数和fplot函数绘制曲线的方法

4、通过练习掌握绘制二维数据曲线图的方法和plot函数和fplot函数的使用

二、实验环境

1.计算机

2.MATLAB7.0集成环境

三、实验说明

1.熟练操作MATLAB7.0运行环境 2.自主编写程序,必要时参考相关资料 3.实验前应写出程序大致框架或完整的程序代码 4.实验学时:2学时

四、实验内容和步骤

1.实验内容

(1)绘制下列曲线:

x1①yx

②ye323x22xrsint

③x2y6④

yrcost22(2)通过用plot和fplot函数绘制ysin1的曲线,并分析其区别。x解释:fplot函数的调用格式为: fplot(fname,lims,tol,选项)

其中fname为函数名,以字符串形式出现,lims为x,y的取值范围,tol为相对允许误差,其系统默认值为2e-3。选项定义与plot函数相同。2.实验步骤

(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(3)编辑程序并进行保存。

(4)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。

(5)检查程序输出结果。

五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 实验九

三维曲线和曲面的绘制

一、实验目的

1、理解三维曲线的绘制

2、理解曲面图的绘制

3、通过练习熟悉三维曲线和曲面图的绘制方法

二、实验器材

1.计算机

2.MATLAB7.0集成环境

三、实验说明

1.自主编写程序,必要时参考相关资料 2.实验前应写出程序大致框架或完整的程序代码 5.实验学时:2学时

四、实验内容和步骤

1.实验内容

(1)绘制下列三维曲线

xet/20costt/201)yesint,0t2

2)zt(2)绘制下列曲面图

1)z=5,|x|≤5,|y|≤5

2)f(x,y)xt2yt,0t1 zt351xy22,x3,y3

2.实验步骤

(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(4)编辑程序并进行保存。

(5)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。

(6)检查程序输出结果。

五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 实验十

MATLAB数据统计处理

一、实验目的

1、掌握MATLAB求最大最小值的方法

2、掌握MATLAB求均值与方差的方法

3、通过练习以下内容熟悉数据统计处理的几种方法

二、实验器材

1.计算机

2.MATLAB7.0集成环境

三、实验说明

1.自主编写程序,必要时参考相关资料 2.实验前应写出程序大致框架或完整的程序代码 5.实验学时:2学时

四、实验内容和步骤

1.实验内容

利用MATLAB提供的rand函数生成30000个符合均匀分布的随机数,然后检验随机数的性质:均值mean和标准方差std;最大元素max和最小元素min;大于0.5的随机数个数占总数的百分比 2.实验步骤

(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(4)编辑程序并进行保存。

(5)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。(6)检查程序输出结果。

五、实验报告要求

1.整理实验结果,填入相应表格中 2.小结实验心得体会 实验十一

多项式四则运算

一、实验目的

1、掌握多项式求值、求根的方法

2、理解多项式四则运算

3、通过练习熟悉多项式四则运算和多项式求值、求根的方法

二、实验器材

1.计算机

2.MATLAB7.0集成环境

三、实验说明

1.自主编写程序,必要时参考相关资料 2.实验前应写出程序大致框架或完整的程序代码 5.实验学时:2学时

四、实验内容和步骤

1.实验内容

4322有3个多项式P1(x)x2x4x5,P2(x)x2,P3(x)x2x3,1)求P(x)= P1(x)+ P2(x)P3(x)2)求P(x)的根

3)当x取矩阵A的每一元素时,求P(x)的值,其中

11.21.4 A0.7523.552.504)当以矩阵A为自变量时,求P(x)的值 2.实验步骤(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(4)编辑程序并进行保存。

(5)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。

(6)检查程序输出结果。

五、实验报告要求

1.整理实验结果,填入相应表格中 2.小结实验心得体会 实验十二

线性方程组求解及函数求极值

一、实验目的

1、理解线性方程组求解方法

2、理解函数求极值方法

3、通过练习以下内容熟悉求解线性方程组的方法和函数求极值的方法

二、实验器材

1.计算机

2.MATLAB7.0集成环境

三、实验说明

1.自主编写程序,必要时参考相关资料 2.实验前应写出程序大致框架或完整的程序代码 5.实验学时:2学时

四、实验内容和步骤

1.实验内容

(1)求下列方程组的解

2x3y5z101)3x7y4z2)

x7yz56x15x22x35x449xx4xx131234 3x4x2x2x123413x19x22x411(2)求下列函数在指定区间的最大值

1x2,x(0,2)

2)f(x)sinxcosx2,x(0,)1)f(x)41x2.实验步骤

(1)分析实验内容,写出程序大致框架或完整的程序代码。(2)进入MATLAB7.0集成环境。(4)编辑程序并进行保存。

(5)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。

(6)检查程序输出结果。

五、实验报告要求

1.整理实验结果,填入相应表格中 2.小结实验心得体会

第三篇:matlab实验心得体会

matlab实验心得体会

]这个就是我自己做出来的,发现用soundsc听出来还行,但是用wavwrite就变的很难听。后来发现PB写的很好,而且还能够把前面一段没有噪音的部分给保存下来,我就看了他的代码,有几点体会:

1.将代码写在.m文件里,这样只需要该文件里的就可以而不必每次都去敲命令;

2.PB对于vector使用的比较熟,我一开始也想到能不能只将后面一段由噪声的给滤掉而保留以前的,但是没想到什么方法,看了PB的代码发现,他对于vector了解的比较深刻,我上面的想法最后只使用一句代码就搞定了

3.对于噪声频率,一定要选准确,PB对每一段噪声只使用的一个频率,就将噪声滤干净了,我用了每段噪声附近的几个波形还没有得到理想波形,最后我发现我选的中心频率和PB的只相差10~25赫兹,所以一定要精确,后来WH又试了一下,只发现改变5HZ的频率都不行

4.加入团队以来,尤其是加入种子班之后就一直告诫自己要时刻抱着一个学习的心态,对于任务不要只是敷衍,完成就好,而是自己一定要从中学到东西,而且在这个过程中一定要逐步掌握自己的学习方法,但是就是这个Matlab,我就是在敷衍了事,所以没有什么事情是可以敷衍的,学习发生在每时每刻,不能因为这是必上的课程而自己没有兴趣就蒙混过关,应该利用这个机会锻炼自己,积极起来,改变自己懒惰的弱点。

PS:附上修改后的代码

%get the samples rate and vector of the wave [xx, fs] = wavread('SunshineSquare');xx = xx';specgram(xx, [], fs);

%^get the A from the frequencies of the noises fnoise = [0 1575 3150 4725];ww = 2*pi*fnoise/fs;A =-2*cos(ww);

%seperate the wave based on the tone “du” leng = length(xx);du = floor((7.749/10.791)*leng);

%determine the h[n] of correspond noise hh = [1 A(1)1];for i = 2:4 hh1 = [1 A(i)1];hh = conv(hh, hh1);end

%filter the noise yy = filter(hh, 1, xx);%delete the tone “du” yy(du100 : du + 80)= 0;figure(2);specgram(yy, [], fs);wavwrite(yy,fs,32,'filter1');

%replace the wave which has been filtered with the good part du = floor((7.749/10.791)*leng);yy(1:du)=xx(1:du);%delete the tone “du” yy(du100 : du + 80)= 0;

%paint the picture and play it figure(3);specgram(yy, [], fs);soundsc(yy,fs);wavwrite(yy,fs,32,'filter2');

第四篇:MATLAB实验4

学 生 实 验 报 告

课程名称:

学生学号:

所属院部:

(理工类)

专业班级:

学生姓名:

指导教师: ——20 学年 第 学期

实验项目名称: MATLAB综合运用 实验学时: 同组学生姓名: 实验地点: 实验日期: 实验成绩: 批改教师: 批改时间:

一、实验目的和要求

1、会用MATLAB求电阻电路。(节点电压法、戴维南定理等)

2、会用MATLAB求正弦稳态电路。

3、掌握自动控制系统中模型的转换方法。

4、会用MATLAB求自动控制系统的传递函数。

二、实验仪器和设备

计算机一台

三、实验过程

1、已知条件如下图所示。求:RL为何值时,能获得最大功率.U1 U2

RL

R1=6Ω R2=1Ω R3=3Ω

经过R1的电流为I1,经过R2的电流为I2,把RL用电流源代替(Ia方向从上到下),经过电路化简得:Ia=4/3+I2 列出节点方程:(1/6+1+1/3)U1-U2=I1(其中I1=12/6=2A,I2=2A)(节点电流的流入和流出)

-U1+U2=I2-Ia(等效的U1,U2)

运用MATLAB计算出U1,U2的值,U2即是戴维南等效电路中的Uoc,令电压源短路,电流源断路,求得ab左边等效电阻Req,当Req=RL时,PMAX=Uoc^2/4Req

2、已知Us=100V,I1=100mA,电路吸收功率P=6W,XL1=1250,XC2=750,电路呈感性,求R3及XL3。

设电源的总阻抗为ZRjX,由图可知ZZ1UZ2*Z3,总阻抗的模为Zs

IZ2Z3由于Z1,Z2为纯阻抗元件,它们不吸收有功功率,故

RP I22ZR2X2XZR2 得知电感电路呈感性,取“+”,即有ZRjX Z2,Z3的并联阻抗为Z23ZZ1ZjXL1 而Z3Z2*Z23

Z2Z23有R3real(Z3),XL3=imag(Z3)

3、求图示系统的传递函数,其中K1=10,K2=20。

4、已知系统状态空间模型为:

求其零极点模型。

5、系统的零极点增益模型如下:

求系统的传递函数模型和状态空间模型。

四、实验结果与分析

在本次实验中,初步了解了MATLAB在自动控制系统中的运用,通过从实验中得到的锻炼,提高了动手能力和自我学习能力。

第五篇:MATLAB实验教案

实验一离散系统的时域分析和复频域分析

1.实验目的

(1)掌握在时域求系统响应的方法。(2)掌握时域离散系统的时域特性。(3)通过实验判断系统稳定性

(4)掌握利用Z变换对系统进行复频域分析。(5)掌握系统零、极点的绘制方法。

(6)通过复频域分析系统稳定性、频率特性。(7)熟悉Z变换的应用

2.实验设备

 计算机

 MATLAB R2012a仿真软件

3.实验原理

(1)离散系统的时域分析

在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。已知输入信号可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,利用filter函数或conv函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。

系统的时域特性是指系统的线性移不变性质、因果性和稳定性。重点分析实验系统的稳定性,包括观察系统的暂态响应和稳定响应。

系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应,或者系统的单位脉冲响应满足绝对可和的条件。系统的稳定性由其差分方程的系数决定。

实际中检查系统是否稳定,不可能检查系统对所有有界的输入信号、输出是否都是有界输出,或者检查系统的单位脉冲响应满足绝对可和的条件。可行的方法是在系统的输入端加入单位阶跃序列,如果系统的输出趋近一个常数(包括零),就可以断定系统是稳定的。系统的稳态输出是指当n→∞时系统的输出。如果系统稳定,信号加入系统后,系统输出的开始一段称为暂态效应,随着n的加大,幅度趋于稳定,达到稳态输出。

注意在以下实验中均假设系统的初始状态为零。

(2)离散系统的复频域分析

离散系统的时域方程为 dk0Nky(nk)x(nk)pkK0M其变换域分析如下

y(n)x(n)*h(n)频域系统频率响应为

mx(m)h(nm)Y(e)X(e)H(e)

jjjH(e)Z域 jY(e)X(e)jj

y(n)x(n)*h(n)系统的转移函数为

mx(m)h(nm)Y(z)Y(z)X(Z)i X(z)H(z)H(z)0分解因式H(z)iNpkzdkzi0M=Ki(1(1i1i1NMiz1)),其中,和

izi1i称为零、极点。

在MATLAB中,可以用函数[z,p,K]=tf2zp(num,den)求得有理分式形式的系统转移函数的零、极点,用函数zplane(z,p)绘出零、极点分布图;也可以用函数zplane(num,den)直接绘出有理分式形式的系统转移函数的零、极点分布图。另外,在MATLAB中,可以用函数 [r,p,k]=residuez(num,den)完成部分分式展开计算;可以用函数sos=zp2sos(z,p,K)完成将高阶系统分解为2阶系统的串联。判断Z域因果LTI稳定性:当且仅当系统函数的全部极点位于单位圆内时,因果LTI系统是稳定的。

4.实验内容及步骤

h(n)(0.9)u(n)x(n)u(n)u(n10)(1)给定矩形脉冲是脉冲响应为

(n)filter函数对差分方程进行数值求解,画出输入的LTI系统的输入,求输出。y利用序列和脉冲响应。(2)已知差分方程:y(n)y(n1)0.9y(n2)x(n)n20,...,①画出在的脉冲响应。100n20,...,100②画出在的单位阶跃响应。h(n)③判断由表征的这个系统的稳定性。

(3)一个线性时不变系统由差分方程描述如下:

y(n)0.5y(n1)0.25y(n2)x(n)2x(n1)x(n3)n

0n100①画出内的系统的脉冲响应,并确定稳定性。

0②如果这个系统输入为,求在范围内的响应。0.6n)]y()x(n)n[5n3200cos(0.2n)4sin(u(n)(4)求下列序列的Z变换并用“zplane”画出零、极点分布图。,该序列的变换为: }x(n)Z{1,2,1,332 z2zz3123X(z)12zz3z3z

(5)求下列直接型系统函数的零、极点,并将它转换成二阶节形式

10.1z10.3z20.3z30.2z4H(z) 10.1z10.2z20.2z30.5z4y(n(6)给定因果系统要求:)0.9y(n1)x(n)①求系统函数H(z)并画出零、极点示意图。②画出系统的幅频特性和相频特性。()|H(ej)| ③求脉冲响应并画出序列图。h(n)

5.程序清单如下

(1)内容1:调用filter解差分方程 b=[1];a=[1,-0.9];n=-5:50;x=stepseq(0,-5,50)-stepseq(10,-5,50);h=0.9.^n;h(1:5)=0;y=filter(b,a,x);subplot(3,1,1);stem(n,x);ylabel('x(n)');axis([-5 50 min(x)max(x)]);subplot(3,1,2);stem(n,h);ylabel('h(n)');axis([-5 50 min(h)max(h)]);subplot(3,1,3);stem(n,y);xlabel('n');ylabel('y(n)');axis([-5,50,-0.5,8]);(2)涉及的功能函数stepseq function[x,n]=stepseq(n0,n1,n2)n=[n1:n2];x=[(n-n0)>=0];(3)内容2:稳定性分析 b=[1];a=[1,-1,0.9];x=impseq(0,-20,120);n=[-20:120];h=filter(b,a,x);subplot(2,1,1);stem(n,h);title('脉冲响应');xlabel('n');ylabel('h(n)')x=stepseq(0,-20,120);s=filter(b,a,x);subplot(2,1,2);stem(n,s);title('阶跃响应');xlabel('n');ylabel('u(n)')(4)涉及的功能函数impseq function[x,n]=impseq(n0,n1,n2)n=[n1:n2];x=[(n-n0)==0];(5)内容3:稳定性分析 b=[1,2,1];a=[1,-0.5,0.25];x=impseq(0,0,100);n=[0:100];h=filter(b,a,x);subplot(2,1,1);stem(n,h);title('脉冲响应');xlabel('n');ylabel('h(n)')x1=5+3*cos(0.2*pi*n)+4*sin(0.6*pi*n);y=filter(b,a,x1);subplot(2,1,2);stem(n,y);title('在sin和cos作用下的响应');xlabel('n');ylabel('y(n)')(6)内容4参考程序

b=[1, 2, 1, 3];%H(z)分子系数 a=[1, 0, 0, 0];%H(z)分母系数 zplane(b,a);%画零、极点分布图(7)内容5参考程序

num=[1,-0.1,-0.3,-0.3,-0.2];den=[1, 0.1, 0.2 ,0.2 ,0.5];[z,p,k]=tf2zp(num,den);m=abs(p);disp('零点');disp(z);disp('极点');disp(p);disp('增益系数');disp(k);sos=zp2sos(z,p,k);disp('二阶节');disp(real(sos));zplane(num,den)(8)内容6参考程序

b=[1,0];a=[1,-0.9];figure zplane(b,a);[H,w]=freqz(b,a,200,'whole');magH=abs(H(1:101));phaH=angle(H(1:101));hw=w(1:101);figure subplot(2,1,1);plot(hw/pi,magH);xlabel('频率单位:π');ylabel('|H(jw)|');title('幅频响应');subplot(2,1,2);plot(hw/pi,phaH/pi);xlabel('频率单位:π');ylabel('相位单位:π');title('相频响应');%脉冲响应

[h,T]=impz(b,a,50);figure stem(T,h);xlabel('n');ylabel('h(n)');

6.结果分析

(1)调用filter解差分方程的仿真结果如图1.1所示,稳定性分析方面的仿真结

果如图1.2所示

10.50x(n)01h(n)10203040500.508642001020n***50y(n)

图1.1

脉冲响应10.5h(n)0-0.5-1-***20n阶跃响应32u(n)10-2002040n6080100120图1.2

h(n)由图1.2所示的脉冲响应图像可以看出,当n>120时,h(n)的值就为零了,这就意味着系统是稳定的。另一种方法是利用MATLAB的roots函数,如:

z=roots(a);

magz=abs(z);

magz=

0.9487

0,9487 因为每个根的幅度都小于1,在z平面的单位圆内,所以系统是稳定的,稳定性分析仿真结果如图1.3

脉冲响应32h(n)10-10102030506070n在sin和cos作用下的响应4080901006040y(n)20001020304050n60708090100图1.3 由如图1.3所示h(n)脉冲响应图像可以看出当n>10时h(n)的值就为零了,这以为着系统是稳定的,第二个图反映了输入为sin和cos函数的加权叠加的响应y(n)

(2)内容4结果分析如图1.4所示

10.5Imaginary Part03-0.5-1-2-1.5-1-0.5Real Part00.51图1.4复频域分析的零、极点图

(3)内容5中,输入“num”和“den”的分别为分子和分母多项式的系数,计算求得零,极点增益系数和二阶节的系数,在MATLAB的Command Windows中观察。

>>零点

0.9615

-0.5730

-0.1443 + 0.5850i

-0.14430.6997i

-0.5776 + 0.5635i

-0.5776-0.5635i

增益系数

二阶节

1.0000

-0.3885

-0.5509

1.0000

1.1552

0.6511

1.0000

0.2885

0.3630

1.0000

-1.0552

0.7679

系统函数的二阶节形式为

1-0.3885z10.5509z211.1552z10.6511z210.2885z10.3630z2.11.0552z10.7679z2

内容5直接型系统函数的零、极点图如1.5所示

10.80.60.4rtaP0.2 yran0igam-0.2I-0.4-0.6-0.8-1-1-0.500.51Real Part1.5 图

内容5系统函数零极点图

内容6因果系统的系统函数零,极点图如图1.6所示。

10.80.60.4Imaginary Part0.20-0.2-0.4-0.6-0.8-1-1-0.50Real Part0.51图1.6 内容6系统函数零、极点图

内容6系统的幅频特性和相频特性如1.7所示

幅频响应151050

|H(jw)|00.10.20.30.40.50.6频率单位:π相频响应0.70.80.910相位单位:π-0.1-0.2-0.3-0.400.10.20.30.40.50.6频率单位:π0.70.80.91图1.7 内容6系统的频率特性图

内容6脉冲响应序列图如图1.8所示。10.90.80.70.6h(n)0.50.40.30.20.100510152025n3035404550图1.8 内容6脉冲响应序列图

6.实验报告要求

(1)报告中要求给出实验的MATLAB程序,并对每条语句给出注释,说明语句作用。

(2)粘贴实验结果图

实验二 FIR数字滤波器的设计

1.实验目的

(1)掌握用窗函数法设计FIR数字滤波器的原理和方法。(2)了解各种不同窗函数对滤波器性能的影响。(3)掌握FIR滤波器的快速卷积实现原理。

(4)学会调用MATLAB函数设计与实现FIR滤波器。

2.实验设备

 计算机

 MATLAB R2012a仿真软件

3.实验原理 目前FIR滤波器的设计方法主要有三种:窗函数法、频率取样法和切比雪夫等波纹逼近的最优化设计方法。常用的是窗函数法和频率取样法。本实验中的窗函数法比较简单,可应用现成的窗函数公式,在技术指标要求不高的时候是比较灵活方便的。它是从时域出发,用一个窗函数截取理想的得到,h(n)hd(n)以有限长序列近

hd(n)似理想的;如果从频域出发,用理想的在单位圆上等间隔取样得到,h(n)Hd根据得到将(ej)逼近理想的HdH(k)H(k)(z),这就是频率取样法。

H(z)几种常见的窗函数如下。

(1)矩形窗(Rectangle Windows)

调用格式:w=boxcar(n),根据长度n产生一个矩形窗。(2)三角窗(Triangular Windows)

调用格式:w=triang(n),根据长度n产生一个三角窗。(3)汉宁窗(Hanning Windows)

调用格式:w=hanning(n),根据长度n产生一个汉宁窗。(4)海明窗(Hamming Windows)

调用格式:w=hamming(n),根据长度n产生一个海明窗。(5)布拉克曼窗(Blackman Windows)

调用格式:w=blackman(n),根据长度n产生一个矩形窗。(6)恺撒窗(KaiserWindows)

调用格式:w=kaiser(n),根据长度n和影响窗函数旁瓣的参数产生一个恺撒窗。

4.实验内容及步骤

(1)分别用矩形窗、三角窗、汉宁窗、海明窗设计低通数字滤波器。信号采样频率为1000Hz,数字滤波器的截止频率为100Hz,滤波器的阶数为80。(2)用海明窗设计一个FIR低通滤波器,截止频率画出加窗前后冲激响应及滤波器幅频特性。

c=0.45,窗的长度取M=121,5.实验程序清单

(1)内容1 参考程序

clear all;close all;passrad=0.2*pi;w1=boxcar(81);w2=triang(81);w3=hanning(81);w4=hamming(81);n=1:1:81;hd=sin(passrad*(n-41))./(pi*(n-41));hd(41)=passrad/pi;h1=hd.*rot90(w1);h2=hd.*rot90(w2);h3=hd.*rot90(w3);h4=hd.*rot90(w4);[MAG1,RAD]=freqz(h1);[MAG2,RAD]=freqz(h2);[MAG3,RAD]=freqz(h3);[MAG4,RAD]=freqz(h4);subplot(2,2,1);plot(RAD,20*log10(abs(MAG1)));title('矩形窗');grid on;subplot(2,2,2);plot(RAD,20*log10(abs(MAG2)));title('三角窗');grid on;subplot(2,2,3);plot(RAD,20*log10(abs(MAG3)));title('汉宁窗');grid on;subplot(2,2,4);plot(RAD,20*log10(abs(MAG4)));title('海明窗');grid on;(2)内容2 参考程序 M=121;n=[0:1:M-1];wc=0.45*pi;hd=ideal_lp(wc,M);w_rec=(boxcar(M))';w_ham=(hamming(M))';h_rec=hd.*w_rec;h_ham=hd.*w_ham;[db1,mag1,pha1,grd1,w1]=freqz_m(h_rec,[1]);[db2,mag2,pha2,grd2,w2]=freqz_m(h_ham,[1]);subplot(2,2,1);stem(n,hd,'k');grid title('加窗前脉冲响应')axis([0,M-1,-0.2,0.5]);ylabel('hd(n)');subplot(2,2,2);stem(n,hd,'k');grid title('加窗后脉冲响应')axis([0,M-1,-0.2,0.5]);ylabel('h(n)');subplot(2,2,3);plot(w1/pi,db1,'k');grid title('加海明窗前幅频特性')axis([0,1,-100,10]);ylabel('幅度');subplot(2,2,4);plot(w2/pi,db2,'k');grid title('加海明窗后幅频特性')axis([0,1,-100,10]);ylabel('幅度');(3)内容2设计功能函数 freqz_m function[db,mag,pha,grd,w]=freqz_m(b,a);[H,w]=freqz(b,a,1000,'whole');H=(H(1:1:501))';w=(w(1:1:501))';mag=abs(H);db=20*log10((mag+eps)/max(mag));pha=angle(H);grd=grpdelay(b,a,w);(4)内容2设计功能函数 ideal_lp function hd=ideal_lp(wc,M)alpha=(M-1)/2;n=[0:1:(M-1)];m=n-alpha+eps;hd=sin(wc*m)./(pi*m);

6.实验程序运行结果

内容1和内容2的程序运行结果如图4.1和4.2所示

矩形窗500-50-100-150012汉宁窗1000500-50-100-10001234-1500123434-400-20三角窗-60012海明窗34-200

图4.1 多种窗函数设计低通滤波器

加窗前脉冲响应0.40.40.20-0.2加窗后脉冲响应hd(n)0-0.2050100h(n)0.2050100加海明窗前幅频特性00加海明窗后幅频特性幅度-50幅度00.51-50-100-10000.51图4.2 加窗前后冲激响应及幅频特性

7.实验报告要求(1)附程序清单、打印实验内容,要求绘图显示的曲线图。(2)分析总结实验结果。

实验三 IIR数字滤波器的设计

1.实验目的

(1)掌握双线性变换法及冲激响应不变法设计方法及其原理。(2)熟悉用双线性变换法及冲激响应不变法设计IIR数字滤波器的MATLAB编程。(3)观察双线性变换及冲激响应不变法设计的滤波器的频域特性。

(4)熟悉Butterworth滤波器、Chebyshev滤波器和椭圆滤波器的频率特性。

2.实验设备

 计算机

 MATLAB R2012a仿真软件

3.实验原理

设计IIR数字滤波器一般采用间接法(冲激响应不变法和双线性变换法),应用最广泛的是双线性变换法。(1)数字滤波器设计方法如下。

①给定技术指标转换为模拟滤波器设计性能指标。

②求出满足性能指标的模拟相应滤波器性能阶数和截止频率。

利用MATLAB中buttord、cheb1ord、cheb2ord、ellipord等函数。③设计模拟滤波器。

MATLAB信号处理工具箱提供了模拟滤波器设计的完全工具函数:butter,cheby1,cheby2,elip,besself.用户只需一次调用就可完成低通,高通,带通,带阻滤波器设计。调用格式如:[b,a]=butter(N,c,’ftypc’,’s’),其中,’ftype’为滤波器类型

本实验的数字滤波器的MATLAB实现是指调用MATLAB信号处理工具箱函数filter对指定的输入信号x(t)进行滤波,得到滤波后的输出信号y(n)。

(2)冲激响应不变法设计IIR数字滤波器的步骤如下。

①假设模拟滤波器的传递函数具有一阶极点,且分母的阶数高于分子的阶数,将展开成部分分式并对求拉氏反变换。

②使用冲激响应不变法求数字滤波器的冲击响应h(n)。③求h(n)的Z变换。

(3)冲激响应不变法主要用于设计某些要求在时域上能模仿滤波器功能的数字滤波器。主要特点如下。①频率变换坐标是线性的。②具有频谱的周期延拓效应,只能用于限带的频率响应特性,即低通和带通数字滤波器。

(4)双线性变换法是基于对微分方程的积分,利用对积分的数值逼近得到的。所谓双线性是指变换公式中s与z的关系无论是分子部分还是分母部分都是线性的。主要特点如下。

①消除了冲激响应不变法所固定的频率混叠现象。

②缺点是模拟频率和数字频率之间的非线性关系。

4.实验内容及步骤

(1)采用冲激响应不变法设计一个低通切比雪夫Ⅰ型数字滤波器,设取样频率为1kHz,在通带上限临界频率是400Hz处衰减不大于0.3dB,在阻带临界频率500Hz处衰减不小于60dB。要求:绘制幅频响应图。

(2)采用双线性变换法设计一个高通切比雪夫Ⅱ型数字滤波器,其通带上限临界频率为1500Hz,阻带临界频率为1000 Hz,抽样频率为2000Hz,在通带内最大衰减为0.3dB,阻带内的最小衰减为20dB。(此练习涉及的切比雪夫Ⅱ型数字滤波器为提高部分)要求:绘制幅频响应图。

(3)首先设计一个模拟巴特沃斯低通滤波器,取样频率为10kHz,在通带截止频率1kHz处衰减不大于1dB,在阻带截止频率1.5kHz处衰减不小于15dB。采用双线性变换法设计一个同参数数字巴特沃斯低通滤波器,通带幅度归一化,使其在w=0处幅度为1。

要求:绘制模拟滤波器及数字滤波器的幅频特性曲线进行对比。

5.参考程序

(1)内容1参考程序

%数字滤波器频率特征转换成模拟滤波器的频率特征 Wp=2*pi*400;Ws=2*pi*600;Rp=0.3;Rs=60;Fs=1000;%选择滤波器的最小阶数

[N,Wn]=cheb1ord(Wp,Ws,Rp,Rs,'s');%创建低通切比雪夫滤波器 [Z,P,K]=cheb1ap(N,Rp);[A,B,C,D]=zp2ss(Z,P,K);[At,Bt,Ct,Dt]=lp2lp(A,B,C,D,Wn);[num1,den1]=ss2tf(At,Bt,Ct,Dt);%冲激响应不变法把模拟滤波器转换为数字滤波器 [num2,den2]=impinvar(num1,den1,Fs);%绘制幅频响应图

[H,W]=freqz(num2,den2);plot(W*Fs/2/pi,abs(H));grid;xlabel('Hz');ylabel('幅值');(2)内容2参考程序

%数字滤波器的频率特征转换为模拟滤波器的频率特征 Wp=2*pi*1400;Wp1=2*pi*Wp;Ws=2*pi*1000;Ws1=2*pi*Ws;Rp=0.3;Rs=15;fs=20000;%选择滤波器的最小阶数

[N,Wn]=cheb2ord(Wp1,Ws1,Rp,Rs,'s');%创建低通巴特沃斯滤波器 [Z,P,K]=cheb2ap(N,Rs);[A,B,C,D]=zp2ss(Z,P,K);%低通到高通的转变

[At1,Bt1,Ct1,Dt1]=lp2hp(A,B,C,D,Wn);%冲激响应不变法把模拟滤波器转换为数字滤波器 [At2,Bt2,Ct2,Dt2]=bilinear(At1,Bt1,Ct1,Dt1,fs);%绘制幅频响应图

[num,den]=ss2tf(At2,Bt2,Ct2,Dt2);[H,W]=freqz(num,den);plot(W*fs/2/pi,abs(H));grid;xlabel('Hz');ylabel('幅值');(3)内容3参考程序 %数字滤波器指标

wp=0.2*pi;ws=0.3*pi;Rp=1;As=15;%转换成模拟域指标 T=1;Fs=1/T;omegap=(2/T)*tan(wp/2);omegas=(2/T)*tan(ws/2);ep=sqrt(10^(Rp/10)-1);Ripple=sqrt(1/(1+ep*ep));Attn=1/(10^(As/20));n=ceil((log10((10^(Rp/10)-1)/(10^(As/10)-1)))/(2*log10(omegap/omegas)));omegac=omegap/((10^(Rp/10)-1)^(1/(2*n)));[B,A]=butter(n,omegac,'s');W=(0:500)*pi/500;[H]=freqs(B,A,W);mag=abs(H);pha=angle(H);db=20*log10((mag+eps)/max(mag));%双线性变换法数字滤波器

[b,a]=bilinear(B,A,T);[h,w]=freqz(b,a,1000,'whole');h=(h(1:501))';w=(w(1:501))';m=abs(h);p=angle(h);db=20*log10((m+eps)/max(m));%绘制频率特性曲线

subplot(2,2,1);plot(w/pi,mag);xlabel('/pi');ylabel('幅度');title('模拟滤波器幅度响应');grid;axis([0 0.8 0 1]);subplot(2,2,2);plot(w/pi,pha);xlabel('/pi');ylabel('相位');title('模拟滤波器相位响应');grid;axis([0 0.8-4 4]);subplot(2,2,3);plot(w/pi,m);xlabel('/pi');ylabel('幅度');title('数字滤波器幅度响应');grid;axis([0 0.8 0 1]);subplot(2,2,4);plot(w/pi,p);xlabel('/pi');ylabel('相位');title('数字滤波器相位响应');grid;axis([0 0.8-4 4]);

6.运行结果

内容

1、内容2和内容3的运行结果如图3.1、3.2和图3.3所示

1.41.210.8幅值0.60.40.***50Hz***图4.1 冲激响应不变法设计低通切比雪夫数字滤波器 10.90.80.70.6幅值0.50.40.30.20.***40005000Hz***010000图4.2 双线性变换法设计高通切比雪夫数字滤波器

模拟滤波器幅度响应142模拟滤波器相位响应幅度0.5相位00.40.6/pi数字滤波器幅度响应0.20.80-20-400.40.6/pi数字滤波器相位响应0.20.8142幅度0.5相位00.20.4/pi0.60.80-20-400.20.4/pi0.60.8图4.3 对比模拟滤波器和数字滤波器的幅频特性

7.实验报告要求(1)简述实验原理。(2)打印程序清单。

(3)绘制相应幅频响应图。

实验四DFT/FFT频谱分析及应用

1.实验目的

(1)加深对DFT/FFT的理解,熟悉MATLAB中的有关函数。

(2)学习用FFT对连续信号和时域离散信号进行谱分析的方法。(3)了解FFT在系统分析中的应用。

2.实验设备

 计算机

 MATLAB R2012a仿真软件

3.实验原理

在各种信号序列中,有限长序列占重要地位。对有限长序列可以利用离散傅里叶变换(DFT)进行分析。DFT不但可以很好地反映序列的频谱特性,而且易于用快速算法(FFT)在计算机上进行分析。有限长序列的DFT是其Z变换在单位圆上的等距采样,或者说是序列傅里叶变换的等距采样,因此可以用于序列的谱分析。

所谓谱分析就是计算信号的频谱,包括振幅谱。相位谱和功率谱。在利用FFT对模拟信号进行谱分析时,应将模拟信号离散化以得到离散时间信号,同时考虑谱分析中参数的选择。对信号进行谱分析的重要问题是频谱分析率和分析误差。在保持分辨率不变的情况下,若希望增加所分析的信号的最高频率,或在保持信号最高频率不变的情况下,提高分辨率,唯一的方法是增加在记录长度内的取样点数N,那么N必须满足条件:

N其中,2f0F

f0是连续信号最高频率,F是频率分辨率。可以根据此式选择FFT的变换区间N。误差主要来自于用FFT做频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N较大时,离散谱的包络才能逼近于连续谱,因此N要适当选择得大一些。

周期信号的频谱是离散谱,只有用整数倍周期的长度做FFT,得到的离散谱才能代表周期信号的频谱。如果不知道信号周期,可以尽量选择信号的观察时间长一些。

MATLAB信号处理工具箱中提供了4个FFT内部函数用于计算DFT和IDFT,它们分别是:

fft(x),fft(x,L),ifft(X),ifft(X,L)

4.实验内容及步骤

x(t)2sin(4πt)5cos(8πt)DFT采样率和采样点(1)对模拟信号进行采样,用DFT进行谱分析,如何确定数?

x(t)f1=120Hzcos(2f1t)cos(2πf(2)已知一连续信号为其中,πf2=140Hz,用FFT进行分析时,选取取2t)样频率及能够分辨两个谱峰所需要的点数,绘制频谱。(3)对模拟周期信号进行谱分析

x(t)cos8πtcos16πtcos20πt

选择采样频率fs=64Hz,变换区间N=16,32,64,在三种情况进行谱分析。分别打印其幅频特性,并进行分析和讨论。

5.参考程序

(1)内容1参考程序 N=8;fs=16;n=0:N-1;w=fs*n/N;x=2*sin(4*pi*n/fs)+5*cos(8*pi*n/fs);X=fft(x,N);figure(1)stem(w(1:N/2),abs(X(1:N/2)),'k','filled');grid;xlabel('Hz');ylabel('|X(f)|');title('N=8');% N取6或32时进行对比讨论

(2)内容2参考程序 N=21;L=256;f1=120;f2=140;fs=400;T=1/fs;ws=2*pi*fs;n=0:N-1;x=cos(2*pi*f1*n*T)+cos(2*pi*f2*n*T);X=fftshift(fft(x,L));w=(-ws/2+(0:L-1)*ws/L)/(2*pi);figure(2)subplot(2,1,1);plot(w,abs(X));xlabel('Hz');ylabel('幅度谱');axis([-200,200,0,15]);title('N=21');N=11;n=0:N-1;x=cos(2*pi*f1*n*T)+cos(2*pi*f2*n*T);X=fftshift(fft(x,L));subplot(2,1,2);plot(w,abs(X));xlabel('Hz');ylabel('幅度谱');axis([-200,200,0,15]);title('N=11');(3)内容3参考程序 figure(3)fs=64;T=1/fs;N=16;n=0:N-1;

%FFT的变换区间N=16 xnT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T);

%对x(t)16点采样 Xk16=fft(xnT);

%计算xnT的16点DFT Xk16=fftshift(Xk16);

%将零频率移到频谱中心 Tp=N*T;F=1/Tp;

%频率分辨率F k=-N/2:N/2-1;fk=k*F;

%产生16点DFT对应的采样点频率(以零频率为中心)

subplot(3,1,1);stem(fk,abs(Xk16),'.');box on %绘制8点DFT的幅频特性图 title('16点|DFT[x(nT)]|');xlabel('f(Hz)');ylabel('幅度');axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(Xk16))])N=32;n=0:N-1;

%FFT的变换区间N=16 xnT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T);

%对x(t)32点采样 Xk32=fft(xnT);

%计算xnT的32点DFT Xk32=fftshift(Xk32);

%将零频率移到频谱中心 Tp=N*T;F=1/Tp;

%频率分辨率F k=-N/2:N/2-1;fk=k*F;

%产生16点DFT对应的采样点频率(以零频率为中心)

subplot(3,1,2);stem(fk,abs(Xk32),'.');box on %绘制8点DFT的幅频特性图 title('32点|DFT[x(nT)]|');xlabel('f(Hz)');ylabel('幅度');axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(Xk32))])N=64;n=0:N-1;

%FFT的变换区间N=16 xnT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T);

%对x(t)64点采样 Xk64=fft(xnT);

%计算xnT的64点DFT Xk64=fftshift(Xk64);

%将零频率移到频谱中心 Tp=N*T;F=1/Tp;

%频率分辨率F k=-N/2:N/2-1;fk=k*F;

%产生16点DFT对应的采样点频率(以零频率为中心)

subplot(3,1,3);stem(fk,abs(Xk64),'.');box on%绘制8点DFT的幅频特性图 title(' 64点|DFT[x(nT)]|');xlabel('f(Hz)');ylabel('幅度');axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(Xk64))])

6.实验程序运行结果

内容

1、内容2以及内容3的实验程序的运行结果分别如图2.1、图2.2和图2.3,图2.4及图2.5所示

N=82018161412|X(f)|10864200123Hz456

2.1 实验内容1采样点数N=8时的频谱

N=612108|X(f)|64200123Hz456图

2.2 实验内容1采样点数N=6时的频谱

N=3280706050|X(f)|40302010001234Hz5678图

2.3 实验内容1采样点数N=32时的频谱

N=21151050-200

幅度谱-150-100-500HzN=1***0151050-200幅度谱-150-100-500Hz50100150200图2.4 实验内容2频谱图

7.分析讨论

(1)实验内容1,根据给定模拟f1=2Hz,f=4Hz,所以满足采样定理

2fs2fh,采取样频率fs=16Hz,F=4-2=2Hz,根据N`2

f0/F,所以N8,当N=6时,不满足采样点数,所以频谱在时域混叠,而当N=32时,满足采样点数,频谱中能够看到有两个频率成分,在f1=2Hz,f2=4Hz处有谱线,如图2.1,2.2,2.3所示。

(2)实验内容2,f1=120Hz,f2=140Hz,取采样频率

fs=400Hz,F=140-120=20Hz,所以N=20,显然,当N=21时,能把f1和f2两个谱峰分辨出来,如图2.4中第一个图所示,当N=11时,两个谱峰分辨不出来,如图2.4第二幅图所示。

16点|DFT[x(nT)]|10幅度50-30-20-100f(Hz)32点|DFT[x(nT)]|102030幅度100-30-20-100f(Hz)64点|DFT[x(nT)]|102030幅度200-30-20-100f(Hz)102030图2.5 实验内容3频谱图

(3)实验内容3,对莫逆周期信号进行谱分析

x(t)cos8tcos16tcos20t x(t)有3个频率成分,f1样频率

=4Hz,f2=8Hz,f3=10Hz,所以x(t)的周期为0.5s,采fs=64Hz。变换区间N=16时,观察时间Tp=16T=0.25s,不是x(t)的整数倍周期,所以所得频谱不正确,如图2.5的第一幅图所示,变换区间N=32,64时,观察时间Tp=0.5s,1s,是x(t)的整数周期,所以所得频谱正确,如图2.5的后两幅图所示,图中3根谱线正好位于4Hz,8Hz,10Hz处。变换区间N=64时,频谱幅度是变换区间N=32时的2倍,这种结果正好验证了用DFT对中期序列谱分析的理论。

8.实验报告要求

(1)完成各个实验任务和要求,附上程序清单和有关曲线。(2)简要回答思考问题

相关内容

热门阅读

最新更新

随机推荐