How can I change the time axis unit in a spectrogram from minutes to seconds?

조회 수: 6 (최근 30일)
Using spectrogram everything works fine, but the x-axis is displayed in minutes. Is there a way to change this generally? I changed the x-tick labels but this is very uncomfortable.

답변 (2개)

Adam
Adam 2017년 8월 4일
편집: Adam 2017년 8월 4일
How are you creating the spectogram? Its axes will be whatever come from your input data, by default, but if you just create the spectogram outputs and plot them yourself you can set them to whatever you want.
Or if you let spectogram do the plot for you make sure you keep its handle:
h = spectogram(...)
then you can set
h.XData = ...
to be whatever you want.
  댓글 수: 2
Deborah Müller
Deborah Müller 2017년 8월 4일
Thank you for your answer. I didn't use the handle. But I'm not sure how to change the XData. I tried to look at it with get(h, XData) but that didn't work.
Adam
Adam 2017년 8월 4일
편집: Adam 2017년 8월 4일
Ah yes, I was giving that off the top of my head. The single output argument syntax for spectrogram just returns the STFT matrix.
Generally I always plot it myself from the outputs of spectrogram, then I have control over what is actually being plotted and can interpret the result more sensibly.
e.g.
[S, F, T, P] = spectrogram( ... );
figure; imagesc( hAxes, F1, T1, P1 );
The frequency and time axes can be altered as you wish though, e.g.
figure; imagesc( hAxes, F1, T1 * 60, P1 );
Alternatively you can query the 'Children' property of the axes onto which the spectrogram plotted and retrieve the image and then change the XData that way.

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


Christos Saragiotis
Christos Saragiotis 2017년 8월 4일
Deborah, you might want to give us your code, then everything will be much simpler.

카테고리

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