0
$\begingroup$

The DFT is given by

$X_{\mathcal{F}}(k) = \sum_{n=0}^{N-1} x_n e^{-j 2 \pi k n / N}$

Knowing that complex numbers can also be represented using a polar form $A \angle\theta$, I was looking for a version of FFT that would output exactly that.

So I found this Polar Fourier Transform.

I am not sure yet if it is what I am looking for. But it is related, at least to the same extent FFT is related.


In this paper, The Polar Fourier Transform is given by,

enter image description here


However when writing the frequency $\phi$ in polar coordinates, a term is added, the amplitude $r$, which was not originally there. Right away I started wondering if that wouldn't be exactly the same as the Z-Transform.

The Z-Transform is presented in the following way.

$X(z)=\mathcal{Z}\{x[n]\}=\sum_{n=-\infty }^{\infty }x[n]z^{-n}$

where

${z=Ae^{j\phi }=A\cdot (\cos {\phi }+j\sin {\phi })}$


Questions:

  1. What are the main differences and similarities of between Polar Fourier Transform.
  2. Is there away to optimally have a variant of the FFT and iFFT transform that represents the frequency components on their polar form, instead of adding the extra computation for computing the module and angle of these values? (At first I imagined that was exactly what the Polar Fourier Transform as doing, but now I don't think so anymore.)

Cheers,

$\endgroup$
2
$\begingroup$

Some comments which might answer your questions:

"However when writing the frequency ϕ in polar coordinates, a term is added, the amplitude r, which was not originally there."

I think you have a missunderstanding what $\phi$ is. For a two-dimensional function (i.e., function on the plane) the frequencies are also two-dimensional so $\phi \in \mathbb{R}^2$. There are several ways to encode a vector in the plane. One example is the standard way by using two axis (cartesian coordinate system) $\phi_{\text{cart}} = (\phi_1, \phi_2)$. Another one, used in the paper, is to use an angle and the distance to zero (polar coordinate system) $\phi_{\text{polar}} = (r,\theta)$. Both systems can be mapped one-to-one to each other. The direction $\phi_{\text{polar}} \to \phi_{\text{cart}}$ is already in your post, the direction $ \phi_{\text{cart}} \to \phi_{\text{polar}}$ is $$ r = \sqrt{\phi_1^2 + \phi_2^2} \\ \theta = \begin{cases} \arccos \frac{x}{r} & \text{if } y \geq 0\\ - \arccos \frac{x}{r} & \text{if } y < 0\end{cases}. $$ So the term $r$ is not added, it was always there.

I hope this also answers your second question: the polar form is only arepresentation (= way of writing your vector) of the complex numbers, so depending how you represent the complex numbers in your computer, the output is either in cartesian or polar coordinates (you can use the same FFT and iFFT algorithm in both cases).

"What are the main differences and similarities of between Polar Fourier Transform."

The main differences:

  • The PolarFT is an integral transform, acting on continuous functions, while the z-transform is sum transform, acting on discrete functions
  • The PolarFT is defined for two-dimensional functions, while your z-transform is defined for one-dimensional functions

The one-dimensional z-transform reduces to the discrete time Fourier transform for $|z| = 1$ though.

$\endgroup$
4
  • $\begingroup$ Thank you for your time on this questions. In fact I am very unsure about the meaning of $\phi$. The first thing that came to my mind was the polar representation you mentioned $\phi_{polar} = (r, \theta)$. Like this example in python: X = np.fft.fft(x); r = np.abs(X); phi = np.angle(X). BUT ... $\endgroup$ Jul 9 at 6:34
  • $\begingroup$ [cont.] But things started to get confusing for me when I noticed the use of $\phi$ as in $\hat{f}(\phi) = \int f(x) \exp (-i \phi 'x) dx$. IF $\phi$ were to simply refer to the polar representation of the complex value given by the Fourier components, say $X_{\mathcal{F}}(k)$ then I understand that $\phi$ should not be used as a parameter for the transform. $\endgroup$ Jul 9 at 6:35
  • $\begingroup$ So the term 𝑟 is not added, it was always there. I understand that this would be the case if the paper were referring to something like obtaining r and phi as represented in the python snippet. But as I mentioned, it doesn't seem to me (so far) that this is the case. $\endgroup$ Jul 9 at 6:41
  • $\begingroup$ " IF ϕ were to simply refer to the polar representation of the complex value given by the Fourier components, say XF(k) then I understand that ϕ should not be used as a parameter for the transform." Ehm it's not the the component but the frequency, which is in this case a complex value. So $\hat{f}(\phi) = X_{\mathcal{F}}(k)$, i.e., $\phi$ replaces the $k$ (and thus can be used as a parameter very well). $\endgroup$ Jul 12 at 8:09

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.