MATLAB: How to change the scale of the Y-Axis Unit in a Spectrogram

axisspectrogramunits

This is my code: spectrogram(Data,window,[],Freqrange,Fs,'yaxis');
with Freqrange = 50:1000 and Fs = 12800
The problem is that the y-axis is drawn in kHz instead of Hz. How can I change the unit from kHz to Hz so that the Ticks are for example 50 instead of 0.05. Thanks for your help!

Best Answer

I don’t have your data so I can’t run your code, but this idea should work:
t = 0:0.001:2;
x = chirp(t,100,1,200,'quadratic');
[s,f,t,p] = spectrogram(x,128,120,128,1e3);
figure(1)
sh = surf(p);
view(0, 90)
axis tight
yt = get(gca, 'YTick')
set(gca, 'YTick',yt, 'YTickLabel',yt*1E+4)
You might just need the last two lines (the ‘yt’ assignment and the set call). Experiment with that first, then a version of this entire code if that doesn’t work.