[solved] difference between 2 spectrograms

조회 수: 12 (최근 30일)
bryan
bryan 2019년 9월 25일
댓글: bryan 2020년 2월 28일
Hello,
Here is the situation:
I have a dynamic system equipped with a vibration sensor.
this system has 2 configurations; I have 1 record of 10 minutes in each configuration
I plot spectrogram for each. So far, everything is fine
[s,f,t]=spectrogramspectrogram(data,hamming(wdw),overlap,[],10240);
[s2,f,t]=spectrogram(data2,hamming(wdw),overlap,[],10240);
Now I want to compare (make a difference) of these spectrograms, but
I can do s-s2, but before
I can't plot back the spectrogram from s
I tried several thing such as
im=imagesc(h/1000,(t/60),(abs((s')))) ; % tested with imag real and with image
colorbar
ylabel('Time (mins)');
xlabel('Frequency (kHz)');
but the result is different from
spectrogram(data,hamming(wdw),overlap,[],10240);
thank you for your answer

채택된 답변

bryan
bryan 2019년 9월 25일
편집: bryan 2019년 9월 25일
Hello,
thank you for your answer, this is great help
here is the result
Sans titre.png
this is the best result I got so far. :D
some possible improvments
-the last time index is deleted
-Z data is different (but I will make comparisons, si not very important)
-the pscolor give a flat image, when spectrogram give a 3D I can rotate
  댓글 수: 1
Bjorn Gustavsson
Bjorn Gustavsson 2019년 9월 25일
For the last point you can simply change pcolor to surf. For the point about the colour-scale, it might be that the top plot is something like:
pcolor(f,t,10*log10(abs(s)/max(abs(s(:))))), shading flat
that is display the spectrogram in dB relative to the strongest component.

댓글을 달려면 로그인하십시오.

추가 답변 (5개)

Bjorn Gustavsson
Bjorn Gustavsson 2019년 9월 25일
Spectrogram called without input arguments seems to plot log10 of the power. try this:
im = pcolor(h/1000,(t/60),log10(abs((s'))));
shading flat
colorbar
ylabel('Time (mins)');
xlabel('Frequency (kHz)');
HTH

bryan
bryan 2019년 9월 25일
thank you again
surf work fine (I think I got a parenthesis problem)
I will try this suggestion for amplitude
but for the time, I have a synchronisation problem visible in the rounded areaSans titre.png
  댓글 수: 1
Bjorn Gustavsson
Bjorn Gustavsson 2019년 9월 25일
That has something to do with what your red curve is, and not that much with the spectrogram-plot, I think.
A completely different question is if you need this spectral resolution - you might get more useful results if you reduce the length of your window. That would reduce the frequency-resolution but will give you improved time-resolution.

댓글을 달려면 로그인하십시오.


bryan
bryan 2019년 10월 2일
Thank you for your answer, and sorry for the late reply
  • for the problem of Z difference, I searched in pspectrogram.m, and it seems to be
hndl = surf(t, f, 10*log10(abs(Pxx)+eps),'EdgeColor','none');
so I tried it (without eps), and I noticed the original spectrogam plot removes low frequency, so this also explain why the scale is different, because the low frequencies are high on my data.
I will have a look at the time synchro next time

bryan
bryan 2019년 10월 25일
편집: bryan 2019년 10월 28일
Hello,
for the Z resolution problem (yes it's a late reply), I solved by myself
I noticed surf function doesn't plot the last Y value
So I added a dummy column on the matrix, a dummy element on the Y vector and now I see as much lines in the ploted surface as it actually has
  댓글 수: 1
Bjorn Gustavsson
Bjorn Gustavsson 2019년 10월 25일
Yes, that is true, but the "red curve" of yours varies at shorter time-scales than your time-resolution of your spectrogram - to try to resolve that you could try to run spectrogram with a shorter window, wdw, and overlap (this will reduce the spectral resolution, but you have plenty of that already.)
HTH

댓글을 달려면 로그인하십시오.


bryan
bryan 2019년 10월 28일
yes, well this is another issue.
this is easy to change, exept I face memory problems (there are lots of data).I focus on the stabilized areas for the moment
  댓글 수: 2
Bjorn Gustavsson
Bjorn Gustavsson 2019년 10월 28일
You will not get more data in your spectrogram if you increase the time-resolution and reduce the spectral resolution - this is Heisenberg! As your spectrogram looks now you have "too high" spectral resolution and too low temporal resolution.
bryan
bryan 2020년 2월 28일
you are right, nfft=528 is enaught

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Time-Frequency Analysis에 대해 자세히 알아보기

태그

제품

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by