Matlab cconv和循环卷积

Matlab cconv and circular convolution

我的目标是用Matlab验证循环卷积计算。我尝试使用 cconv.

来做到这一点

但是,对于我知道答案的问题,Matlab 并没有给出相同的答案。为什么?

一个例子是 [1, 2, 4, 5, 6] 和 [7, 8, 9, 3] 之间的循环模 4,可以在 this paper by Abassi

中找到

根据论文,答案是:[112, 91, 71, 88, 124]。

但是根据 Matlab 是:[131, 127, 122, 106].

a = [1,2,4,5,6]
b = [7,8,9,3]
y = cconv(a,b,4)
ans =

   131   127   122   106

我这里做错了什么?

y = cconv(a,b,5)

论文描述的第三个参数是 5 而不是 4

Abbasi论文中使用的matlab代码写在最后:

A=fft(a);
B=fft(b);
y=ifft(A.*B);

我不知道你为什么要使用 cconv 如果这确实有效。