spatial FFT of a series of wave signals

27 views (last 30 days)
MS
MS on 26 May 2017
Commented: Lawrence Yule on 23 Apr 2022
Hello, I would like to ask you, if you can help me with the 2D FFT of a series of time signals, which relate to the propagation of symmetric and antisymmetric mode of Lamb wave. In COMSOL multiphysics, I´ve made a simulation of propagation of particular modes of Lamb wave. In the model, there were placed thirty points on which the displacement vs time has been recorded. Now, I would like to make a spatial 2D FFT in order to get the frequency-wavenumber graph. From COMSOL multiphysics, I´ve exported a matrix, which contains all thirty time signals from these points (arranged in columns). Then, I´ve imported the data into matlab and tried to apply the 2D FFT according to help (unsuccessfully). Is it please possible to give me an advice from where to start? Thank you
  2 Comments
MS
MS on 29 May 2017
Hello to everybody, So far, I´ve tried to modify a code, which I´ve found here:
Nx = 128; % Number of samples collected along first dimension
Nt = 1024; % Number of samples collected along second dimension
table = dlmread('table.txt');
table = table(:,2:129);
dx = 0.009; % Distance increment (i.e., Spacing between each column)
dt = 1/(150e3*40); % Time increment (i.e., Spacing between each row)
x = 0 : dx : (Nx-1)*dx; % distance
t = 0 : dt : (Nt-1)*dt; % time
Nyq_k = 1/dx; % Nyquist of data in first dimension
Nyq_f = 1/dt; % Nyquist of data in second dimension
dk = 1/(Nx*dx); % Wavenumber increment
df = 1/(Nt*dt); % Frequency increment
k = 0:dk:Nyq_k-dk; % wavenumber
f = 0:df:Nyq_f-df; % frequency
figure;
fft2result = fft2(table)*dx*dt;
imagesc(f,k,abs(fft2result));
colorbar;
Where "table" is a matrix of following dimension 1818x128. Each column represents the time record of displacement perpendicular to the plate. There are 128 points altogether with spacing of 9 milimeters. The plate thickness is equal to 8 milimeters and the frequency of the excitation signal is 150 kHz. After executing the above mentioned code, I will obtain following representation:
I cannot explain, why there are two significant areas instead of one and also, why the frequency is so high. I am also attaching the file with the signals.
Lawrence Yule
Lawrence Yule on 23 Apr 2022
Did you ever get any further with this?

Sign in to comment.

Answers (1)

Rick Rosson
Rick Rosson on 30 May 2017
k = -Nyq_k/2:dk:Nyq_k/2-dk; % wavenumber
f = -Nyq_f/2:df:Nyq_f/2-df; % frequency
fft2result = fftshift(fft2(table))*dx*dt;

Community Treasure Hunt

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

Start Hunting!