我在 MATLAB 的 deconv.m 函数中找到了这条评论
反卷积和多项式除法与数字滤波器的脉冲响应操作相同.
这个声明是什么意思?
这是否意味着可以恢复原始信号,, 给定一个脉冲响应和输出? 如果是这样,怎么做?
如果我受到脉冲信号是否正确作为滤波器的输入,其系数为作为分母和系数作为分子我会得到原来的?
我在 MATLAB 的 deconv.m 函数中找到了这条评论
反卷积和多项式除法与数字滤波器的脉冲响应操作相同.
这个声明是什么意思?
这是否意味着可以恢复原始信号,, 给定一个脉冲响应和输出? 如果是这样,怎么做?
如果我受到脉冲信号是否正确作为滤波器的输入,其系数为作为分母和系数作为分子我会得到原来的?
除了 Matt L. 的回答之外,我想强调一下为什么评论提到了多项式除法。考虑有限长度序列和, 有长度(一个序列可以补零到长度)。
现在,看看两者的卷积:
例如,考虑两个序列和. 他们的卷积是(在 Matlab 中)
>> conv([1 2 3], [4 6 5])
ans =
4 14 29 28 15
现在,考虑两个多项式的乘积和(在数学中):
Expand[(1 + 2 x + 3 x^2) (4 + 6 x + 5 x^2)]
>>> 4+14 x+29 x^2+28 x^3+15 x^4
如您所见,乘积多项式的系数等于两个序列的卷积值。
所以,现在要得到从,你需要执行多项式除法:
PolynomialQuotient[4 + 14 x + 29 x^2 + 28 x^3 + 15 x^4, (1 + 2*x + 3*x^2), x]
>>> 4+6 x+5 x^2
因此,多项式的系数产生原始序列。
这种技术可以扩展到无限序列。
要在此处获得与 Z 变换的连接:有限序列的 Z 变换和由
以及输出的 Z 变换是(谁)给的
在这里,您再次拥有多项式乘法。此外,在这里它变得更容易发现,为什么它也适用于无限序列:然后两者和成为多项式的分数,但多项式乘法的原理仍然存在。
对于确实很容易实现的有限长度序列。两个序列的卷积和
对应于它们的乘法- 转换:
从中
跟随。最后,可以通过用分子多项式计算递归滤波器的脉冲响应来获得和分母多项式. 请注意,这个递归滤波器实际上是一个 FIR 滤波器(由于极点/零点消除),因为很明显,它的脉冲响应是有限长度的。
这个小 Matlab/Octave 示例应该有助于澄清这一点:
x=[1,2,3,4,5]; h=[5,4,3,2,1]; y=conv(x,h); x2=过滤器(y,h,[1,zeros(1,4)]) x2 = 1.0000 2.0000 3.0000 4.0000 5.0000
如果你“反转反卷积”,你会得到一个卷积。查看 Matlab 卷积conv,您可以阅读单行:
卷积和多项式乘法
所以它们(几乎)是一样的。
为了理解这个想法,让我们从标准乘法开始,暂时忘记进位。如果将 123 乘以 456。
要获得“单位”(请记住,不要携带),您唯一的选择是乘以单位()。要获得十,您现在可以将十乘以单位;两个选项:123 中的十,456 中的单位,123 中的单位,456 中的十。要获得数百,您可以将数百乘以单位(两个选项)和十乘以十(一个选项)。在每一步,受影响的指数对的总和是恒定的,当您向左移动时,这个总和会增加一个单位。
多项式乘法的工作原理类似于无进位乘法:得到术语,你必须结合术语的产品和, 只要和. 在这里你看到权力的总和和对于给定的是常数, 并随着. 对于(无限)Laurent 或幂级数,您会得到与多项式积(称为Cauchy 积)类似的一组术语。
现在,获取序列或信号 . 您可以将其转换为简单的对象,更易于操作,通过对索引进行编码成权力,因为“权力不会混合”:一个人不能混淆两种不同的权力。然后,您在序列空间和不同的幂级数之间存在双射:. 由于您在索引和幂之间有这种类比,因此柯西积自然会编码卷积(同构)。
您可以阅读更多内容: