首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将立体声音频数据表示为FFT

如何将立体声音频数据表示为FFT
EN

Stack Overflow用户
提问于 2010-07-20 15:44:18
回答 4查看 2.6K关注 0票数 5

对于FFT,立体声(2声道)音频数据应该如何表示?你是

A.取两个通道的平均值,并将其分配给数字的实部,并保留虚部0。

B.将一个通道分配给实部,将另一个通道分配给图像组分。

是否有理由选择其中之一?我在网上搜索了一下,但找不到任何关于这个问题的确切答案。

我正在做一些简单的频谱分析,并不知道更好,使用了选项A)。这给了我一个意想不到的结果,而选项B)如预期的那样进行。以下是更多细节:

我有一架钢琴的WAV文件“中-C”。根据定义,中C是260赫兹,所以我预计峰值频率是260赫兹,谐波的峰值更小。我通过音频编辑软件(Sound Forge)查看频谱,从而确认了这一点。但当我自己做FFT时,选择A),峰值是520赫兹。对于选项B),峰值在260 at。

我是不是遗漏了什么?到目前为止,我提出的解释是,使用真实和图像分量表示立体声数据意味着两个通道是独立的,我认为它们不是独立的,因此出现了混乱。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-07-22 00:17:07

选项B没有意义。选项A相当于将信号转换为单声道,是可以的(如果您对全局频谱感兴趣)。你的问题(双频)肯定与你在使用FFT例程时的一些误解有关。

票数 2
EN

Stack Overflow用户

发布于 2010-07-20 23:20:54

我不认为你取的平均值是正确的。:-)

C.单独处理每个通道,将振幅分配给实部,并将虚部保留为0。

票数 4
EN

Stack Overflow用户

发布于 2012-03-26 18:45:49

一旦你做了FFT,你就需要得到复杂频谱的大小。为了得到震级,你取复数谱的绝对值|X(w)|。如果你想看功率谱,你可以平方幅度谱,|X(w)|^2。

就你的频移而言,我认为这与你将虚部设为零有关。如果你把复杂的频谱想象成笛卡尔空间中的一系列复向量或位置向量。如果你取一个离散的频率面元X(w),会有一个实部代表它在实轴上的方向(x -direction),还有一个在虚轴上的虚部(y方向)。关于这个离散频率,有四个重要的值,1.实值,2.虚值,3.幅度和4.相位。如果只取实值并将虚数设置为0,则设置的是幅值=实数和相位= 0deg或90deg。因此,您已经修改了结果频谱,并对每个频率段应用了偏差。看看Magnitude of a vector上的wiki,也被称为向量的欧几里得范数,以提高您的理解。Leonbloy是正确的,但我希望这能提供更多的信息。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3287911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档