Python 反褶积提取潜在核
假设Python 反褶积提取潜在核,python,scipy,fft,convolution,Python,Scipy,Fft,Convolution,假设A*X=B是一个全卷积;因此,如果矩阵A是nxn而矩阵x是mxm,矩阵B必须是(N+M-1)x(N+M-1)。我知道A和B,但不知道X;所以我想找到它 由于傅里叶变换的反褶积要求所有相关矩阵的大小相同,因此我们用零填充A,使其成为(N+M-1)x(N+M-1) 这在Python中很容易实现 import numpy as np from numpy.fft import fft2, ifft2 shape = B.shape X_pre = ifft2(fft2(B, shape) / f
A*X=B
是一个全卷积
;因此,如果矩阵A
是nxn而矩阵x
是mxm,矩阵B
必须是(N+M-1)x(N+M-1)。我知道A
和B
,但不知道X
;所以我想找到它
由于傅里叶变换的反褶积要求所有相关矩阵的大小相同,因此我们用零填充A
,使其成为(N+M-1)x(N+M-1)
这在Python中很容易实现
import numpy as np
from numpy.fft import fft2, ifft2
shape = B.shape
X_pre = ifft2(fft2(B, shape) / fft2(A, shape)).real
X = X_pre[:??, :??] # what do I put here to extract the latent kernel X?
问题是X_pre
的大小是(N+M-1)X(N+M-1),但我希望得到大小为M X M的X
。知道M
比N
小得多,我如何提取潜在内核X
先谢谢你