Assume we know that the Fourier transform of a signal $x(n_1,n_2)$ is $\mathcal{F}(x(n_1,n_2))=X(\omega_1,\omega_2)$. What is the Fourier transform of the signal after being transformed by a rotation matrix?

I have found a property of the DFT that states that rotating the spatial domain contents rotates the frequency domain contents which is called the Rotation Property. I am assuming this extends to DDFT's (Discrete Domain Fourier Transforms). However, I would like to derive it.

We can represent our signal using vector notation as $x(\boldsymbol{n})$, where $\boldsymbol{n} = \begin{bmatrix} n_1 \\n_2\end{bmatrix}$.

The rotation of $\boldsymbol{n}$, denoted $\boldsymbol{n}' =\begin{bmatrix} n_1' \\n_2'\end{bmatrix}$, can be expressed as $$\boldsymbol{n}' =R\boldsymbol{n} = \begin{bmatrix} \cos\theta & -\sin\theta \\[0.3em] \sin\theta & \cos\theta \end{bmatrix} \begin{bmatrix} n_1 \\n_2\end{bmatrix} $$

So I am trying to find the Fourier transform of $x(R\boldsymbol{n}$).

My attempt is as follows:

  • Step 1: Write the Fourier transform in vector notation.

    Define $\boldsymbol{\omega} = \begin{bmatrix} \omega_1 \\ \omega_2\end{bmatrix}$. We can now write the 2D Discrete Domain Fourier transform as: $$\mathcal{F}(x(\boldsymbol{n}))=X(\omega_1,\omega_2)=X(\boldsymbol{\omega})=\sum_\boldsymbol{n}x(\boldsymbol{n})e^{j\boldsymbol{\omega}^{T}\boldsymbol{n}}$$ because $\boldsymbol{\omega}^{T}\boldsymbol{n}=\omega_1 n_1 + \omega_2 n_2$.

  • Step 2: Solve for $\boldsymbol{n}$: \begin{align} \boldsymbol{n}' &=R\boldsymbol{n}\\ R^{-1}\boldsymbol{n}' &=R^{-1}R\boldsymbol{n}\\ R^{-1}\boldsymbol{n}' &=\boldsymbol{n}\\ R^{T}\boldsymbol{n}' &=\boldsymbol{n} \end{align} Noting that $R^{-1}=R^{T}$ for rotation matrices.

  • Step 3: Apply Fourier transform to rotated signal: $$\mathcal{F}(x(\boldsymbol{n}'))=\sum x(\boldsymbol{n'})e^{j\boldsymbol{\omega}^{T}\boldsymbol{n}}$$ Plug in $\boldsymbol{n} = R^{T}\boldsymbol{n}'$ $$\mathcal{F}(x(\boldsymbol{n}'))=\sum x(\boldsymbol{n'})e^{j\boldsymbol{\omega}^{T}R^{T}\boldsymbol{n}'}=\sum x(\boldsymbol{n'})e^{j(R\boldsymbol{\omega})^{T}\boldsymbol{n}'}$$ And therefore $$\mathcal{F}(x(R\boldsymbol{n}))=X(R\boldsymbol{\omega})$$

    Which I am interpreting as meaning the original statement of rotating the spatial domain contents rotates the frequency domain contents.

Can anyone confirm this is correct?

  • $\begingroup$ Your derivation is sound: the discretisation you use is a special case of the continuous version with values concentrated on Dirac distributions on a grid. The rotation basically rotates this grid such that the equivalence is still true if you keep your representation continuous. The problem comes when you discretize your rotated grid on a discrete grid... $\endgroup$
    – meduz
    Sep 15, 2016 at 20:02

2 Answers 2


The Rotation Property means that the choice of coordinate direction would not affect the spectrum of the signal itself.

To perform the rotation, I think it is better to do in the spatial domain since frequency domain is a complex one and it will just increase the complexity.


I've got a bit confused by some details in your proof:

1.By definiton of 2d fourier transform we have:


Substitute $\boldsymbol{n}$ with $\boldsymbol{n}'$,we yield:


where $\boldsymbol{n}'=R\boldsymbol{n}$.

However , in Step 3 you wrote:

$\mathcal{F}(x(\boldsymbol{n}'))=\sum x(\boldsymbol{n}')e^{j\boldsymbol{\omega}^{T}\boldsymbol{n}}$

So the first point I got confused is that you didn't substitute the $\boldsymbol{n}$ in $e^{j\boldsymbol{\omega}^{T}\boldsymbol{n}}$ with $\boldsymbol{n}'$. Shouldn't we change all the notations of the original variable to the new one if we apply fourier transform on a new variable?

I think it may be crucial that we should figure out this issue because you continue your proof by pluging in $\boldsymbol{n} = R^{T}\boldsymbol{n}'$,However if we change all the $\boldsymbol{n}$ to $\boldsymbol{n}'$ when we apply fourier transform on $\boldsymbol{n}'$,then we cannot do this subsitute.

2.In my point of view, if we let $X(\boldsymbol{\omega})=\mathcal{F}(x(n))=\sum_\boldsymbol{n}x(\boldsymbol{n})e^{j\boldsymbol{\omega}^{T}\boldsymbol{n}}$,then if we want to apply fourier transform on a new variable $\boldsymbol{n}'$,we let $X'(\boldsymbol{\omega})=\mathcal{F}(x(n'))=\sum_\boldsymbol{n}'x(\boldsymbol{n}')e^{j\boldsymbol{\omega}^{T}\boldsymbol{n}'}$,where $X'$ and $X$ is not the same map unless $\boldsymbol{n}'$ totally equals $\boldsymbol{n}$.

So in my view, the expression $\sum x(\boldsymbol{n'})e^{j(R\boldsymbol{\omega})^{T}\boldsymbol{n}'}$ should equal to $X'(R\boldsymbol{\omega})$,not $X(R\boldsymbol{\omega})$.

Hopefully you could explain your proof in a more detailed way and help me get rid of my confusions, thank you!

  • $\begingroup$ Welcome to Signal Processing SE. Your post does not attempt to answer the original question. Please refrain from posting comments or other questions as answers as this is a Q&A site and not a forum. Chat between members is not supported in the main site but there is a dedicated section for it (the "chat"). I understand that you don't have enough reputation to post comments on other people's posts but this is for some good reason and if you remain active it will come quite fast. Until then, please stick to posting questions and answers. $\endgroup$
    – ZaellixA
    Aug 23 at 13:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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