Документация Engee

deconv

Обратное преобразование свертки (деконволюция) методом полиномиального деления.

Библиотека

EngeeDSP

Синтаксис

Вызов функции

  • x,r = deconv(y,h) — восстанавливает вектор h из свертки y (выполняет деконволюцию) с помощью полиномиального деления столбиком и возвращает частное x и остаток r такие, что y = conv(x,h) + r. Если y и h — векторы полиномиальных коэффициентов, то их деконволюция эквивалентна делению полинома, представленного вектором y, на полином, представленный вектором h.

Аргументы

Входные аргументы

# y — входной сигнал для деконволюции
вектор

Details

Входной сигнал для деконволюции, заданный как вектор-строка или вектор-столбец.

Типы данных

Float64, Float32

Поддержка комплексных чисел

Да

# h — импульсная характеристика или фильтр, используемый для деконволюции
вектор

Details

Импульсная характеристика или фильтр, используемый для деконволюции, заданный как вектор-строка или вектор-столбец. Векторы y и h могут иметь разную длину и тип данных.

  • Если один или оба вектора y и h имеют тип Float32, то выходные векторы также имеют тип Float32. В противном случае выходные векторы имеют тип Float64.

  • Длины входных векторов должны удовлетворять условию length(h) <= length(y). Однако, если length(h) > length(y), то функция deconv возвращает выходные аргументы в виде x = 0 и r = y.

Типы данных

Float64, Float32

Поддержка комплексных чисел

Да

Выходные аргументы

# x — восстановленный из свертки сигнал или частное (результат деления)
вектор

Details

Восстановленный из свертки сигнал или частное (результат деления), возвращаемый в виде вектора-строки или вектора-столбца такого, что y = conv(x,h) + r.

Типы данных

Float64, Float32

# r — остаточный сигнал или остаток от деления
вектор

Details

Остаточный сигнал или остаток от деления, возвращаемый в виде вектора-строки или вектора-столбца такого, что y = conv(x,h) + r.

Типы данных

Float64, Float32

Примеры

Полиномиальное деление

Details

Создадим два вектора y и h, содержащие коэффициенты многочленов и соответственно. Разделим первый многочлен на второй, выполнив деконволюцию вектора h из вектора y. В результате деконволюции получим коэффициенты частного, соответствующие многочлену , и коэффициенты остатка, соответствующие многочлену .

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])

Литература

  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.