您无法获得时间和频率域中都准确的表示。这就是傅里叶变换的不确定性原理。
您可以通过改变窗口长度来权衡时间和频率分辨率。下面比较了两个使用不同窗口长度获取的声谱图,信号(图1)类似于您问题中的信号:
% Define signal
fs = 500; % sampling frequency
t = 0:1/fs:6; % time axis
fm = 10; % signal (carrier) frequency
s = cos(2*pi*fm*t).* exp(-5*(t-2).^2);
figure
plot(t,s)
% Spectrogram with long window
figure
nfft = 500;
window = hamming(nfft);
spectrogram(s,window,[],nfft,fs), view([90 -90])
% Spectrogram with short window
figure
nfft = 50;
window = hamming(nfft);
spectrogram(s,window,[],nfft,fs), view([90 -90])
signal
? - Paolo