Engee documentation

deconv

Reverse convolution transformation (deconvolution) by of polynomial division.

Library

EngeeDSP

Syntax

Function call

  • x,r = deconv(y,h) — restores the vector h from the bundle y (performs deconvolution) using polynomial column division and returns the quotient x and the remainder r such that y = conv(x,h) + r. If y and h — vectors of polynomial coefficients, then their deconvolution is equivalent to dividing a polynomial represented by a vector y, on a polynomial represented by a vector h.

Arguments

Input arguments

# y is the input signal for deconvolution

+ vector

Details

The input signal for deconvolution, specified as a row vector or column vector.

Типы данных

Float64, Float32

Support for complex numbers

Yes

# h is the impulse response or filter used for deconvolution

+ vector

Details

The impulse response or filter used for deconvolution is defined as a row vector or column vector. Vectors y and h they can have different length and data type.

  • If one or both vectors y and h have a type Float32, then the output vectors are also of type Float32. Otherwise, the output vectors are of type Float64.

  • The lengths of the input vectors must satisfy the condition length(h) ⇐ length(y). However, if length(h) > length(y), then the function deconv returns output arguments in the form x = 0 and r = y.

Типы данных

Float64, Float32

Support for complex numbers

Yes

Output arguments

# x — signal recovered from convolution or quotient (result of division)

+ vector

Details

The signal or quotient recovered from the convolution (the result of the division), returned as a row vector or column vector such that y = conv(x,h) + r.

Типы данных

Float64, Float32

# r is the residual signal or the remainder of the division

+ vector

Details

The residual signal or remainder of the division, returned as a row vector or column vector such that y = conv(x,h) + r.

Типы данных

Float64, Float32

Examples

Polynomial division

Details

Create two vectors y and h containing coefficients of polynomials and accordingly. We divide the first polynomial by the second one by deconvolving the vector h from the vector y. As a result of deconvolution, we obtain the coefficients of the quotient corresponding to the polynomial , and the coefficients of the remainder corresponding to the polynomial .

import EngeeDSP.Functions: deconv

y = [2 7 4 9]
h = [1 0 1]
x, r = deconv(y, h)
([2.0 7.0], [0.0 0.0 2.0 2.0])

Literature

  1. Nagy, James G. «Fast Inverse QR Factorization for Toeplitz Matrices.» SIAM Journal on Scientific Computing 14, no. 5 (September 1993): 1174–93. https://doi.org/10.1137/0914070.