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('短时傅里叶时频图');