分析频谱图 Matlab

Analyzing Spectrogram Matlab

我需要有关 MATLAB 实验的帮助。我正在尝试获取每个时间间隔的歌曲频率范围。例如,如果一个人唱歌,他从时间 0 到 0.5 秒的频率范围是多少?我试过使用 MATLAB 的频谱图函数,但我不知道如何从返回值中提取我需要的值。

我希望你能帮助我(新手)。

非常感谢。感谢您的帮助。

首先你需要了解频谱图是做什么的;它将您的信号分成更短(但固定)的时间长度并对其进行 FFT(因此,它也称为 STFT 表示)。 Matlab 频谱图有很多选项供您使用。

现在回答您的问题,要通过查看频谱图数据计算出信号的频率范围,您需要先使用 NFFT、重叠数和采样频率计算出频谱图箱的时间长度(我假设你在构建频谱图之前已经解决了这个问题)。在处理高质量语音(以 16kHz 采样,重叠 50% 和 1024 NFFT)时,每个 bin(或频谱图的切片)应该 return 大约 32ms。要计算出在 0 到 500 毫秒内出现的频率,只需取出第一个 ceil(500/32) bin 并写出频率响应;您可能会获得多个频率,因为语音具有谐波特性和传播特性。

至于其他,在提供任何有用的帮助之前,我需要确切地了解您的settings/what希望达到的目标。