【发布时间】:2015-01-30 19:46:57
【问题描述】:
我已经获得了系统的波特图。该系统似乎有一个非常复杂的幅度和相位图。手动查找传递函数是不可能的。有没有办法在Matlab中从幅度和相位数据中找到传递函数?
这是我的代码:
%%FFT method for finding Transfer Function
load testdata2.mat;
input = fft(signal(:,1));
% FFT of input data
output = fft(signal(:,2));
% FFT of output data
fft_ratio = output ./ input;
subplot(2,1,1)
%Magnitude
semilogx(20*log10(abs(fft_ratio)))
subplot(2,1,2)
%Phase
semilogx((180/pi)*angle(fft_ratio))
mag = 20*log10(abs(fft_ratio));
phase = (180/pi)*angle(fft_ratio);
【问题讨论】:
-
在没有传递函数的情况下如何获得波特图?你能添加一些示例代码吗?
-
波特图只不过是频率上的幅度。因此您可以使用tfest 和frequency response object - 如果您仍然有问题,您需要提供您的数据。
-
这是我的代码:%%FFT 方法用于查找传递函数负载 testdata2.mat;输入 = fft(信号(:,1));输入数据输出的% FFT = fft(signal(:,2));输出数据的% FFT fft_ratio = output ./ input; subplot(2,1,1) %幅度图 semilogx(20*log10(abs(fft_ratio))) subplot(2,1,2) %相位图 semilogx((180/pi)*angle(fft_ratio)) mag = 20 *log10(abs(fft_ratio));相位 = (180/pi)*angle(fft_ratio) 这是我的数据:(fileconvoy.com/…)
标签: matlab