def inv_fft_kernel_est(ker_f, ker_p): #print(ker_f.size()) #print(ker_p.size())#[64,1,106] print(ker_f[:, :, :, :, 0].size()) inv_denominator = ker_f[:, :, :, :, 0] * ker_f[:, :, :, :, 0] \ + ker_f[:, :, :, :, 1] * ker_f[:, :, :, :, 1] \ + ker_p[:, :, :, :, 0] * ker_p[:, :, :, :, 0] \ + ker_p[:, :, :, :, 1] * ker_p[:, :, :, :, 1] # pseudo inverse kernel in flourier domain. inv_ker_f = torch.zeros_like(ker_f) inv_ker_f[:, :, :, :, 0] = ker_f[:, :, :, :, 0] / inv_denominator inv_ker_f[:, :, :, :, 1] = -ker_f[:, :, :, :, 1] / inv_denominator return inv_ker_f