how to convert the seismic wave data in Excel to fourier spectra
5 次查看(过去 30 天)
显示 更早的评论
I want to convert the seismic wave data in the attached Excel file to the frequency [Hz] on the horizontal axis and the magnitude on the vertical axis by performing FFT in MATLAB. I'm sorry, but I'd appreciate your help.
0 个评论
回答(1 个)
William Rose
2022-8-11
编辑:William Rose
2022-8-15
data=xlsread('GYEONGJU(MKL).xlsx');
N=length(data);
t=data(:,1); %vector of times (s)
x=data(:,2); %vector of x-values
dt=(t(end)-t(1))/(N-1); %sampling interval (s)
f=(0:N-1)/(N*dt); %vector of frequencies (Hz)
X=fft(x); %compute FFT(x)
%% Plot results
plot(f,abs(X))
xlabel('Frequency(Hz)'); ylabel('|X(f)|');
grid on
Try the above. As you can see, the FFT is symmetric about the Nyquist frequency, which is always half the sampling frequency . (Actually, the FFT of a real signal is conjugate symmetric about the Nyquist frequency, but we will ignore the phase for now.) Therefore it is common to plot only up to the Nyquist frequency.
5 个评论
William Rose
2022-8-12
I did answer the quesiton you posted here, so you could accept it, and should acept it, if you agree that I aswered it. You can consider my answer to your other qustion separately. Thank you.
William Rose
2022-8-15
I deleted the file GYEONGJU(MKL).xlsx from my comment, as you requested.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Seismology 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!