基于MATLAB下的软件实验.docx

上传人:b****5 文档编号:12708673 上传时间:2023-04-21 格式:DOCX 页数:20 大小:171.79KB
下载 相关 举报
基于MATLAB下的软件实验.docx_第1页
第1页 / 共20页
基于MATLAB下的软件实验.docx_第2页
第2页 / 共20页
基于MATLAB下的软件实验.docx_第3页
第3页 / 共20页
基于MATLAB下的软件实验.docx_第4页
第4页 / 共20页
基于MATLAB下的软件实验.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

基于MATLAB下的软件实验.docx

《基于MATLAB下的软件实验.docx》由会员分享,可在线阅读,更多相关《基于MATLAB下的软件实验.docx(20页珍藏版)》请在冰豆网上搜索。

基于MATLAB下的软件实验.docx

基于MATLAB下的软件实验

第二篇基于MATLAB下的软件实验

目录

实验一基本信号的产生………………………………………………………35

实验二时域抽样与频域抽样…………………………………………………40

实验三连续系统分析………………………………………………………………43

 

第二篇基于MATLAB下的软件实验

MATLAB的含义是矩阵实验室(MATRIXLABORATORY),主要用于方便矩阵的存取,其基本元素是无须定义维数的矩阵。

MATLAB自问世以来,就是以数值计算称雄。

MATLAB进行数值计算的基本单位是复数数组(或称阵列),这使得MATLAB高度“向量化”。

经过十几年的完善和扩充,现已发展成为线性代数课程的标准工具。

由于它不需定义数组的维数,并给出矩阵函数、特殊矩阵专门的库函数,使之在求解诸如信号处理、建模、系统识别、控制、优化等领域的问题时,显得大为简捷、高效、方便,这是其它高级语言所不能比拟的。

美国许多大学的实验室都安装有MATLAB供学习和研究之用。

在那里,MATLAB是攻读学位的大学生硕士生、博士生必须掌握的基本工具。

MATLAB中包括了被称作工具箱(TOOLBOX)的各类应用问题的求解工具。

工具箱实际上是对MATLAB进行扩展应用的一系列MATLAB函数(称为M文件),它可用来求解各类学科的问题,包括信号处理、图象处理、控制系统辨识、神经网络等。

随着MATLAB版本的不断升级,其所含的工具箱的功能也越来越丰富,因此,应用范围也越来越广泛,成为涉及数值分析的各类工程师不可不用的工具。

MATLAB5.3中包括了图形界面编辑GUI,改变了以前单一的“在指令窗通过文本形的指令进行各种操作”的状况。

这可让使用者也可以象VB、VC、VJ、DELPHI等那样进行一般的可视化的程序编辑。

在命令窗口(matlabcommandwindow)键入simulink,就出现(SIMULINK)窗口。

以往十分困难的系统仿真问题,用SIMULINK只需拖动鼠标即可轻而易举地解决问题,这也是近来受到重视的原因所在。

MATLAB语言是当今国际上科学界(尤其是自动控制领域)最具影响力、也是最有活力的软件。

它已经发展成一种高度集成的计算机语言。

它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷的与其他程序和语言接口的功能。

MATLAB语言在各国高校与研究单位起着重大的作用。

本实验用MATLAB语言产生信号,进行时域与频域的抽样及对连续系统进行分析,为今后在数字信号处理及综合应用奠定基础。

 

实验一基本信号的产生

一、实验目的

学习使用MATLAB产生基本信号、绘制信号波形、实现信号的基本运算,为信号分析和系统设计奠定基础。

二、实验原理

MATLAB提供了许多函数用于产生常用的基本信号:

如阶跃信号、脉冲信号、指数信号、正弦信号和周期矩形波信号等。

这些基本信号是信号处理的基础。

(一)基本信号的产生:

1.连续阶跃信号的产生

产生阶跃信号的MATLAB程序如下:

t=-2:

0.02:

6;

x=(t>=0);

plot(t,x);

axis([-2,6,0,1.2]);

图一连续阶跃信号

2.连续指数信号的产生

产生随时间衰减的指数信号的MATLAB程序如下:

t=0:

0.001:

5;

x=2*exp(-1*t);

plot(t,x);

图二连续指数信号

3.连续正弦信号的产生

利用MATLAB提供的函数cos和sin可产生正弦和余弦信号。

产生一个幅度为2,频率为4Hz,相位为p/6的正弦信号的MATLAB程序如下:

f0=4;

w0=2*pi*f0;

t=0:

0.001:

1;

x=2*sin(w0*t+pi/6);

plot(t,x);;图三连续正弦信号

4.连续矩形脉冲信号的产生

函数rectpulse(t,w)可产生高度为1、宽度为w、关于t=0对称的矩形脉冲信号。

产生高度为1、宽度为4、延时2秒的矩形脉冲信号的MATLAB程序如下:

t=-2:

0.02:

6;

x=rectpuls(t-2,4);

plot(t,x);图四连续矩形脉冲信号

5.连续周期矩形波信号的产生

函数square(w0*t)产生基本频率为w0(周期T=2p/w0)的周期矩形波信号。

函数square(w0*t,DUTY)产生基本频率为w0(周期T=2p/w0)、占空比DUTY=t/T*100的周期矩形波。

τ为一个周期中信号为正的时间长度。

τ=T/2,DUTY=50,square(w0*t,50)等同于square(w0*t)。

产生一个幅度为1,基频为2Hz,占空比为50%的周期方波的MATLAB程序如下:

f0=2;图五连续周期矩形波信号

t=0:

.0001:

2.5;

w0=2*pi*f0;

y=square(w0*t,50);%dutycycle=50%

plot(t,y);axis([0,2.5,-1.5,1.5]);

6.连续抽样信号的产生

可使用函数sinc(x)计算抽样信号,函数sinc(x)的定义为。

产生信号的MATLAB程序如下:

t=-10:

1/500:

10;

x=sinc(t/pi);

plot(t,x);图六连续抽样信号

7.

单位脉冲序列的产生

函数zeros(1,n)可以生成单位脉冲序列。

函数zeros(1,n)产生1行n列的由0组成的矩阵。

产生成单位脉冲序列的MATLAB程序如下:

k=-4:

20;

x=[zeros(1,7),1,zeros(1,17)];

stem(k,x)图七单位脉冲序列

8.

单位阶跃序列的产生

函数ones(1,n)可以生成单位阶跃序列。

函数ones(1,n)产生1行n列的由1组成的矩阵。

产生单位阶跃序列的MATLAB程序如下:

k=-4:

20;

x=[zeros(1,7),ones(1,18)];图八单位阶跃序列

stem(k,x)

9.指数序列的产生

产生离散序列的MATLAB程序如下:

k=-5:

15;

x=0.3*(1/2).^k;

stem(k,x);

图九指数序列

10.

正弦序列的产生

产生正弦序列的MATLAB程序如下:

k=-10:

10;

omega=pi/3;

x=0.5*sin(omega*k+pi/5);

stem(k,x);图十一正弦序列

 

11.

离散周期矩形波序列的产生

产生幅度为1、基频rad、占空比为50%的周期方波的MATLAB程序如下:

omega=pi/4;

k=-10:

10;

x=square(omega*k,50);

stem(k,x);图十二离散周期矩形波序列

12.白噪声序列的产生

白噪声序列在信号处理中是常用的序列。

函数rand可产生在[0,1]区间均匀分布的白噪声序列,函数randn可产生均值为0,方差为1的高斯分布白噪声。

N=20;

k=0:

N-1;

x=rand(1,N)stem(k,x);图十三白噪声序列

(二)序列的基本运算

表一序列基本运算表

 

离散序列:

(1)计算离散卷积和:

(2)计算离散自相关函数:

x=[1,2,1,1,0,-3];

h=[1,-1,1];

%计算离散卷积和

y=conv(x,h);

subplot(2,1,1);

stem([0:

length(y)-1],y);

title('y[k]');xlabel('k');

%计算离散自相关函数

y=xcorr(x,x);

subplot(2,1,2);

m=(length(y)-1)/2;

stem([-m:

m],y);

title('Rxx[n]');

xlabel('n');

三、实验思考题

1.两个连续信号的卷积定义是什么?

两个序列的卷积定义是什么?

卷积的作用是什么?

conv函数只输出了卷积结果,没有输出对应的时间向量,如何使时间向量和卷积结果对应起来?

2.两个连续信号的相关定义是什么?

两个序列的相关定义是什么?

相关的作用是什么?

3.能够利用MATLAB产生单位冲激信号吗?

4.产生连续信号时,首先要定义时间向量t=0:

T:

Tp。

其中T和Tp是什么意思?

 

实验二时域抽样与频域抽样

一、实验目的

1.加深理解连续时间信号的离散化过程中的数学概念和物理概念,掌握时域抽样定理的基本内容。

2.掌握由抽样序列重建原连续信号的基本原理与实现方法,理解其工程概念。

3.加深理解频谱离散化过程中的数学概念和物理概念,掌握频域抽样定理的基本内容。

二、实验原理

时域抽样定理给出了连续信号抽样过程中信号不失真的约束条件:

对于基带信号,信号抽样频率fsam大于等于2倍的信号最高频率fm,即fsam≥2fm。

时域抽样是把连续信号x(t)变成适于数字系统处理的离散信号x[k];信号重建是将离散信号x[k]转换为连续时间信号x(t)。

非周期离散信号的频谱是连续的周期谱。

计算机在分析离散信号的频谱时,必须将其连续频谱离散化。

频域抽样定理给出了连续频谱抽样过程中信号不失真的约束条件。

1.信号的时域抽样

对连续信号x(t)以间隔T抽样,得到的离散序列x[k]=x(kT)|t=kT

 

图一连续信号抽样的离散序列

若x[k]=x(kT)|t=kT,则信号x(t)与x[k]的频谱之间存在:

其中:

x(t)的频谱为X(j),x[k]的频谱为X(ej)

可见,信号时域抽样导致信号频谱的周期化。

wsam=2p/T(rad/s)为抽样角频率,fsam=1/T为抽样频率。

数字角频率W与模拟角频率w的关系为:

Ω=ωT

其中:

x(t)的频谱为X(jw),x[k]的频谱为X(ejW)

用MATLAB实现对信号的抽样。

t0=0:

0.001:

0.1;

x0=cos(2*pi*20*t0);

plot(t0,x0,'r')

holdon%

信号最高频率fm为20Hz,%按100Hz抽样得到序列。

Fs=100;

t=0:

1/Fs:

0.1;

x=cos(2*pi*20*t);

stem(t,x);

holdoff

title('连续信号及其抽样信号')图二的抽样图形

2.信号的频域抽样

非周期离散序列x[k]的频谱X(ejΩ)是以2π为周期的连续函数。

频域抽样是将X(ejΩ)离散化以便于数值计算。

频域抽样与时域抽样形成对偶关系。

在[0,2π]内对X(ejΩ)进行N点均匀抽样,引起时域序列x[k]以N点为周期进行周期延拓。

 

频域抽样定理给出了频域抽样过程中时域不发生混叠的约束条件:

若序列x[k]的长度L,则应有NL。

已知序列,对其频谱X(ejΩ)进行抽样,

分别取N=2,3,10,观察频域抽样造成的混叠现象。

x=[1,1,1];L=3;N=256;

omega=[0:

N-1]*2*pi/N;

X0=1+exp(-j*omega)+exp(-2*j*omega);

plot(omega./pi,abs(X0));

xlabel('Omega/PI');holdon

N=2;omegam=[0:

N-1]*2*pi/N;

Xk=1+exp(-j*omegam)+exp(-2*j*omegam);

stem(omegam./pi,abs(Xk),'r','o');holdoff

三、实验思考题:

1.将语音信号转换为数字信号时,抽样频率一般应是多少?

2.在时域抽样过程中,会出现哪些误差?

如何克服或改善?

3.在实际应用中,为何一般选取抽样频率fsam(3~5)fm?

4.简述带通信号抽样和欠抽样的原理?

5.如何选取被分析的连续信号的长度?

6.增加抽样序列x[k]的长度,能否改善重建信号的质量?

7.简述构造内插函数的基本原则和方法?

8.抽样内插函数、阶梯内插函数、线性内插函数、升余弦内插函数各有什么特性?

 

实验三连续系统分析

一、实验目的

1.深刻理解连续时间系统的系统函数在分析连续系统的时域特性、频域特性及稳定性中的重要作用及意义,掌握根据系统函数的零极点设计简单的滤波器的方法。

2.掌握利用MATLAB分析连续系统的时域响应、频响特性和零极点的基本方法。

二、实验原理

MATLAB提供了许多可用于分析线性时不变连续系统的函数,主要包含有系统函数、系统时域响应、系统频域响应等分析函数。

1.连续系统的时域响应

连续时间LTI系统可用如下的线性常系数微分方程来描述:

已知输入信号x(t)以及系统初始状态

,就可以求出系统的响应。

MATLAB提供了微分方程的数值计算的函数,可以计算上述n阶微分方程描述的连续系统的响应,包括系统的单位冲激响应、单位阶跃响应、零输入响应、零状态响应和完全响应。

在调用MATLAB函数时,需要利用连续系统对应的系数函数。

对微分方程进行Laplace变换即可得系统函数:

在MATLAB中可使用向量和向量分别保存分母多项式和分子多项式的系数:

这些系数均按s的降幂直至s0排列。

●连续系统的单位冲激响应h(t)的计算

impulse(sys)计算并画出系统的冲激响应。

参数:

sys可由函数tf(b,a)获得。

其中:

h=impulse(sys,t)计算并画出系统在向量t定义的区间上的冲激响应,向量h保存对应区间的系统冲激响应的输出值。

已知描述某连续系统的微分方程:

计算该系统的单位冲激响应h(t)。

a=[1,5,6];b=[2,8];

sys=tf(b,a);

t=0:

0.1:

10;

h=impulse(sys,t);

plot(h);

xlabel('t');title('h(t)')

程序运行结果如图图一程序运行结果:

●连续系统的单位阶跃响应g(t)的计算

step(sys)计算并画出系统的阶跃响应。

参数:

sys可由函数tf(b,a)获得。

其中:

g=step(sys,t)

计算并画出系统在向量t定义的区间上的阶跃响应,向量g保存对应区间的系统阶跃响应的输出值。

●连续系统的零状态响应y(t)的计算

lsim(sys,x,t)计算并画出系统的零状态响应。

参数:

sys可由函数tf(b,a)获得

x为输入信号

t为定义的时间向量。

 

已知描述某连续系统的微分方程:

计算在输入

为时系统的零状态响应。

a=[1,5,6];b=[2,8];sys=tf(b,a);

t=0:

10/300:

10;

x=exp(-t);

y=lsim(sys,x,t);

plot(t,y);

图二程序运行结果:

2.连续系统的系统函数零极点分析

连续LTI系统的系统函数H(s)可以表示为部分分式形式:

,且H(s)的极点pi全部为单极点,则:

系统函数H(s)的极点pi决定了冲激响应h(t)的基本形式,而零点和极点共同确定了冲激响应h(t)的幅值ki。

MATLAB中提供了roots函数计算系统的零极点,提供了pzmap函数绘制连续系统的零极点分布图。

已知某连续系统的系统函数为:

计算其零极点,画出分布图。

 

b=[2,3,1];a=[1,2,2,1];

z=roots(b)

p=roots(a)

sys=tf(b,a);

pzmap(sys)图三系统函数零极点分布图

3.连续系统的频率响应

若连续因果LTI连续系统的系统函数H(s)的极点全部位于S左半平面,则系统的频率响应可由H(s)求出,即

MATLAB中freqs函数可以分析连续系统的频响,格式如下:

H=freqs(b,a,w):

计算系统在指定频率点向量w上的频响H;w为频率点向量。

[H,w]=freqs(b,a):

自动选取200个频率点计算频率响应。

已知某连续系统的系统函数为:

分析系统的幅频率特性。

b=[1];a=conv([1,1],[1,1,1]);

[H,w]=freqs(b,a);

plot(w,abs(H));

xlabel('Frequency(rad/s)');

ylabel('Amplitude');

title('Magnituderesponse');图四系统函数幅频特性

三、实验思考题

1.系统函数的零极点对系统频率特性有何影响?

2.对于因果稳定、实系数的低通、高通、带通、带阻滤波器,零极点分布有何特点?

3.系统函数的零极点对系统冲激响应有何影响?

4.若某因果系统不稳定,有哪些主要措施可使之稳定?

5.如果出现零极点抵消的情况,对系统特性有什么影响?

6.在工程实际中,系统函数的零极点有哪些主要应用?

7.使用计算机分析连续系统,需要解决连续系统离散化的问题,怎样离散化?

8.连续系统响应的计算机求解可以分为哪些方法?

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 哲学

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

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