How to change the scale of the x-axis & y-axis?

991 次查看(过去 30 天)
I have written a code which used to plot the spectrogram of a signal. This line was to get the spectrogram:
[s,f2,t] = spectrogram(xc,win,noverlap,FFT_LENGTH,fs,'yaxis');
Then I used imagesc to plot the spectrogram: imagesc(t,f2,20*log10(abs(s)));
Everything is working fine except I want to decrease the scale of the x-axis & y-axis. How can I do that?
  1 个评论
Adam
Adam 2018-10-22
编辑:Adam 2018-10-22
Decrease the scale from what to what?
doc xlim
doc ylim
change the axis limits, but I don't know what you mean by 'change the scale', it is very ambiguous. Do you mean change between linear and logarithmic?

请先登录,再进行评论。

回答(3 个)

Aron Magesh
Aron Magesh 2020-7-5
For changing the axis scale use the following function:
for example low=10,high=100 and interval=5
set(gca,'xtick', 10:5:100)

Kevin Chng
Kevin Chng 2018-10-22
you may use xlimit() or ylimit() to rescale your plot.
  4 个评论
Sultan Al-Hammadi
Sultan Al-Hammadi 2018-10-23
What I was trying to say is that how to change the scale for the thing circled by a red line [looks like steps] to make it looks like a straight line (not like steps)? (please see the attached spectrogram)
Kevin Chng
Kevin Chng 2018-10-24
Try
h.figure
w = h.Position;
%plot your graph
h.Position = [w(1) w(2) w(3)*1.5 w(4)]
Will it work for you?

请先登录,再进行评论。


Adam
Adam 2018-10-23
编辑:Adam 2018-10-23
doc interp2
is likely what you need if you want finer resolution to get rid of step-like features, but how was anyone to interpret that from you just keep repeating 'change the scale'? You need to be a lot more precise to get a faster answer.
Or since you are creating a spectrogram you could just use a finer discretisation of the frequencies and/or the times used to compute it.

类别

Help CenterFile Exchange 中查找有关 Get Started with Signal Processing Toolbox 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by