【MATLAB】根据给定的系统传递函数分析其连续时间系统的频率响应和相位响应

a = [1 0.4 1]; % 滤波器的分母多项式系数
b = [0.2 0.3 1]; % 滤波器的分子多项式系数
w = logspace(-1,1); % 生成从10^-1到10^1的对数均匀分布的100个数字
h = freqs(b,a,w); % 求取滤波器在频域的复频率响应
mag = abs(h); % 复频率响应的幅度
phase = angle(h); % 复频率响应的相位
phasedeg = phase*180/pi; % 相位转换为角度

subplot(2,1,1); % 将画图区域分成两个子图,第一个子图
loglog(w,mag); % 使用对数坐标画幅频曲线
grid on; % 添加网格线
xlabel('Frequency (rad/s)'); % 设置x轴标签
ylabel('Magnitude'); % 设置y轴标签

subplot(2,1,2); % 第二个子图
semilogx(w,phasedeg); % 使用对数坐标画相频曲线
grid on; % 添加网格线
xlabel('Frequency (rad/s)'); % 设置x轴标签
ylabel('phase (degrees)'); % 设置y轴标签

这段代码实现了对滤波器在频域的复频率响应进行分析和可视化,其中logspace函数生成了从10^-1到10^1的对数均匀分布的100个数字,freqs函数计算了滤波器在这些频率下的复频率响应,abs和angle函数分别提取了响应的幅度和相位,最后通过两个子图分别绘制了幅频曲线和相频曲线。

猜你喜欢

转载自blog.csdn.net/m0_52537869/article/details/130659953