我编写了一些以音频信号(目前为正弦波)作为输入的代码,并执行以下操作:
n (1024)样品帧的采集通过这种处理,输出信号与输入信号基本相同。
现在,在我的第二次尝试中:
在步骤1中,如果我使用2 (4,8,256.)次方的跳数(要跳转到下一帧的样本数)来获取重叠帧输出声音是平滑的,类似于原始的输入声音,但是随着任何其他的跳跃大小,声音开始崩溃。这种情况发生在输入信号的任何频率上。问题1.为什么只有当跳数为2^n时,声音才是平滑的?。
目前我使用的是汉宁窗口。当跳的大小很大(例如512)时,输出声音的音量比小的时候(例如,64)要小。这似乎是一种预期的行为,因为一个小的跳跃大小意味着一个样本是用更多的帧重建的,所以会增加更多的信号。问题2.是否有办法适当地缩放输出信号,使其体积与原始信号相似?
谢谢!
发布于 2014-03-05 21:56:55
这是不应该发生的,重叠-添加方法可以重建您的信号而没有所描述的问题,我们不知道您到底在做什么,我之前做了它的工作,它的任何跳跃大小和窗口大小,一个小秘密是应用零在您的信号前后和之前,以确保一个连续的信号,如果您冷静地会意识到您的窗口功能工作像淡出-进入/淡出-如果你只是连接框架,你会注意到一些点击或输出信号将看起来像一个颤音,得到一个小技巧来告诉你的问题在哪里真正找到!
只是为了调试,跳过快速傅立叶变换和iFFT步骤,看看你的信号是否正确的构造,如果你的重叠-添加过程有效,你的问题可能在你的FFT/iFFT .
发布于 2014-03-05 22:16:32
重叠-添加通常是不使用非矩形窗口功能。取而代之的是零垫。
如果您确实使用了一个窗口函数,那么您必须确保所有偏移窗口函数之和都达到一个常数级别,对于一个constant窗口来说,这个值有一定的偏移量(系列和的开头或结尾除外)。作为
2- (cos(x)+cos(x+Pi)) == 2
Sum更多的窗口进入一个结果,没有任何缩放,当然,和的水平将增加。
https://stackoverflow.com/questions/22207194
复制相似问题