传递函数扫频法的matlab代码
时间: 2023-09-14 21:14:25 浏览: 311
bianshi_传递函数扫频_扫频_matlabbodetransfer
5星 · 资源好评率100%
以下是传递函数扫频法的MATLAB代码:
```matlab
% 输入传递函数 H(s)
num = [1 2];
den = [1 3 2];
H = tf(num, den);
% 定义频率范围和采样点数
fmin = 0.1;
fmax = 10;
N = 1000;
% 生成频率向量
f = logspace(log10(fmin), log10(fmax), N);
% 计算传递函数在每个频率下的幅度和相位
[mag, phase] = bode(H, 2*pi*f);
% 将幅度转换为分贝单位
mag_db = 20*log10(mag);
% 绘制幅频图和相频图
subplot(2,1,1);
semilogx(f, mag_db);
title('Bode plot - Magnitude');
xlabel('Frequency (Hz)');
ylabel('Magnitude (dB)');
subplot(2,1,2);
semilogx(f, phase);
title('Bode plot - Phase');
xlabel('Frequency (Hz)');
ylabel('Phase (deg)');
```
该代码首先输入一个传递函数H(s),然后定义频率范围和采样点数。接下来,代码生成一个频率向量,并使用MATLAB的bode函数计算H(s)在每个频率下的幅度和相位。最后,代码将幅度转换为分贝单位,并绘制幅频图和相频图。
阅读全文