Vibration Analysis by using Fast Fourier Transform

65 ビュー (過去 30 日間)
Enez Furkan Cihan
Enez Furkan Cihan 2017 年 7 月 28 日
編集済み: Enez Furkan Cihan 2017 年 8 月 5 日
Hi! I have approx 65k data taken by accelerometer within 10 minutes and i need to transform it in frequency domain by FFT and also had Ax,Ay,Az,Gx,Gy,Gz columns. that's confusing can I implement fft to every single column and add them over each other while plotting with "hold on"? I mean plotting the transform for column of Ax then hold on and plotting and implementing same code for column of Ay then hold on and plotting etc. Can you help me about how I should start? Thanks in advance

採用された回答

dpb
dpb 2017 年 7 月 29 日
>> help fft
fft Discrete Fourier transform.
fft(X) is the discrete Fourier transform (DFT) of vector X. For
matrices, the fft operation is applied to each column. ...
You don't need to do anything but put all the components into a single array
A=[Ax,Ay,Az,Gx,Gy,Gz]; % presuming they're all column vectors
F=fft(A); % fft each by column
See
doc fft % for example of how to compute the PSD and scale frequency, magnitude.
  9 件のコメント
dpb
dpb 2017 年 8 月 5 日
Attach an m-file with the data for the particular sensor you're having so much trouble with...I'll try to find time to take a look at it and see what gives...
Enez Furkan Cihan
Enez Furkan Cihan 2017 年 8 月 5 日
編集済み: Enez Furkan Cihan 2017 年 8 月 5 日
Thank you so much for everything! I have succeeded and got figure as dB and I have already wanted it. In excel file, among approx 65k data, there were some NaNs and slipped lines. Actually, never thought I would examine 65k data but I did. That's why it didn't work. As a result, I got that whatever it's long or short data, always control it. Special thanks to you for your incredible attention.

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

その他の回答 (2 件)

Bjorn Gustavsson
Bjorn Gustavsson 2017 年 7 月 28 日
Yes, go ahead and fft individual columns, for plotting it seems most likely you would plot the absolute of the fft, or possibly the log of the absolute:
ftAx = fft(Ax);
plot(log10(abs(ftAx)),'b')
hold on
ftAy = fft(Ay);
plot(log10(Ax),'r')
You should also make sure that you have a regular sampling intervals.
Finally you might be interested in the fftshift function and mathworks documentation about what frequency-scale you get.
HTH

Robert Hughes
Robert Hughes 2017 年 8 月 5 日
I have seen data like yours. Ax Ay Az are accelerations in 3 orthogonal axes. Gx Gy Gz are gyro outputs. They must be handled differently to be useful. There may be a "transformation" needed to get data to represent actual physical motion. The data is most likely is in "counts" and would need to be converted into useful engineering units. You can do an fft of each column and that's what you have--6 ffts in counts.
  1 件のコメント
dpb
dpb 2017 年 8 月 5 日
While true perhaps he's operating on A/D counts, that really only makes any difference in scaling to engineering/absolute units; the FFT would be same to a scale factor so that isn't the root problem.

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

カテゴリ

Help Center および File ExchangeVibration Analysis についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by