What is the interpretation of this STFT diagram?

Viewed 215

STFT DIAGRAM

This is a STFT diagram, I have got from my signal. I have used these command below:

figure(1)
stft(signals,500000,'Window',kaiser(256,5),'OverlapLength',220,'FFTLength',512);

I have used matlab 2019b.

My confusion arises because on the STFT diagram, I am seeing negetive magnitude -20DB. Usually on the examples of matlab central I have found all with positive magnitude and made senses to me. However, with my sample signal, I have confused. the sampling frequency is 500000.

I have added the

samplesignal.mat

file for usage.

It will be really helpful if some one can guide me to understand what is going on over here.

In addition I have added the raw time domain signal.

enter image description here

And the Frequency domain as well! enter image description here

1 Answers

The magnitude is what you sometimes call amplitude in standard FFTs -- but usually given without scaling it logarithmically. In you case it is displayed in dB, i.e. 10*lg(A). So, a negative dB-value indicates a very low amplitude (-70dB = 10^(-70/10) = 0,0000001 and -20dB =0,01). So it is just a matter of scaling. How does your original signal look like? I guess that it is also very low in amplitude…

Now to your graph: It seems that you a time-invariant signal and thus, that there is no need for performing an STFT. Do a FFT and have a look at the amplitudes. They should be in the same – very small – range.

EDITED Add to updated post:

Alright. You see that your signal is

  1. steady => no need for an STFT and
  2. small in amplitude => you will have negative amplidues in dB.

However, the FFT of the whole signals suggests amplitudes up to 16dB. This only at the first glance a contradiction. If you sum up the amplidues of the STFT, you will have the same amplitudes... almost because you have a worse frequency resolution because your signal-length is smaller (frequency resolution = 1/T_signal)

Related