循环卷积与线性卷积

循环卷积

针对的是两个长度都为N的序列,对两个序列做FFT,然后再做IFFT得到的结果就是循环卷积,结果的长度也是N。

直接计算步骤:

序列A与序列B,长度都是N,新的序列C

1、把B倒过来。[翻转]

2、把B向右平移一个元素。最右侧的元素补到左边。

3、计算此时A和B对应元素的积的和。将其加到C的末尾。

4、如果C中还不足N个元素,重复步骤2和3。

 

线性卷积

针对的是两个长度为L和M的序列,将两个序列都补0pad到N,做FFT,再做IFFT。得到的结果长度为L+M-1

直接计算步骤:

序列A与序列B,长度分别数L和M,都补0到N,新的序列C

1、把B倒过来。[翻转]

2、将B翻转之后的数组第一位与A的第一位对齐

3、计算此时A和B对应元素的积的和。

4、将B数组向右移动一位,继续计算。

5、直到B数组与A数组没有重叠为止。

 

两者的关系:

如果想要计算循环卷积,可以将线性卷积进行周期化,然后计算。

如果想要计算线性卷积,可以将循环卷积pad0,进行计算。

 

【1】https://www.zhihu.com/question/25525824

【2】https://wenku.baidu.com/view/829dd3ce541810a6f524ccbff121dd36a32dc4e9

【3】bluestein算法 https://blog.csdn.net/outer_form/article/details/52386685


版权声明:本文为wzh1026原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。