卷积&使用Scipy进行反卷积

时间:2014-02-24 14:16:21

标签: python scipy signals convolution

我正在尝试使用Python计算Deconvolution。我有一个信号,比如f(t),它是由窗口函数曲折的g(t)。有没有直接的方法来计算反卷积,所以我可以找回原始信号?

例如f(t)= exp(-t ** 2/3);高斯函数 和g(t)=梯形函数

提前感谢您的善意建议。

1 个答案:

答案 0 :(得分:0)

这是分析性还是数字性问题?

如果是数字,请使用scipy.signal.devconvolve:http://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.deconvolve.html

来自文档:

>>> from scipy import signal
>>> sig = np.array([0, 0, 0, 0, 0, 1, 1, 1, 1,])
>>> filter = np.array([1,1,0])
>>> res = signal.convolve(sig, filter)
>>> signal.deconvolve(res, filter)
(array([ 0.,  0.,  0.,  0.,  0.,  1.,  1.,  1.,  1.]),
 array([ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.]))

否则,如果您需要分析解决方案,则可能使用了错误的工具。

此外,只是未来谷歌的提示,当你谈论卷积时,行动通常/经常“卷入”而不是“复杂”,请参阅https://english.stackexchange.com/questions/64046/convolve-vs-convolute