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 GPU System Requirements 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?