我不知道这是否可行,但我想从 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 中已有传递函数 (tf),则可以使用 tf2zp 函数从该传递函数中提取零点和极点。