MATLAB中的去卷积
去卷积是一种从另一个矢量中提取一个特定矢量的数学方法。它可以被形象地理解为从一个初始(矢量A)信号中提取一个特定的信号,然后再从中去除第二个信号(矢量B)。在数学上,这可以理解为两个多项式的划分。去卷积是MATLAB中卷积的逆运算。它们都被用于信号处理和图像处理行业。MATLAB提供了一个简单的函数来提取去卷积的结果,即deconv()函数。
语法:
[quotient, remainder] = deconv(vecB, vecA)
这里,deconv函数将vecA从vecB中分解出来,并将商和余数存储在变量中。这4个量通过以下关系联系起来。
vecB = conv(vecA, quotient) + remainder
。
现在让我们看看几个相同的例子。
使用deconv函数,分别对两个3度和1度的多项式进行除法。让vecA = x + 1和vecB = x^3 – 1.现在,利用多项式的一般形式,系数向量将是vecA = [1 1]和vecB = [1 0 0 -1]。现在对这两个向量进行去卷积。
示例 1:
% MATLAB code for coefficients of x^3 - 1
vecB = [1 0 0 -1];
% Coefficients of x + 1
vecA = [1 1];
% Deconvolving
[qt,rem] = deconv(vecB,vecA);
% Displaying coefficients of quotient and remainder polynomial
disp(qt)
disp(rem)
输出:
这将返回商和余数的系数向量,根据这一点,多项式是。
quotient = x^2 - x + 1
remainder = -2
现在让我们来划分另一个多项式。
示例 2:
% MATLAB code for Coefficients of 23*x^5 - 3*x^3 + x + 13
vecB = [23 0 -3 0 1 13];
% Coefficients of 4*x^2 - x + 11
vecA = [4 -1 11];
% Deconvolving
[qt,rem] = deconv(vecB,vecA);
% Displaying coefficients of quotient and remainder polynomial
disp(qt)
disp(rem)
输出:
商和余数多项式是。
quotient = 5.75*x^3 + 1.4375*x^2 - 16.2031*x - 8.0039
remainder = 171.2305 * x + 101.043
这些结果可以用长除法进行验证。