Engee 文档

中华基督教青年会

循环卷积模n。

库::`工程师`

语法

函数调用

  • [参数:c]=cconv(<参数:ab>>) -执行向量的循环卷积 ab.

争论

输入参数

# a,b — 输入数组

+ 向量资料

Details

指定为向量的输入数组。

数据类型

漂浮物32, 漂浮64</无翻译> 支持复数::是

# n 是 卷积的长度

+ 一个正整数

Details

卷积的长度,设为正整数。 如果论点是 n 如果没有指定,卷积将具有长度 长度(<参数:ab,a>>) + 长度(b) − 1.

输出参数

# c — 循环卷积

+ 向量资料

Details

输入向量的循环卷积,作为向量返回。

例子:

圆形卷积和线性卷积

Details

我们将生成两个不同长度的信号。 让我们比较它们的圆形和线性卷积。 使用参数的值 [参数:n] 默认情况下。

import EngeeDSP.Functions: cconv, conv, norm

a = [1 2 -1 1]
b = [1 1 2 1 2 2 1 1]

c = cconv(a, b)            # Circular convolution
cref = conv(a, b)          # Linear convolution

dif = norm(c - cref)
3.770748636149785e-15

得到的范数几乎为零,这表明两个卷积在机器精度上给出了相同的结果。

循环卷积

Details

让我们生成两个向量并计算它们的循环卷积模 4.

import EngeeDSP.Functions: cconv

a = [2 1 2 1]
b = [1 2 3 4]
c = cconv(a, b, 4)
1×4 Matrix{Float64}:
 14.0  16.0  14.0  16.0

建议

对于长序列,循环卷积可以比线性卷积更快。

文学作品

  1. Orfanidis,Sophocles J._Introduction To Signal Processing。_Englewood Cliffs,NJ:Prentice-Hall,1996,第524-529页。