Spatial Frequency Transform by doing FFT twice ?

Click For Summary

Discussion Overview

The discussion revolves around the use of Fast Fourier Transform (FFT) to analyze sound localization using an array of sensors, specifically focusing on the process of transforming time-domain signals into the spatial domain through two FFTs. Participants seek clarification on the methodology and implications of this approach, as well as the role of zero-padding in the process.

Discussion Character

  • Exploratory
  • Technical explanation
  • Conceptual clarification
  • Debate/contested

Main Points Raised

  • One participant expresses confusion about how performing FFT twice leads to a spatial domain transformation, referencing specific materials and examples that lack clarity.
  • Another participant clarifies that the first FFT is applied to one axis of the data matrix, followed by a second FFT on the output, emphasizing that the order of transforms does not matter.
  • There is a discussion about the meaning of "frequency component," with one participant questioning if it refers to the complex number corresponding to a desired frequency.
  • Zero-padding is mentioned as a technique for computational efficiency, with some participants discussing its role in filling in the spectrum for clearer visibility of spectral lines.

Areas of Agreement / Disagreement

Participants generally agree on the technical aspects of applying FFTs in two dimensions and the purpose of zero-padding for computational efficiency. However, there remains some uncertainty regarding the interpretation of specific terms and the overall understanding of the spatial frequency transformation process.

Contextual Notes

Participants note that the discussion involves both time and spatial domains, highlighting the importance of understanding the dimensionality of the data being analyzed. There are unresolved questions about the implications of zero-padding beyond computational efficiency.

Who May Find This Useful

This discussion may be useful for individuals interested in acoustics, signal processing, and the application of Fourier transforms in analyzing multidimensional data.

exidez
Messages
41
Reaction score
0
Spatial Frequency Transform by doing FFT twice ??

This is for my own knowledge in relations to acoustics. I am trying to determine the location of sound using an array of sensors. Very similar to what they are doing in the webpage given.

Im looking at the material at http://cnx.org/content/m12557/latest/?collection=col10255/latest and I am having a hard time understanding how they got to spatial domain by just doing FFT of the time domain signal, then obtaining the frequency they need and then doing an FFT again on that data. How does this work out ?? the "Mentally Visualizing the Spatial Frequency Transform" example doesn't make sense because there are no supporting facts to why it is like that. Can someone direct to some material that explains this easily?


The page here http://cnx.org/content/m12562/latest/?collection=col10255/latest says They look at frequency content of the received signals( First FFT) then obtain the frequency component from each received signal that corresponds to a desired frequency and concatenating them into an array.

What does it mean by "frequency component". Does it mean the complex number for that desired frequency ? This will mean you just one one value in the array!

It then says "We then zero pad that array to a length that is a power of two in order to make the Fast Fourier Transform (FFT) computationally efficient. Once we have assembled our zero padded array of components fo, we can perform the spatial DFT:"

So they did another FFT on the complex number which had been zero pad and this gives spatial domain ? I am completely lost

It must be right becuase i looked at a MATLAB script that does something similar:

ThisVolts = Volts(IStart:IEnd, :);

%Transform to the frequency domain and keep the first half
Temp1 = fft(ThisVolts);
ThisSpec = Temp1(1:NFreq, :);

%Now do a spatial Fourier transform to get wavenumber spectrum
Temp = fft(ThisSpec.');
Temp = [Temp(NEl/2+2:end, :); Temp(1:NEl/2+1, :)]; %Move to get zero wavenumber in the right place

I am so confused. Any help please?
 
Physics news on Phys.org


You are confusing time and spatial domains. Your links describe the 2D spatial domain only. The first transform is applied to one axis (say the x, across columns of the data matrix), then a second to the other axis (y, across rows of the data matrix that is output from the first transform).

<br /> S(k_x,k_y) = \mathfrak{F}_y \{ \mathfrak{F}_x \{s(x,y) \}\}<br />
The order of transforms doesn't matter, however.

The spatial frequency is usually written k_x, which is also called wavenumber. It is an angular frequency, that is, 2π/l where l is the period (length) of the wave in question, with units of radians/meter. (It's analogous to angular frequency of a time-domain signal ω=2π/p where p is period in seconds and frequency units are radians/second).

Zero-padding is a different matter. Suggest you do some reading on FFT's to come up to speed on that, come back if you have questions.
 


ok, that makes a lot more sense. I guess I was fixed on the idea that it was one dimensional that I missed all the references to 2D.

zero padding is just for computer efficiency is that correct? or is it more to it than that?
 


Yes, zero padding (in this context) is only for computational efficiency.
 


Zero padding also fills in the spectrum, which can be sparse if the data matrix has few rows or columns. This allows you to more clearly see the shape of the spectral lines.
 

Similar threads

  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 28 ·
Replies
28
Views
3K
  • · Replies 3 ·
Replies
3
Views
5K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 13 ·
Replies
13
Views
18K
  • · Replies 8 ·
Replies
8
Views
3K
  • · Replies 3 ·
Replies
3
Views
7K
Replies
1
Views
3K
Replies
8
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K