Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 尝试确认平均池等于使用numpy删除高频傅里叶系数_Python_Numpy_Matrix_Fft_Dft - Fatal编程技术网

Python 尝试确认平均池等于使用numpy删除高频傅里叶系数

Python 尝试确认平均池等于使用numpy删除高频傅里叶系数,python,numpy,matrix,fft,dft,Python,Numpy,Matrix,Fft,Dft,我被告知对矩阵M应用平均池相当于删除M的傅里叶表示的高频分量。使用平均池,我指的是2乘2的平均池,如图所示: 我想验证这一点,并看看它是如何使用numpy工作的。因此,我编写了一个简单的平均池实现,并复制了一个函数来整洁地显示矩阵: 现在,为了测试傅里叶系数的变化,我运行了以下代码: M = np.random.random((8,8)) Mpooled = averagePool(M) # print the original M print('original M:') prettyPr

我被告知对矩阵M应用平均池相当于删除M的傅里叶表示的高频分量。使用平均池,我指的是2乘2的平均池,如图所示:

我想验证这一点,并看看它是如何使用numpy工作的。因此,我编写了一个简单的平均池实现,并复制了一个函数来整洁地显示矩阵:

现在,为了测试傅里叶系数的变化,我运行了以下代码:

M = np.random.random((8,8))
Mpooled = averagePool(M)

# print the original M
print('original M:')
prettyPrintMatrix(M)

# print Fourier coefficients of regular matrix
print('Fourier of M')
prettyPrintMatrix(np.fft.fft2(M))

# print Fourier coefficients of pooled matrix
print('Fourier of the pooled M')
prettyPrintMatrix(np.fft.fft2(Mpooled))
这方面的输出示例如下:

original M:
0.849   0.454   0.231   0.605   0.375   0.842   0.533   0.954
0.489   0.097   0.990   0.199   0.572   0.262   0.299   0.634
0.477   0.052   0.429   0.670   0.323   0.458   0.459   0.954
0.984   0.884   0.620   0.657   0.352   0.765   0.897   0.642
0.179   0.894   0.835   0.710   0.916   0.544   0.968   0.557
0.253   0.197   0.813   0.450   0.936   0.165   0.169   0.712
0.677   0.544   0.507   0.107   0.733   0.334   0.056   0.171
0.356   0.639   0.580   0.517   0.763   0.401   0.771   0.219

Fourier of M
34.680+0.000j   -0.059-0.188j   0.076+1.227j    -1.356+1.515j   2.101+0.000j    -1.356-1.515j   0.076-1.227j    -0.059+0.188j
-1.968-1.684j   2.125-0.223j    2.277+1.442j    1.629-0.795j    -0.141+1.460j   0.694-2.363j    -0.627+0.971j   -0.847-2.094j
3.496+2.808j    -1.099+1.260j   0.921-0.814j    2.499+0.283j    -1.048-1.206j   -3.228+2.435j   -2.934+0.030j   0.386-0.015j 
0.451-0.301j    0.791-0.143j    -0.463-0.031j   1.841+0.032j    -1.979-1.066j   1.344-1.229j    3.487-1.297j    2.105-2.455j 
0.111+0.000j    0.166+1.317j    0.946-0.016j    0.587-0.443j    -2.710+0.000j   0.587+0.443j    0.946+0.016j    0.166-1.317j 
0.451+0.301j    2.105+2.455j    3.487+1.297j    1.344+1.229j    -1.979+1.066j   1.841-0.032j    -0.463+0.031j   0.791+0.143j 
3.496-2.808j    0.386+0.015j    -2.934-0.030j   -3.228-2.435j   -1.048+1.206j   2.499-0.283j    0.921+0.814j    -1.099-1.260j
-1.968+1.684j   -0.847+2.094j   -0.627-0.971j   0.694+2.363j    -0.141-1.460j   1.629+0.795j    2.277-1.442j    2.125+0.223j 

Fourier of the pooled M
8.670+0.000j    -0.180+0.019j   -0.288+0.000j   -0.180-0.019j
-0.228-0.562j   0.487+0.071j    0.156+0.638j    -0.049-0.328j
0.172+0.000j    -0.421-0.022j   -0.530+0.000j   -0.421+0.022j
-0.228+0.562j   -0.049+0.328j   0.156-0.638j    0.487-0.071j 
现在我希望合并矩阵的傅里叶系数与原始矩阵的低频傅里叶系数有某种联系。然而,我看到的唯一关系是非常低的频率(左上角),这在合并后正好小4倍。
我现在的问题是:合并前后的傅里叶系数之间有关系吗?如果有,是什么关系?

平均滤波器是一种非常粗糙的低通滤波器,因此你不能期望看到理想的频率响应。您将看到较高频率分量的总体减少,但并不一致。当考虑效率时(因为唯一的系数是隐式的1和0值,所以只需要加法),或者当精度不重要时,通常使用平均值。否则,应使用适当的低通滤波器。

像这样的平均滤波器是一个非常差的低通滤波器,因此您不能期望看到理想的频率响应。你会看到更高频率成分的普遍减少,但这并不一致。好吧,问题在于理论,而不是实现。没有人回复。所以,如果你把这个作为一个答案,我会接受它。没问题-评论转换成下面的答案。
original M:
0.849   0.454   0.231   0.605   0.375   0.842   0.533   0.954
0.489   0.097   0.990   0.199   0.572   0.262   0.299   0.634
0.477   0.052   0.429   0.670   0.323   0.458   0.459   0.954
0.984   0.884   0.620   0.657   0.352   0.765   0.897   0.642
0.179   0.894   0.835   0.710   0.916   0.544   0.968   0.557
0.253   0.197   0.813   0.450   0.936   0.165   0.169   0.712
0.677   0.544   0.507   0.107   0.733   0.334   0.056   0.171
0.356   0.639   0.580   0.517   0.763   0.401   0.771   0.219

Fourier of M
34.680+0.000j   -0.059-0.188j   0.076+1.227j    -1.356+1.515j   2.101+0.000j    -1.356-1.515j   0.076-1.227j    -0.059+0.188j
-1.968-1.684j   2.125-0.223j    2.277+1.442j    1.629-0.795j    -0.141+1.460j   0.694-2.363j    -0.627+0.971j   -0.847-2.094j
3.496+2.808j    -1.099+1.260j   0.921-0.814j    2.499+0.283j    -1.048-1.206j   -3.228+2.435j   -2.934+0.030j   0.386-0.015j 
0.451-0.301j    0.791-0.143j    -0.463-0.031j   1.841+0.032j    -1.979-1.066j   1.344-1.229j    3.487-1.297j    2.105-2.455j 
0.111+0.000j    0.166+1.317j    0.946-0.016j    0.587-0.443j    -2.710+0.000j   0.587+0.443j    0.946+0.016j    0.166-1.317j 
0.451+0.301j    2.105+2.455j    3.487+1.297j    1.344+1.229j    -1.979+1.066j   1.841-0.032j    -0.463+0.031j   0.791+0.143j 
3.496-2.808j    0.386+0.015j    -2.934-0.030j   -3.228-2.435j   -1.048+1.206j   2.499-0.283j    0.921+0.814j    -1.099-1.260j
-1.968+1.684j   -0.847+2.094j   -0.627-0.971j   0.694+2.363j    -0.141-1.460j   1.629+0.795j    2.277-1.442j    2.125+0.223j 

Fourier of the pooled M
8.670+0.000j    -0.180+0.019j   -0.288+0.000j   -0.180-0.019j
-0.228-0.562j   0.487+0.071j    0.156+0.638j    -0.049-0.328j
0.172+0.000j    -0.421-0.022j   -0.530+0.000j   -0.421+0.022j
-0.228+0.562j   -0.049+0.328j   0.156-0.638j    0.487-0.071j