在MATLAB中,可以使用spectrogram()函数来进行短时傅里叶变换(Short-Time Fourier Transform,STFT)。spectrogram()函数可以将信号在时间和频率上进行分析,并生成相应的时频谱图。
spectrogram()函数的基本语法如下:
spectrogram(x, window, noverlap, nfft, fs)
其中,x是要进行傅里叶变换的信号序列;window是窗函数,用于对信号进行分帧;noverlap是相邻帧之间的重叠数;nfft是FFT的点数;fs是信号的采样频率。
下面是一个简单的示例:
% 生成一个示例信号
fs = 1000;  % 采样频率
t = 0:1/fs:1;  % 时间序列
f1 = 50;  % 信号频率
f2 = 200;
x = cos(2*pi*f1*t) + cos(2*pi*f2*t);
% 进行短时傅里叶变换
window = hamming(256);  % 使用汉明窗口
noverlap = 128;  % 重叠数为128
nfft = 512;  % FFT点数为512
[s, f, t] = spectrogram(x, window, noverlap, nfft, fs);
% 绘制时频谱图
短时傅里叶变换matlab程序figure
imagesc(t, f, 20*log10(abs(s)))
axis xy
colorbar
title('Spectrogram')
xlabel('Time (s)')
ylabel('Frequency (Hz)')
运行上述代码可以生成信号的时频谱图。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。