设一阶系统的差分方程为y(n)=by(n-1)+x(n),|b|<1 ,b=0.9,求系统函数及系统的 频率响应,绘制系统的零、极点图和幅频响应、相频响应曲线 用Matlab求解
时间: 2024-11-03 14:21:57 浏览: 173
这是一个一阶线性时不变离散时间系统(Discrete-Time Linear Time-Invariant System,DTLTI),其差分方程可以表示为:
\[ y[n] = by[n-1] + x[n], \quad |b| < 1 \]
给定 \( b = 0.9 \),这个系统的单位冲激响应(Impulse Response,\( h[n] \))可以用递推的方式计算,因为系统是一个稳定的因果系统(Stable and Causal)。对于初始条件 \( y[-1] = 0 \),\( h[0] = 1/b \),我们有:
\[ h[n] = \begin{cases}
\frac{1}{b}, & n = 0 \\
bh[n-1], & n > 0
\end{cases} \]
系统函数 \( H(z) \)(Z-\infty}^{\infty} h[n]z^{-n}}{\sum_{n=-\infty}^{\infty} z^{-n}} = \frac{1}{1 - bz^{-1}} \]
由于 \( b = 0.9 \),系统函数简化为:
\[ H(z) = \frac{1}{1 - 0.9z^{-1}} \]
频率响应 \( H(e^{j\omega}) \) 可以通过将 \( z \) 替换为 \( e^{j\omega} \) 来得到:
\[ H(e^{j\omega}) = \frac{1}{1 - 0.9e^{-j\omega}} \]
接下来,我们可以使用MATLAB中的`freqs`函数来画出系统的幅频响应(Magnitude Frequency Response)和相频响应(Phase Frequency Response)。
```matlab
% 参数设置
b = 0.9;
zeta = abs(b);
omega = linspace(0, pi, 1000); % 创建频率范围
% 频率响应计算
[Hmag, w] = freqs([1 b], 1, omega); % 获取幅频响应
Hphase = unwrap(angle(Hmag)); % 获取相位响应
% 绘制零、极点图
[num, den] = roots([1 b]); % 获取系统极点
plot(w, Hmag, 'LineWidth', 2, 'DisplayName', 'Magnitude');
hold on;
stem(w, Hphase, 'LineWidth', 2, 'MarkerFaceColor', 'k', 'DisplayName', 'Phase');
title('System Response');
xlabel('\(\omega\) (radians)');
ylabel('Amplitude / Phase (degrees)');
legend(locator('best'));
% 零、极点图
grid on;
hzeros = [0]; % 单位反馈系统只有一个零点
hpoles = num; % 极点位置
zeroPolePlot(hzeros, hpoles);
figure;
```
这将生成两个图表:第一个显示幅频响应和相频响应;第二个显示零点和极点图。注意在MATLAB环境中运行上述代码。
阅读全文
相关推荐



















