I need to calculate the FRF for a mechanical system where the exitation has its origin from a gearbox. I generated simulation data while the mechanical systems rotates under operating conditions. I generated data of velocity an acceleration. For my acoustical analysis I need the frequency response function. So I wanted to calculate them by using the function modalfrf. But I am not sure if I can use this function due to the fact that I do not have a hammer or shaker exitation. So is it possible to calculate the FRF with this function or do I need to use another function?
John Michell answered .
2025-11-20
data = iddata(outputsignal, inputsignal, sampletime); %sampletime = 1/Fs
model = tfest(data, np); % np: number of poles
w = linspace(0,pi/sampletime,100); % an example frequency grid (you can pick something different)
G = freqresp(model,w); % or, simply do "bode(model)"
data = iddata(outputsignal, inputsignal, sampletime)
data2 = fft(data) % data in frequency domain
model = tfest(data2, np); % np: number of poles
w = linspace(0,pi/sampletime,100);
G = freqresp(model,w); % or, simply do "bode(model)"
If you have MIMO data, you could replace TFEST with SSEST (state-space estimator) and follow the steps similar to the above.