信号与系统及MATLAB实现[1]

2026/1/14 9:30:36

《信号与系统》实验指导书

% k: 序列f(k)的对应序号向量 % f1: 序列f1(k)非零样值向量 % f2: 序列f2(k)的非零样值向量 % k1: 序列f1(k)的对应序号向量 % k2: 序列f2(k)的对应序号向量 f=conv(f1,f2) %计算序列f1与f2的卷积和f k0=k1(1)+k2(1); %计算序列f非零样值的起点位置 k3=length(f1)+length(f2)-2; %计算卷积和f的非零样值的宽度

k=k0:k0+k3 %确定卷积和f非零样值的序号向量 subplot(2,2,1) stem(k1,f1) %在子图1绘序列f1(k)时域波形图 title('f1(k)') xlabel('k') ylabel('f1(k)') subplot(2,2,2) stem(k2,f2) %在图2绘序列f2(k)时波形图 title('f1(k)') xlabel('k') ylabel('f2(k)') subplot(2,2,3) stem(k,f); %在子图3绘序列f(k)的波形图 title('f(k)f1(k)与f2(k)的卷积和f(k)') xlabel('k') ylabel('f(k)')

h=get(gca,'position'); h(3)=2.5*h(3);

set(gca,'position',h) %将第三个子图的横坐标范围扩为原来的2.5倍 例2-5求卷积和,

f1(k)??(k?1)?2?(k)??(k?1)f2(k)??(k?2)??(k?1)??(k)??(k?1)??(k?2)

f1=[1 2 1];

k1=[-1 0 1]; f2=ones(1,5); k2=-2:2;

[f, k]=dconv(f1,f2,k1,k2)

由运行结果知,f的长度等于f1和f2长度之和减一, f的起点是f1和f2的起点之和,f的终点是f1和f2的终点之和。 3. 离散系统的单位响应

MATLAB提供画系统单位响应函数impz,调用格式是 impz(b,a) 式中b和a是表示离散系统的行向量;

impz(b,a,n) 式中b和a是表示离散系统的行向量,时间范围是0~n;

impz(b,a,n1,n2) 时间范围是n1~n2 ;y=impz(b,a,n1,n2) 由y给出数值序列;

9

《信号与系统》实验指导书

例2-6已知 y(k)?y(k?1)?0.9y(k?2))?f(k) 求单位响应。

a=[1,-1,0.9]; b=[1]; impz(b,a) impz(b,a,60) impz(b,a,-10:40)

4. 离散系统的零状态响应

MATLAB提供求离散系统零状态响应数值解函数filter,调用格式为filter(b,a,x),式中b和a是表示离散系统的向量,x是输入序列非零样值点行向量,输出向量序号同x一样。 例2-7 已知 y(k)?0.25y(k?1)?0.5y(k?2))?f(k)?f(k?1), f(k)?()?(k) 求零状态响应, 范围0~20。 a=[1 -0.25 0.5]; b=[1 1]; t=0:20; x=(1/2).^t; y=filter(b,a,x) subplot(2,1,1) stem(t,x)

title('输入序列') subplot(2,1,2) stem(t,y)

title('响应序列') 三、上机实验内容 1.验证实验原理中程序

2.已知2y(k)?2y(k?1)?y(k?2)?f(k)?3f(k?1)?2f(k?2),画单位响应波形。 3.已知y(k)?y(k?1)?0.25y(k?2)?f(k),输入f(t)??(k),画输出波形,范围0~15。

12k

10

《信号与系统》实验指导书

实验三 连续时间LTI系统的时域分析

一、实验目的

1.学会用MATLAB求解连续系统的零状态响应; 2. 学会用MATLAB求解冲激响应及阶跃响应; 3.学会用MATLAB实现连续信号卷积的方法; 二、实验原理

1.连续时间系统零状态响应的数值计算

我们知道,LTI连续系统可用如下所示的线性常系数微分方程来描述,

?ayii?0N(i)(t)??bjf(j)(t)

j?0M在MATLAB中,控制系统工具箱提供了一个用于求解零初始条件微分方程数值解的函数lsim。其调用格式

y=lsim(sys,f,t)

式中,t表示计算系统响应的抽样点向量,f是系统输入信号向量,sys是LTI系统模型,用来表示微分方程,差分方程或状态方程。其调用格式

sys=tf(b,a)

式中,b和a分别是微分方程的右端和左端系数向量。例如,对于以下方程:

a3y'''(t)?a2y''(t)?a1y'(t)?a0y(t)?b3f'''(t)?b2f''(t)?b1f'(t)?b0f(t)

可用a?[a3,a2,a1,a0];b?[b3,b2,b1,b0]; sys?tf(b,a) 获得其LTI模型。

注意,如果微分方程的左端或右端表达式中有缺项,则其向量a或b中的对应元素应为零,不能省略不写,否则出错。

例3-1 已知某LTI系统的微分方程为 y’’(t)+ 2y’(t)+100y(t)=f(t)

其中,y(0)?y(0)?0,f(t)?10sin(2?t),求系统的输出y(t).

解:显然,这是一个求系统零状态响应的问题。其MATLAB计算程序如下: ts=0;te=5;dt=0.01; sys=tf([1],[1,2,100]); t=ts:dt:te;

f=10*sin(2*pi*t); y=lsim(sys,f,t); plot(t,y);

xlabel('Time(sec)'); ylabel('y(t)');

2.连续时间系统冲激响应和阶跃响应的求解 在MATLAB中,对于连续LTI系统的冲激响应和阶跃响应,可分别用控制系统工具箱提供的函数impluse和step来求解。其调用格式为

'11

《信号与系统》实验指导书

y=impluse(sys,t) y=step(sys,t)

式中,t表示计算系统响应的抽样点向量,sys是LTI系统模型。

例3-2已知某LTI系统的微分方程为 y’’(t)+ 2y’(t)+100y(t)=10f(t)

求系统的冲激响应和阶跃响应的波形. 解:ts=0;te=5;dt=0.01; sys=tf([10],[1,2,100]);

t=ts:dt:te;

h=impulse(sys,t); figure; plot(t,h);

xlabel('Time(sec)'); ylabel('h(t)');

g=step(sys,t); figure; plot(t,g);

xlabel('Time(sec)');

ylabel('g(t)');

3. 用MATLAB实现连续时间信号的卷积

信号的卷积运算有符号算法和数值算法,此处采用数值计算法,需调用MATLAB 的conv( )函数近似计算信号的卷积积分。连续信号的卷积积分定义是 f(t)?f1(t)?f2(t)?????f1(?)f2(t??)d?

如果对连续信号f1(t)和f2(t)进行等时间间隔?均匀抽样,则f1(t)和f2(t)分别变为离散时间信号f1(m?)和f2(m?)。其中,m为整数。当?足够小时,f1(m?)和f2(m?)既为连续时间信号f1(t)和f2(t)。因此连续时间信号卷积积分可表示为

f(t)?f1(t)?f2(t)??f1(?)f2(t??)d?????lim??0m????f(m?)?f1?

2(t?m?)??采用数值计算时,只求当t?n?时卷积积分f(t)的值f(n?),其中,n为整数,既

f(n?)?

m?????f(m?)?f1m????2(n??m?)??

???f1(m?)?f2[(n?m)?]其中,

m????f(m?)?f1?2[(n?m)?]实际就是离散序列f1(m?)和f2(m?)的卷积和。当?足

12


信号与系统及MATLAB实现[1].doc 将本文的Word文档下载到电脑
搜索更多关于: 信号与系统及MATLAB实现[1] 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219