从 DFT 获得真正的线性卷积的正确长度是多少?

信息处理 自由度 卷积
2022-01-31 00:08:23

在两个等长序列M和N的线性卷积中,输出的长度为length(A)+length(B)-1,如果我们应用卷积转乘的DFT性质,输出等于Max(长度 (M) 或长度 (N))。

a)如果我们有兴趣仅从 DFT 中提取线性卷积部分,是否有一种简单的方法可以预测有多少边缘点被循环卷积污染?假设,不想在 DFT 中进行零填充以获得线性卷积。

b)其次,如果我们希望通过 DFT 进行真正的线性卷积,我们是否应该使用零填充直到长度(M)+长度(N)-1。这是从 ResearchGate pg 18获得的博士论文中的一个数字,为​​什么它说如果 DFT 的长度 >length(M)+length(N)-1,那么结果是有效的。线性卷积是否不限于length(M)+length(N)-1的长度。

在此处输入图像描述

1个回答

我想你要问的是:我使用长度为 K 的 FFT 的谱乘法来实现长度为 M 和 N 的两个序列的卷积会发生什么?我们在这里将“正确”定义为“匹配线性卷积的结果”。为简单起见,我们定义正确的长度L=M+N1

这是你得到的

  1. K > L:前 L 个样本将是“正确的”,然后是 (KL) 个零
  2. K = L:正确
  3. max(M,N) < K < L:由于时域混叠,结果的前 (LK) 个样本是错误的。由于缓冲区太短,您最后也缺少(LK)样本或您的结果。结果末尾的一些样本与中间某处的正确答案相匹配。
  4. K < max(M,N):一切都错了