【发布时间】:2023-06-10 03:57:02
【问题描述】:
我正在尝试使用 Python 计算反卷积。我有一个信号让我们说 f(t),它是由窗口函数说 g(t) 卷积的。是否有一些直接的方法来计算反卷积,以便我可以取回原始信号?
例如 f(t) = exp(-t**2/3);高斯函数 和 g(t) = 梯形函数
提前感谢您的友好建议。
【问题讨论】:
标签: python scipy signals convolution
我正在尝试使用 Python 计算反卷积。我有一个信号让我们说 f(t),它是由窗口函数说 g(t) 卷积的。是否有一些直接的方法来计算反卷积,以便我可以取回原始信号?
例如 f(t) = exp(-t**2/3);高斯函数 和 g(t) = 梯形函数
提前感谢您的友好建议。
【问题讨论】:
标签: python scipy signals convolution
这是一个分析问题还是数值问题?
如果是数字,使用 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
【讨论】:
deconvolve 有一个文档字符串,但它似乎仍然没有达到您的预期,例如Deconvolve(Convolve(f,g) , g) == f。我问了一个问题(*.com/questions/40615034/…),所以也许有人可以帮忙。