MATLAB: What’s wrong with the FRF

fftfrfMATLABmodal analysissignal processingSignal Processing Toolbox

Hello,
From a time domain response and excitation signal, I'm trying to compute and plot an FRF function. I've tried using both FFT and the built-in function modalfrf to compute the FRF. However the resulting FRFs look slightly different and differ greatly in magnitude. Notice how the modalfrf curve has a somewhat "downhill" look (orange one) while the one I computed using my code (blue) looks more "flat". Does anyone know what might be the issue here?
%% My FRF code using FFT
tempx=fft(a5);
tempf=fft(F);
x1=(tempx);
f1=(tempf);
L=length(x1)/2;
X=x1(1:L);
Fu=f1(1:L);
FRF=abs(X./Fu);
freq=linspace(0,Nq,length(FRF));
figure
loglog(freq,FRF);
grid on
xlabel('Frecuencia (Hz)')
ylabel('FRF (dB)')
xlim([3 70])
ylim([yinf ysup])
%% Using modalfrf function
[FRF,f]=modalfrf(F,a5,Fs,hann(50000),0.1*50000);
xlim([3 70])
FRF=abs(FRF);
loglog(f,FRF,'Linewidth', 1)
xlim([3 70])
ylim([yinf ysup])
xlabel("Frecuencia (Hz)")
ylabel("FRF (g/N)")
Thank you in advance.

Best Answer

The average slope of the two lines suggest that in one case you are integrating the accelartion into velocity (orangeFRF) so you are plotting somthing like (m/s)/N (this aspect could be confimed also by the 3 order of magnitude).
While in the second case (blueFRF) it seems that you are plotting the "accelerance" in g/N.
If you want to check this aspect, just compute this:
blueFRF / ( j*omega ) % Integrate the accelerance (blueFRF) [(m/s^2)] once in order to get the velocity (orangeFRF) measured in [(m/s)/N]
Theoretically you should get the orangeFRF. You can also compute the viceversa, so orangeFRF * ( j*omega )
I check my theory at 10Hz by hands, and the result confirm what I suspect:
2e-2/(2*pi*10)^2 = 5.0661e-006 % Since we are working on the magnitude, we can don consider j. If you are interested also in phase, consider j.
So probably, you have to take care about such integration of the acceleranceFRF into velocityFRF.
Check more carefully this aspect and let me know.
Morover, when you compute FRF, don't forget to apply windows to the raw signals. I notice that you are using hann window, but check in the State of the Art if you are choosing the correct window. Usually for FRF with impact hammer, it is better to apply exponential windows on both signals. Probably hann window is better to use if you are using a random noise coming from a constant source (e.g. electrodynamic shaker).
Last point, don't forget to check the coherence of your FRF that gives you info about the quality of your measurements. The command "modalfrf" also give you this output. See doc for more info.
If this answer help you to solve you problem, please consider to accept the answer as a sign of gratitude.
Best regards