How to plot wavelength and wavenumber FFT from intensity data

8 vues (au cours des 30 derniers jours)
Arwi Rinaldo
Arwi Rinaldo le 14 Oct 2020
Halo.
I have a problem with FFT data, i cant fine correct wavenumber domain and wavelength domain for FFT from my data.
my data base on 3648 pixel array with 8 nm between each pixel.
i want to fine wavelength domain and filter the noise of intensity.

Réponses (1)

David Goodmanson
David Goodmanson le 16 Oct 2020
Hi Arwi,
n = 3648, dpix = 8e-9; % 8nm seems small for a pixel width
The x array has spacing delx = dpix and is
x = delx*(0:n-1)
The conjugate variable to x is 1/lambda which I shall denote by ilam, since there does not seem to be a generally accepted symbol for this. For an n-point fft, the golden rule for array spacings [delx for array x and dilam for array ilam] is
delx*dilam = 1/n
which results in the array for inverse wavelength
dilam = 1/(delx*n); ilam = (1/(delx*n))*(0:n-1) % m^-1
Wave number is 2pi/lamda, so the k array is
k = (2*pi/(delx*n))*(0:n-1) % m^-1
In terms of pixels, in that case dpix = delx = 1 and
x = 0:n-1
ilam = (1/n)*(0:n-1) % pixel^-1
k = (2*pi/n)*(0:n-1) % pixel^-1
This makes sense since the first nonzero value of k (second point n the array) is k1 = 2*pi/n and
exp(i*k1*x) = exp( (2*pi*i/n)*(0:n-1) )
is one complete oscillation across the array. That's the lowest allowable nonzero periodic frquency.
  2 commentaires
Arwi Rinaldo
Arwi Rinaldo le 5 Nov 2020
and how about the fft?
David Goodmanson
David Goodmanson le 28 Nov 2020
The data in the frequency domain is fft(your data)/3648, and the k or ilam array that goes with it is shown above.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Fourier Analysis and Filtering dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by