其他分享
首页 > 其他分享> > 【数字信号处理】上机实验

【数字信号处理】上机实验

作者:互联网

[T]

第一次 略

第二次

Task1 求解差分方程

解差分方程\(y_{n}-y_{n-1}+0.9y_{n-2}=x(n)\)

\(x(n)=\delta(n),x(n)=\mu(n),y(-2)=0\)

求解方法——递推

差分方程:\(\sum_{k=0}^{N} a_{k} y(n-k)=\sum_{k=0}^{M} b_{k} x(n-k)\)

递归形式:\(y(n)=\frac{1}{a_{0}}[\sum_{k=0}^{M} b_{k} x(n-k)-\sum_{k=1}^{N} a_{k} y(n-k)]\)

对于本题:\(y(n)=x(n)+y(n-1)-0.9y(n-2)\)

​ 其中,\(a=[1,-1,0.9],b=[1]\)

验证方法——filter

编程实现

点击查看代码
clc;clear all
b=1;a=[1 -1 0.9];
N=100;
x=(-2:100);
h=zeros(1,N+2);
s=zeros(1,N+2);
%构造单位脉冲序列和单位阶跃序列
n=(-2:N);
delta=(n==0);
u=(n>=0);
%求单位脉冲响应
for k=3:N+3
    h(k)=b*delta(k)-a(2)*h(k-1)-a(3)*h(k-2);
end
subplot(2,1,1)
plot1 = plot(x,delta,'.');
hold on
plot2 = plot(x,h,'linewidth',1);
%y=impz(b,a,N);
%plot3 = stem((0:99),y','.');
y = filter(b,a,delta);
plot3 = stem(x,y,'.');
legend("单位冲激序列","单位冲激响应","通过impz验证")
title("求冲激响应")
hold off
%求单位阶跃响应
for k=3:N+3
    s(k)=b*u(k)-a(2)*s(k-1)-a(3)*s(k-2);
end
subplot(2,1,2);
plot4 = stem(x,u,'.');
hold on
plot5 = plot(x,s,'linewidth',1);
%y= stepz(b,a,N);
%plot6 = stem((0:99),y','.');
y = filter(b,a,u);
plot6 = stem(x,y,'.');
legend("单位阶跃序列","单位阶跃响应","通过stepz验证")
title("求阶跃响应")

标签:0.9,阶跃,数字,上机,信号处理,stem,单位,delta,sum
来源: https://www.cnblogs.com/prettysky/p/15755934.html