フィルターのクリア

spatial FFT of a series of wave signals

13 ビュー (過去 30 日間)
MS
MS 2017 年 5 月 26 日
コメント済み: Lawrence Yule 2022 年 4 月 23 日
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 件のコメント
MS
MS 2017 年 5 月 29 日
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 2022 年 4 月 23 日
Did you ever get any further with this?

サインインしてコメントする。

回答 (1 件)

Rick Rosson
Rick Rosson 2017 年 5 月 30 日
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;

カテゴリ

Help Center および File ExchangeDiscrete Fourier and Cosine Transforms についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by