我必须使用声音(去噪算法),当我读到一种算法时,它说我们做 DTSTFT(离散时间短时傅立叶变换),我们将在每个“块”数据之间创建重叠,例如,如果我有
我的问题是我怎么能在我触摸后为此做 IFFT和? 我到处都说要做重叠,但没有说关于逆的事情
我必须使用声音(去噪算法),当我读到一种算法时,它说我们做 DTSTFT(离散时间短时傅立叶变换),我们将在每个“块”数据之间创建重叠,例如,如果我有
我的问题是我怎么能在我触摸后为此做 IFFT和? 我到处都说要做重叠,但没有说关于逆的事情
有几种方法。
从采取 iFFT 开始和. 让我们调用结果和, 因为它们被修改了。它们回到时域,您希望再次将它们重新组合成一个信号。理想情况下,它们会完美排列,您可以截断一个并保留另一个。这不会发生,所以诀窍是在重叠区域将后者淡入前者。在区域开始时,权重为应该是一个并且权重应该为零。在该区域的末端,反之亦然。最简单的解决方案是线性转换,但这可能不是最好的。
对于 50% 的重叠,VonHann 窗口有一个很好的特性,即适当的权重在过渡区域中是隐含正确的,您可以简单地将重叠区域上的两个修改信号相加。对于其他重叠大小,仍然可以使用相同的函数,但需要适当调整其大小。可以在进行初始 FFT 之前或在 iFFT 完成之后在时域中应用窗函数。当然,您所做的会极大地影响 bin 值,因此这取决于您“触摸”的性质,哪种方式更好。也可以在频域中通过减去其邻居的平均值并取该值的一半来计算每个 bin 的新值,从而实现 VonHann 窗口的等效。方程将是在哪里s 是原始 bin 值。在“触摸”之前或之后执行此操作与在进入频域之前或之后对信号进行窗口化一样。
您做的触摸越少,两个修改后的信号就越相似,因此衰落过渡就越平滑。如果接触太多,两个修改后的信号之间的不匹配可能会太大,结果不会那么好。然而,随着重叠区域的衰减,结果总是会是一个平滑的信号。
VonHann 窗口适用于频谱图显示,因为它将尖峰(接近整数频率)的值传播到相邻的 bin 并减少频率之间的泄漏,因此当您在频率范围内进行音调扫描时,显示保持不变有点一致并且较少依赖帧大小。很有可能这个相同的属性会让您在触摸之前执行窗口功能。
希望这可以帮助,
赛德
=================================================
跟进:
这个过程是这样的:
1)将你的信号分成重叠的块
2) 对于每个块
A) Apply Window function
B) Do the FFT
C) Apply touches
D) Do the iFFT
E) Reverse Window function
3) 将块重组为新信号
一般来说,当您重新组合信号时,您将需要一个在重叠区域上从 1 到 0 的加权函数,这样您就在淡入下一个卡盘时淡出一个块。
如果您使用大于 50% 的重叠,您将在同一时间域中存在两个以上块的区域,您必须找出适当的重组策略。我的理解是,超过 50% 的重叠发生在最终结果是频域而您的兴趣是跟踪频率分量的应用中。
您可以使用任何您想要的窗口函数和任何重叠量。如果你按照上面的步骤,如果你没有在频域做任何“触摸”,你应该得到你的原始信号。使用 50% 重叠的 VonHann 窗口的优点是窗口函数实际上用作加权函数,因此步骤 2E 和 3 大大简化。
查看这篇文章: “Overlap_Add_OLA_STFT_Processing”
汉明窗覆盖在图 8.10 下方。