我需要在Python中对地图进行傅里叶变换。快速傅里叶变换需要周期性边界条件,但输入的地图不是周期性的。因此,我需要应用一种输入过滤器/权重,逐渐将地图朝向边缘收敛到零。是否有Python库可以做到这一点?
我需要在Python中对地图进行傅里叶变换。快速傅里叶变换需要周期性边界条件,但输入的地图不是周期性的。因此,我需要应用一种输入过滤器/权重,逐渐将地图朝向边缘收敛到零。是否有Python库可以做到这一点?
import numpy as np
from scipy.signal import general_gaussian
# A 128x128 array
array = np.random.rand(128,128)
# Define a general Gaussian in 2D as outer product of the function with itself
window = np.outer(general_gaussian(128,6,50),general_gaussian(128,6,50))
# Multiply
ap_array = window*array
这种逐渐减少的过程通常被称为“窗口”。
Scipy有许多窗口函数。
您可以使用numpy.expand_dims创建所需的二维窗口。
关于Stefan的评论,显然numpy团队认为包含更多比数组还多的东西是一个错误。我建议在信号处理中仍然使用scipy。请注意,在他们的1.0版本中移动了相当多的函数,因此旧文档已经过时。
最后说明:"滤波器"通常用于在频域中应用的乘法,而不是空间域。