java 音频 傅立叶_快速傅立叶变换(FFT)输入和输出来分析Java中音频文件的频率?...

@thongcaoloi,

关于输入数据维度的简单答案是:您需要1D数据。现在我将解释这意味着什么。

因为你想要分析音频数据,你对离散傅立叶变换(DFT或FFT)的输入是一维实数序列,它表示音频信号随时间变化的电压,以及你的音频文件是随时间变化的电压的数字表示。

您的音频文件是通过以固定采样率(也称为采样频率)对连续音频信号的电压进行采样而产生的,CD质量音频通常为44.1 KHz。

但您的数据文件可能会以更低的频率进行采样,因此在对该数据进行FFT之前,请尝试找出数据的采样频率。

所以现在您必须从音频文件中提取单个样本。如果您的文件是立体声,它将有两个单独的采样序列,一个用于右声道,一个用于左声道。如果文件是单声道,则它只有一个样本序列。

如果您的文件是立体声或任何其他多声道音频格式(如5.1或7.1),您可以单独对每个通道进行FFT,或者您可以使用电压添加将任意数量的通道组合在一起。这取决于你,取决于你想要对FFT结果做些什么。

DFT或FFT的输出是一系列复数。每个复数都是由实部和虚部组成的对,通常显示为一对(re,im)。

如果你想要绘制音频文件的功率谱密度,这是大多数人想要的FFT,你将使用第一个图表20 * log10(sq ^(re ^ 2 + im ^ 2)) FFT输出的N / 2个复数,其中N是FFT的输入采样数。

您可以尝试构建自己的频谱分析软件程序,但我建议使用已经构建和测试过的东西。

这两个FFT频谱分析仪可立即提供结果,并具有内置的IFFT合成功能,这意味着您可以对频域频谱数据进行傅里叶变换,以便在时域中重建原始信号。

这个主题还有很多内容,对于一般的数字信号处理主题,但是这个简短的介绍,应该可以帮助你开始。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值