用surf可以实现:
t=0:0.001:2; % 1kHz
采样率,2秒时长
x=chirp(t,0,1,150); %
余弦扫频 0~150Hz,1秒
subplot(211);
plot(t,x);
ylim([-1.5 1.5]);
title('时域波形');F = 0:1:100;
[y,f,t,p] = spectrogram(x,256,250,F,1E3,'yaxis'); subplot(212);
surf(t,f,10*log10(abs(p)),'EdgeColor','none');
title('频谱分析');
axis xy; axis tight; colormap(jet);
view(-45,45);
xlabel('时间');
ylabel('频率(Hz)');
追问十分感谢哈,本文matlab基础几乎为零,学习了一下午,就是还有几个问题
noverlap=250怎么确定的?
'yaxis'什么意思?
'EdgeColor','none'什么意思?
追答输入数据默认被分为8段进行处理,Noverlap表示各段之间重叠的采样点数。它必须为一个小于window或length(window)的整数。如果不指定则重叠50%
yaxis 指定频率显示于Y轴
'EdgeColor','none' 表示曲面不显示网格线