首页 > 解决方案 > MATLAB - 频谱图函数

问题描述

我有一个 wav 声音文件并制作了它的频谱图。我的目标是显示声音可以覆盖多少频率范围。但老实说,我不知道频谱图显示和告诉我什么。

这就是我所拥有的

load handel; % 'handel' is a MAT-file which is shipped with MATLAB as an example
x = y/100; % Decrease volume
player = audioplayer(x, Fs);
play(player,[1 (get(player, 'SampleRate')*10)]);
spectrogram(x);

Spectrogram(x) 在 x=y/100 时打印: 在此处输入图像描述

Spectrogram(x) 在 x=y/1 时打印: 在此处输入图像描述

我的分析:根据我的小知识,我认为颜色与声音的音量有关。绿色表示正在播放的音量有多高,所以你得到的绿色线条越密集,音乐播放的声音就越大。绿线越少,播放的音乐就越低。


谁能告诉我频谱图功能的作用和显示?黄色和绿色是什么意思?

标签: matlabaudio

解决方案


我将忽略很多细节,但基本思想是任何复杂的波形(如录音)都可以被认为是简单波形的组合(例如,各种频率的纯正弦波)其强度随时间而变化。音高较低的声音(例如,贝司或钢琴上的低音)将在低频中具有大部分能量,而短笛或小鼓敲击的声音在低频中会具有很大的能量更高的频率。

频谱图是一种显示信号中的频率内容如何随时间变化的方式。在您的示例中,时间似乎在 Y 轴上增加,而频率显示在 X 轴上,右侧频率较高。在任何给定的时间和频率,颜色代表当时该频率的功率量,如图右侧的颜色条所示。


推荐阅读