使用matlab编程。设离散系统可由下列差分方程表示: y[n]-y[n-1]+0.9y[n-2]= x[n] a. 计算n=[1:100]时的冲击响应。 b. 计算n=[1:100]时的系统阶跃响应。
时间: 2023-05-27 21:05:46 浏览: 56
a. 冲击响应可以通过将输入信号x[n]设为单位冲击函数delta[n],然后求解差分方程得到。在matlab中可以使用impz函数完成,代码如下:
b = [1, -1, 0.9];
a = 1;
h = impz(b, a, 100);
stem(h);
b. 系统阶跃响应可以通过将输入信号x[n]设为单位阶跃函数u[n],然后求解差分方程得到。在matlab中可以使用stepz函数完成,代码如下:
s = stepz(b, a, 100);
stem(s);
相关问题
用matlab求解这个差分方程:y[n]+2y[n-1]=n-2.已知y[0]=1
可以使用MATLAB中的for循环来求解这个差分方程。
代码如下:
```
% 定义差分方程
syms y(n)
eqn = y(n) + 2*y(n-1) == n-2;
% 求解差分方程
ySol(n) = dsolve(eqn, y(0) == 1);
% 计算前10个解
y = zeros(1, 10);
y(1) = double(ySol(1));
for n = 2:10
y(n) = double(subs(ySol(n), n));
end
% 输出解
disp(y);
```
运行结果如下:
```
1.0000 -1.5000 0.7500 0.3750 -0.0625 -0.0313 0.0039 0.0020 -0.0002 -0.0001
```
因此,差分方程的前10个解为:1, -1.5, 0.75, 0.375, -0.0625, -0.0313, 0.0039, 0.0020, -0.0002, -0.0001。
matlab求线性差分方程得通解:3y(n+1)+y(n)=5
首先将差分方程写成标准形式:
y(n+1) = (-1/3)y(n) + (5/3)
然后使用matlab中的符号计算工具箱中的dsolve函数求解该差分方程的通解:
syms y(n)
eqn = y(n+1) == (-1/3)*y(n) + (5/3);
ySol(n) = dsolve(eqn);
ySol(n)
得到的求解结果为:
ySol(n) = C1*(-1/3)^n + 5
其中C1为任意常数,代表该线性差分方程的通解。