I need to calculate the fourier transform of an Operator. meaning I need to calculate the transform of the Operator's corresponding convolution kernel.

so the question is:

1.given a 2d fourier transform of the partial deriviative operator (d /dx or d/dy) what is it's fourier transform?

( if it helps, I am doing an actual computation involving 2d images. so I am working with discrete transformations )

2.how would I find an operator's convolution kernel

EDIT: please look at equation 17 on page 6 of this TR to see what am I actually trying to do.


  • $\begingroup$ Since we're talking about convolutions, we may assume the operator is linear, yes? $\endgroup$ – Ron Gordon Dec 31 '12 at 16:45
  • $\begingroup$ yes we may assume the operator is linear. $\endgroup$ – BenMatok Dec 31 '12 at 16:47

Getting the kernel of the operator

There are lots of kinds of operators. Linear, non-linear. Some linear operators can be written with a kernel $k(x,y)$, for example $$ (A_kf)(x):=\int k(x,y)f(y)dy $$ where the integral can go over different areas, curves, or whatever. Since you are talking about convolution operators, I assume that the operators can be written as a convolution $$ (A_kf)(x):=(k*f)(x):=\int_\Omega k(x-y)f(y)\,dy\,, $$ where $\Omega$ is the set of points where $k$ is not zero. In the discrete case, the integral becomes a summation: $$ (A_kf)(x)=\sum_{y\in\Omega} k(x-y)f(y). $$ If you take the function $$ \delta_{x_0}(x):=\begin{cases}1 & \text{for $x=x_0$,} \\ 0 & \text{otherwise} \end{cases} $$ for some arbitrary pixel position $x_0$ then you can get the kernel of the convolution operator by $$ (A_k\delta_{x_0})(x_0+x) = \sum_{y\in\Omega} k(x+x_0-y)\underbrace{\delta_{x_0}(y)}_{=\begin{cases}\text{$1$, if $y=x_0$}\\ \text{$0$, otherwise}\end{cases}} = k(x) $$ as you can easily check. So in image-processing take a black image (filled with zeroes) and set one pixel to $1$. Then apply the operator and you'll get the operator kernel by the above formula. Sometimes there are boundary effects, so make sure the pixel position $x_0$ is far enough away from the boundary of the image.

Getting the Fourier transform of the kernel

As soon as you have your kernel you can throw a 2d discrete Fourier transformation algorithm at the image data and you'll get it.

There's another way to look at all this: A convolution in space coincides with a point-wise multiplication in the frequency domain. To get the kernel in the Fourier domain, i.e. in the frequency space, you can take an image that is $1$ everywhere in the Fourier space. Then apply the inverse transform to this image, then the operator and the the forward Fourier transform. The result is the Fourier transformed kernel.

The fun this is, that the inverse Fourrier transform applied to the image with $1$ everywhere yields $\delta_0$ modulo a multiplicative constant. So this way of looking at it gives you the same result as the first method. (This is only true, if the operator does not behave strangely at the border of the image, but wraps around, i.e. behaves as if the images would be periodically continued.)


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.