Modulo-N circular convolution

`c = cconv(a,b,n)`

c = cconv(gpuArrayA,gpuArrayB,n)

Circular convolution is used to convolve two discrete Fourier transform (DFT) sequences. For long sequences, circular convolution can be faster than linear convolution.

`c = cconv(a,b,n)`

circularly
convolves vectors `a`

and `b`

. `n`

is
the length of the resulting vector. If you omit `n`

,
it defaults to `length(a)+length(b)-1`

. When ```
n
= length(a)+length(b)-1
```

, the circular convolution is equivalent
to the linear convolution computed with `conv`

.
You can also use `cconv`

to compute the circular
cross-correlation of two sequences.

`c = cconv(gpuArrayA,gpuArrayB,n)`

returns
the circular convolution of the input vectors of class `gpuArray`

.
See Establish Arrays on a GPU for
details on gpuArray objects. Using `cconv`

with `gpuArray`

objects
requires Parallel Computing Toolbox™ software and a CUDA-enabled
NVIDIA GPU with compute capability 1.3 or above. See http://www.mathworks.com/products/parallel-computing/requirements.html for
details. The output vector, `c`

, is a gpuArray object.
See Circular Convolution Using the GPU for
an example of using the GPU to compute the circular convolution.

[1] Orfanidis, Sophocles J. *Introduction
to Signal Processing*. Englewood Cliffs, NJ: Prentice-Hall,
1996, pp. 524–529.

Was this topic helpful?