编程:已知描述离散系统的差分方程为6y(n) − 5y(n −1) + 2y(n − 2) = x(n) + x(n − 2),系统输入序列x(n)=(3/4)nε(n). 用 MATLAB 绘出输入序列波形;求出输出序列(0-20)样值;绘出输出序列波形。
时间: 2023-11-18 18:06:23 浏览: 34
好的,以下是 MATLAB 代码:
```
% 定义差分方程
b = [1, 0, 1];
a = [6, -5, 2];
% 定义输入序列
n = 0:20;
x = (3/4).^n .* (n>=0);
% 计算输出序列
y = filter(b, a, x);
% 绘制输入序列波形图
subplot(2,1,1);
stem(n, x);
xlabel('n');
ylabel('x(n)');
title('输入序列波形');
% 绘制输出序列波形图
subplot(2,1,2);
stem(n, y);
xlabel('n');
ylabel('y(n)');
title('输出序列波形');
```
解释一下代码:
首先定义了差分方程的系数,其中 `b` 是分子系数,`a` 是分母系数。
然后定义输入序列 `x(n)`,这里用指数函数和阶跃函数相乘的方式生成。
接着利用 `filter` 函数求出输出序列 `y(n)`。
最后用 `subplot` 函数将输入序列波形图和输出序列波形图画在一张图上,分别用 `stem` 函数绘制。
相关问题
已知描述离散系统的差分方程为y(n) − y(n − 2) = x(n),用 MATLAB 编程求出单位序列响应( 0≤n≤40)样值并绘出其波形。
好的,以下是 MATLAB 代码:
```
% 定义差分方程
b = [1, 0, -1];
a = 1;
% 计算单位序列响应
n = 0:40;
x = [1, zeros(1, length(n)-1)];
y = filter(b, a, x);
% 绘制波形图
stem(n, y);
xlabel('n');
ylabel('y(n)');
title('单位序列响应');
```
解释一下代码:
首先定义了差分方程的系数,其中 `b` 是分子系数,`a` 是分母系数,这里分母系数为 1,即没有反馈。
然后通过输入 `n` 来计算单位序列 `x(n)`,并利用 `filter` 函数求出响应序列 `y(n)`。
最后用 `stem` 函数绘制出波形图,横轴为 `n`,纵轴为 `y(n)`。
求解差分方程:y[n]+2y[n-1]=n-2.已知y[0]=1
我们可以使用递推的方法求解这个差分方程。将 n=0,1,2,3,... 代入差分方程中,得到:
n=0:y[0] + 2y[-1] = -2 ,即 y[-1] = -3/2
n=1:y[1] + 2y[0] = -1 ,即 y[1] = -3/2
n=2:y[2] + 2y[1] = 0 ,即 y[2] = 3/4
n=3:y[3] + 2y[2] = 3 ,即 y[3] = 3/8
可以发现,y[n] 的求解可以表示为 y[n] = (-2y[n-1] + n - 2)/1,其中 y[0] 已知为1。将这个递推式代入前面的计算结果中,可以得到:
y[0] = 1
y[1] = -3/2
y[2] = 3/4
y[3] = 3/8
y[4] = -1/16
y[5] = -1/32
...
因此,差分方程的通解为 y[n] = (-2y[n-1] + n - 2)/1,其中 y[0] = 1。