[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 関数はそれぞれ応答の振幅と位相を抽出し、最後に 2 つのサブグラフを通じて振幅 - 周波数曲線と位相 - 周波数曲線を描画します。

おすすめ

転載: blog.csdn.net/m0_52537869/article/details/130659953