如何在数学上证明垂直线的傅里叶变换?

时间:2016-10-27 14:33:50

标签: matlab math image-processing fft

我试图在垂直线的Matlab中进行傅里叶变换。我制作一个100x100大小的矩阵A,并在一定数量的列向量中传递值1s,而其他值为0。

这是脚本(您可以在下面的屏幕截图中看到绘图结果):

A = zeros(100,100);
A(:,10)=1;
A_FFT = abs(fft2(A));
figure, imshow(A,[]);
title('vertical line (A)');
figure, imshow(A_FFT,[]);
title('FFT of Vertical Line (A)');

从结果中,得到水平线矩阵A_FFT(u,v),其为A_FFT(1,:)= 100,其他矩阵分量为0。根据理论,是的,我可以理解为什么结果是这样的。但是,我需要在数学上证明它。我试图编写并解决矩阵A的DFT方程,但仍然没有得到正确的结果。任何人都可以帮助我如何以数学方式证明这一点吗?

截图:

img

左:原始垂直线,矩阵A;右:A的DFT,取fft2

1 个答案:

答案 0 :(得分:0)

水平变换给出值(与...成比例)

exp(i * (2*pi)/100 *10*k)

而垂直变换(沿着列的常量值)将所有系数设置为零,除了第0个。

abs(exp(i*whateverreal)) == 1

你得到一条纯白色的水平线。