前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >差分方程及求解MATLAB实现

差分方程及求解MATLAB实现

作者头像
timerring
发布2022-07-20 14:22:01
2.6K0
发布2022-07-20 14:22:01
举报
文章被收录于专栏:TechBlog

一、 实验目的

1.学习并掌握系统的差分方程表示方法以及差分方程的相关概念。 2.熟练使用filter函数对差分方程进行数值求解。 3.掌握差分方程的求解及MATLAB实现方法。

二、实验原理及方法 1.一LTI系统可以用一个线性常系数差分方程表示:

如果 aN   ≠ 0 ,那么这个差分方程就是N阶的,已知系统的输入序列,用这个方程可以根据当 前输入x(n)和以前M点的输入x(n-m),…,x(n-1),以及以前N点的输出y(n-N),…,y(n-1)来计算当前输出y(n)。在实际中这个方程在时间上是从n = −∞ 到 n = ∞ 朝前计算的,因此该方程的另一种形式是:

方程的解能以下面形式求得: y(n) = yH (n) + yp (n) 分别为方程的齐次解跟特解部分。已知输入和差分方程的稀疏, 可用filter 对差分方程进行数值求解。最简单形式为:

2. 上面差分方程解的形式为齐次解和特解,另外还可以求零输入解和零状态解理论计算中 要用到z变换,请好好掌握z变换的内容。用MATLAB实现时,若已知初始条件,则应用y =  filter(b, a, x, xic) 来求完全响应。这里xic是初始状态输入数组。MATLAB还提供一种filtic函数来得到xic。xic =filtic(b, a,Y , X ) 其中b和a是滤波器系数数组,Y和X是分别从y(n)和x(n)的初始条件得来的初始状态数组。 三.实验内容 1、已知下面差分方程: y(n)-y(n-1)+0.9y(n-2)=x(n);任意n 要求a.计算并画出在n=-20,…,100的脉冲响应h(n);        b.计算并画出在n=-20,…,100的单位阶跃相应s(n). 2.解以下差分方程:

 要求先用理论计算,再用MATLAB编程实现,并对比两个结果。参考流程图: 实验内容 1.

 实验内容2.

四、实验报告要求 1.总结差分方程的性质及应用. 2.写出实验程序.记录实验数据并与理论计算作比较,总结结果。

代码语言:javascript
复制
4.1-a:
b=1;
a=[1,-1,0.9];
h=[zeros(1,20),1,zeros(1,100)];
y=filter(b,a,h);
n=-20:100;
stem(n,y);
xlabel('n');
ylabel('h(n)')
4.1-b:
b=1;
a=[1,-1,0.9];
u=[zeros(1,20),ones(1,101)];
y=filter(b,a,u);
n=-20:100;
stem(n,y);
xlabel('n');
ylabel('s(n)')
4.2
b=[1];
a=[1,-3/2,1/2];
n1=-10:-1;
n2=0:10;
x=[zeros(size(n1)),(1/4).^n2];
y=[zeros(size(n1)-[0,2]),10,4,zeros(size(n2))];
xic=filtic(b,a,y,x);
y=filter(b,a,x,xic);
subplot(2,1,1)
stem([n1,n2],x);
xlabel('n');
ylabel('x(n)');
grid;
subplot(2,1,2);
stem([n1,n2],y);
xlabel('n');
ylabel('y(n)');
grid
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-07-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档