How to get the input unit back with the spectrogram function
Show older comments
Hello,
I have a signal (acceleration) in witch I want to know how much of a certain frequency is excited. For that I use spectrogram and I want to extract, at a point in time and frequency, the level of excitation in acceleration unit.
If I take sig as a signal then abs( fft(sig) )*2/window gives me the rigth amplitude (window is the size of the window). I tested it with sig = 300*cos(2*pi*f*t) and it indeed gave me 300 at the frequency f. So it works fine with fft.
But when I use it on the 's' output of spectrogram it dont give me that at all.
Any ideas to recover my acceleration unit from the spectrogram ?
Thx
2 Comments
Mathieu NOE
on 11 May 2021
hello
sometimes it's not so easy to understand how things are scaled inside matlab's functions
that's why I ended up rebuilding the spectrogram with fft so I know the amplitude of the spectrum matches the input signal
FYI I use hanning window and the corresponding corrrection factor
Tanguy Cléton
on 11 May 2021
Answers (0)
Categories
Find more on Multirate Signal Processing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!