2.差分方程及其求解---数字信号处理实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机与信息工程学院验证性实验报告

一、实验目的

1.学习并掌握系统的差分方程表示方法以及差分方程的相关概念。

2.熟练使用filter 函数对差分方程进行数值求解。

3.掌握差分方程的求解及MATLAB 实现方法。

二、实验原理及方法

1.一LTI 系统可以用一个线性常系数差分方程表示:

00()()N M

k m k m a

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

00()()()M N

m k m k y n b x n m a y n k ===---∑∑

方程的解能以下面形式求得:()()()H p y n y n y n =+分别为方程的齐次解跟特解部分。已知输入和差分方程的稀疏,可用filter 对差分方程进行数值求解。最简单形式为:y=filter(b,a,x) 其中b=[b0,b1,…,bM];a=[a0,a1,…,aN];

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、已知下面差分方程:

()(1)0.9(2)()y n y n y n x n --+-=;任意n

要求:

a.计算并画出在n=-20,…,100的脉冲响应h(n);

b.计算并画出在n=-20,…,100的单位阶跃相应s(n).

2.解以下差分方程:

31()(1)(2)(),022

y n y n y n x n n --+-=≥ 其中1()()()4

n x n u n =,初始条件为y(-1)=4和y(-2)=10。 要求先用理论计算,再用MATLAB 编程实现,并对比两个结果。

参考流程图:

实验内容1.

实验内容2.

四、实验报告要求

1.总结差分方程的性质及应用.

2.写出实验程序.记录实验数据并与理论计算作比较,总结结果。

五、实验程序及结果

针对问题一:

问题a的程序如下:

先建立一个生成单位抽样序列的M文件

function [x,n]=impseq(n0,n1,n2)

if((n0n2)|(n1>n2))

error('参数必须满足n1<=n0<=n2')

end

n=n1:n2;

x=[(n-n0)==0];

主程序如下:

clc;clear all

b=1;a=[1 -1 0.9];

[x,n]=impseq(0,-20,100);

y=filter(b,a,x);

plot(n,y)

相关文档
最新文档