从 FFT 图 MATLAB 中查找传递函数

问题描述 投票:0回答:1

我有以下 FFT 图:

我不知道这是否可行,但我想从 MATLAB 中的 FFT 图找到传递函数。

这就是我到目前为止所做的:

np = 2; % number of poles
nz = 1; % number of zeros
iodelay = 0; % tansport delay
Ts = 0.1; % sample time [s]
input = freq'; % x data of FFT plot
output = xdft'; % y data of FFT plot

sysd = tfest(input,output,np,nz,iodelay,'Ts',Ts);
[num, den] = tfdata(sysd);
num = cell2mat(num);
den = cell2mat(den);
transfer_function = tf(num,den);

这给了我这个传递函数:

我所做的是否正确?这看起来合理吗?在不提前知道传递函数是什么的情况下,如何选择传递函数的零个数?

matlab signal-processing fft frequency-analysis transfer-function
1个回答
0
投票

如果 MATLAB 中已有传递函数 (tf),则可以使用 tf2zp 函数从该传递函数中提取零点和极点。

© www.soinside.com 2019 - 2024. All rights reserved.