时域重叠添加如何为时间延长工作?

时间:2011-06-24 16:04:25

标签: c signal-processing fft overlap

我正在尝试实现时域重叠添加方法,以便在wav文件中拉伸数据。但我得到的结果有点令人失望。似乎我做错了 这是我的TDOLA的过程:

  • 首先,我从输入信号中取出一个块
  • 然后我将块与所选窗口相乘(例如,Hann窗口)
  • 最后,我将我的块添加到带有重叠的输出流

这个序列有什么问题吗?也许有必要在频域进行一些过滤?

3 个答案:

答案 0 :(得分:2)

尝试使用长度至少为音高周期的小倍数的块。您可以猜测源声音文件的平均音高周期,也可以运行DSP /软件音高估算器算法以获得更好的效果。

答案 1 :(得分:0)

我推荐WSOLA。它不是那么快,但效率很高。几年前,IEEE Journals上发表的EWSOLA(增强波形相似性OverLap-Add)也有一篇很好的论文。

WSOLA基于提取实际周期的波形自相关工作并重复它们。这个过程比普通的TDOLA好得多。

答案 2 :(得分:-3)

它不起作用。这是你的整个问题。时间延伸固有地涉及到频域的转换和来自频域的转换。纯粹在时域中工作是不可能的。