MATLAB短时傅里叶变换并绘制时频图
- data=load('dataset/rawdata/eegdata4.mat');
- Au=data.eegdata(:,1);
- Fs = 1200;
- [B, F, T, P] = spectrogram(Au,100,99,100,Fs); % B是F大小行T大小列的频率峰值,P是对应的能量谱密度
- %spectrogram函数返回输入信号的短时傅里叶变换,Au为信号,第一个100为窗函数大小,99为重叠的采样点数,第二个100为计算离散傅里叶变换的点数,Fs为采样频率
- figure
- imagesc(T,F,P);
- %imagesc(T,F,B)
- set(gca,'YDir','normal')%设置y轴数值为正常显示
- ylim([0,35]);%y轴范围
- colorbar;%色标
- xlabel('时间 t/s');
- ylabel('频率 f/Hz');
- title('短时傅里叶时频图');
-