Convolution - Compute convolution of two inputs

Library

Signal Operations

dspsigops

Description

The Convolution block convolves the first dimension of a sample-based N-D input array u, with the first dimension of a sample-based N-D input array v. The block can also independently convolve a sample-based vector with the first-dimension of an N-D input array. For frame-based inputs, the Convolution block convolves analogous columns of an Mu-by-N input matrix u and an Mv-by-N input matrix v. The Convolution block can also independently convolve a single-channel frame-based column vector with each column of a multiple-channel frame-based matrix.

The frame status of both inputs to the Convolution block must be the same. The output of the block is always sample-based.

The Convolution block accepts both real and complex floating-point and fixed-point inputs. Fixed-point signals are not supported for the frequency domain.

Convolving Frame-Based Inputs

When the inputs to the Convolution block are a frame based Mu-by-N input matrix u and an Mv-by-N input matrix v, the output, y, is a sample-based (Mu+Mv–1)-by-N matrix whose jth column has elements

Inputs u and v are zero when indexed outside of their valid ranges. When both inputs are real, the output is real; when one or both inputs are complex, the output is complex.

When one input is a column vector (single channel) and the other is a matrix (multiple channels), the single-channel input is independently convolved with each channel of the multichannel input. For example, when u is a Mu-by-1 column vector and v is an Mv-by-N matrix, the output is an (Mu+Mv–1)-by-N matrix whose jth column has elements

Convolving Sample-Based Inputs

The Convolution block supports sample-based N-D input arrays. The convolution of N-D array input is always computed across the first dimension. If both inputs are N-D arrays, the size of their first dimension can differ, but the size of all other dimensions must be equal. For example, when u is an Mu-by-N-by-P array, and v is an Mv-by-N-by-P array, the output is an (Mu+Mv–1)-by-N-by-P array.

When one input is an N-D sample-based array and the other is a vector, the vector is independently convolved with the first dimension of the N-D input. For example, when u is a Mu-by-1 column vector and v is an Mv-by-N-by-P array, the output is an (Mu+Mv–1)-by-N-by-P array.

The Convolution block also accepts two vector inputs. When u and v are sample-based vectors with lengths Mu and Mv, the Convolution block performs the vector convolution

The dimensions of the sample-based output vector are determined by the dimensions of the input vectors:

Fixed-Point Data Types

The following diagram shows the data types used within the Convolution block for fixed-point signals (time domain only).

You can set the product output, accumulator, and output data types in the block dialog as discussed in the next section.

The output of the multiplier is in the product output data type when the input is real. When the input is complex, the result of the multiplication is in the accumulator data type. For details on the complex multiplication performed, see Multiplication Data Types.

Dialog Box

The Main pane of the Convolution block dialog appears as follows.

Computation domain

Set the domain in which the block computes convolutions:

The Fixed-point pane of the Convolution block dialog appears as follows.

Rounding mode

Select the rounding mode for fixed-point operations.

Overflow mode

Select the overflow mode for fixed-point operations.

Product output

Use this parameter to specify how you want to designate the product output word and fraction lengths. See Fixed-Point Data Types and Multiplication Data Types for illustrations depicting the use of the product output data type in this block:

Accumulator

As depicted in this figure, inputs to the accumulator are cast to the accumulator data type. The output of the adder remains in the accumulator data type as each element of the input is added to it. Use this parameter to specify how you want to designate this accumulator word and fraction lengths.

You also use this parameter to specify the accumulator word and fraction lengths resulting from a complex-complex multiplication in the block. See Multiplication Data Types for more information.

Output

Choose how you specify the data type and scaling of the output of the block:

Lock scaling against changes by the autoscaling tool

Select this parameter to prevent any fixed-point scaling you specify in this block mask from being overridden by the autoscaling tool in the Fixed-Point Tool.

Supported Data Types

See Also

Correlation

Signal Processing Blockset

conv

MATLAB

  


 © 1984-2008- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS