从互联网上的讨论中,我了解到在 512 个样本点 fft 中,只要我的信号是真实的,只有前 256 个包含相关信息。另一半包含前半部分的复共轭。我的问题基于堆栈交换上的讨论。
我正在尝试绘制 wav 文件的 fft。我使用了 2 个文件 - 一个包含一些音乐的 wav 文件和另一个由脚本生成的以 440Hz 播放的文件。第二个(440hz 信号)的 fft 图显示了 2 个峰值 - 一个在 440hz,另一个在图的另一端。这是意料之中的。但是,音乐 wav 文件的情节是不对称的。怎么可能?
我使用了文件 onclassical_demo_elysium_anonymous-elysium_the-young-false-man_small-version_live-and_restored found here。Scipy 没有先正确解析它,我不得不使用 audacity 剥离元标记,然后才能让它工作。
我使用了 print 并且得到了 440hz 音调:
[ 203395.00000000 +0.j 203395.08226712 -57.78564066j
203395.32901382-115.57039787j ..., 203395.74007235+173.35334037j
203395.32901385+115.57039784j 203395.08226713 +57.78564063j]
对于音乐文件,我得到了这个:
[[ 2.+0.j -4.+0.j]
[-1.+0.j -7.+0.j]
[ 0.+0.j -2.+0.j]
...,
[ 0.+0.j -6.+0.j]
[ 0.+0.j -2.+0.j]
[ 1.+0.j -1.+0.j]]
我认为它们中的任何一个都不是对称的!或者第一个和最后一个值至少应该在实数部分重合,对吗?
只是为了它,440hz信号图:
我尝试绘制 abs(fft) - 仍然不对称。此外,为什么情节同时具有蓝色和绿色 - 真实和复杂的部分?