Note: This page has been translated by MathWorks. Please click here

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

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 (Parallel Computing Toolbox) 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?