微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在与 FFT 卷积之前在信号中间填充零?

如何解决在与 FFT 卷积之前在信号中间填充零?

我遇到了一个使用 cuFFT 对两个信号进行简单卷积的示例。

https://github.com/NVIDIA/cuda-samples/blob/master/Samples/simpleCUFFT/simpleCUFFT.cu

它对两个信号执行零填充,以便它们的大小匹配在一起。但是当我打印填充输出时,它显示填充是在信号中间完成的,我不明白,因为通常它是在开始或结束时完成的。检查 padData 函数

  1. 为什么要在中间做填充?

  2. 如果两个信号长度相同,是否需要填充?

我不太熟悉信号处理技术。如果有人能向我解释这一点,我将不胜感激。

解决方法

如果您希望对复数 FFT 的相位结果保持不变,则任何零填充都需要围绕输入的开始进行循环对称。如果你只是在开头或结尾填充,相位结果可能会改变。

如果您希望频谱的复数 IFFT 产生严格的实数结果,则任何零填充都必须保持共轭对称(这意味着填充需要居中或对称,而不仅仅是在开始或结束处)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。