如在此示例如何从(使用portAudio)的输入音频流提取频率信息?的我很好奇portaudio和numpy的...

我不知道FFT 100%,我怎么可以通过numpy的一大块,并取回-1.0三个值1.0低音,中音和高音?

我不介意,如果这只是一个通道,因为我可以让这个音频部分的意义上说,它是在我的面前游泳,当我看他们的数学:)

有帮助吗?

解决方案

其实,你不会用傅里叶变换来做到这一点。

劈裂低音,中频和高频的任何音频信号通常使用过滤器来完成。甲滤波器是一个信号处理装置,其衰减某些频率范围。滤波器可以是数字地生成或电。例如,它们在音频交叉系统用于在扬声器。

要获得的低频低音部分你可以使用一个低通滤波器。低通滤波器滤出高频。他们也被称为“高切”过滤器。点击 为了得到中频中间部分你可以使用一个带通滤波器。带通滤波器滤出低和高频率。他们也被称为“钟过滤器”。结果 为了得到高频高音部分您将使用高通滤波器。高通滤波器滤掉任何低频。它们也被称为“低切”过滤器。

其实,你也可以只使用高通和低通滤波器。如果从原始信号中减去这两个滤波信号,其结果将是一个带通滤波后的信号。这样可以节省你一个过滤器。

每个滤波器将有一个阈值频率。阈值频率是一个特殊的频率,从该过滤器应该开始滤波。取决于滤波器的阶数时,信号将由6分贝/辛(第一顺序),12分贝/辛(第二顺序),18分贝/辛(第三次序)被衰减,等等。对于应用程序,一个第二顺序的设计是可能的罚款。结果 请注意,过滤器一般惹的,在某些方面你的信号和更高的秩序,更容易听到这样可以得到。顺便说一句,这是纯物理和适用于所有的信号处理包括傅立叶变换。

使用这三个过滤器被(可以是),相当于做只有三个频谱点傅立叶变换。

其他提示

傅立叶变换时,提到在所选择的回答您指向SO问题,给你“光谱” - 的大集合的值给每个频率的各种范围/切片的声音强度的(表示为例如,单位为赫兹)

如何翻译(比如说)一千强度(每频谱,也就是说每10赫兹片之一)逼到三个数字,你的愿望,当然是相当启发式的问题 - 例如,你可以只决定该频率范围对应于“低音”和“高音”,用为“中等”之间在-一切,并计算在每个平均强度。对于它的价值,我相信“噌”共同约定高达250Hz之间,为“三冠王” 6kHz的及以上(以-之间的“中档”),CFR如此页面 - 但它是相当任意的约定,所以,“挑你的毒药” ! - )

一旦你的相对的你要相对于归他们彼此并适当扩展他们的谎言在您需要的水平范围(大概是对数刻度,因为这是人类如何听力作品; - 。)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top