Clear Filters
Clear Filters

FFT of vibration data, Help me please.

1 view (last 30 days)
Dear friends
I have vibration data from the device, I need to convert it into Freq Domain (Magnitude vs Freq). I've tried several times and still stuck, I can't import that data into the formula/function. I've attached an excel file I got from the device. maybe you can download and see the excel files for complete information. Could you guys help me, what function/formula should I write? and how to find the max point in the plot?

Accepted Answer

Star Strider
Star Strider on 11 May 2022
Try this —
T1 = readtable('https://www.mathworks.com/matlabcentral/answers/uploaded_files/994895/fantest.xlsx%20-%20Sheet2.xlsx', 'VariableNamingRule','preserve')
T1 = 717×6 table
hours Current Voltage axis x axis y axis z _____ _______ _______ ______ ______ ______ 1 0.182 228.8 -0.14 -0.25 0.84 2 0.181 228.8 -0.1 -0.22 0.84 3 0.182 229 0.07 -0.06 0.86 4 0.182 228.9 0.04 -0.12 0.86 5 0.181 228.7 0.02 -0.08 0.85 6 0.182 228.9 0.15 -0.01 0.86 7 0.182 229.1 0.02 -0.1 0.85 8 0.181 228.8 0.16 0.04 0.86 9 0.181 228.9 0.02 -0.12 0.84 10 0.181 228.6 0.25 0.14 0.89 11 0.181 228.7 0.19 0.1 0.87 12 0.181 228.9 -0.17 -0.23 0.84 13 0.181 228.8 0.17 0.09 0.88 14 0.182 229.1 0.3 0.17 0.89 15 0.182 229.2 0.29 0.12 0.87 16 0.182 229.5 0.12 -0.01 0.86
VN = T1.Properties.VariableNames
VN = 1×6 cell array
{'hours'} {'Current'} {'Voltage'} {'axis x'} {'axis y'} {'axis z'}
L = size(T1,1);
% QQ1 = nnz(diff(T1{:,1}) ~= 1)
Ts = T1.hours(2) - T1.hours(1); % Sampling Interval
Fs = 1/Ts; % Sampling Frequency
Fn = Fs/2; % Nyquist Frequency
NFFT = 2^nextpow2(L); % For Efficiency
FT_T1 = fft(T1{:,2:end} - mean(T1{:,2:end}), NFFT)/L; % Fourier Transform (Mean Subtracted To Show Other Peaks More Clearly)
Fv = linspace(0, 1, NFFT/2+1)*Fn; % Frequency Vector
Iv = 1:numel(Fv); % Index Vector
figure
plot(Fv, abs(FT_T1(Iv,:))*2)
grid
xlabel('Frequency (hr^{-1})')
ylabel('Amplitude')
legend(VN{2:end}, 'Location','best')
NrSp = size(FT_T1,2);
NrSp = 5
figure
for k = 1:NrSp
subplot(NrSp,1,k)
plot(Fv, abs(FT_T1(Iv,k))*2)
grid
ylabel('Amplitude')
title(VN(k+1))
end
xlabel('Frequency (hr^{-1})')
.
  4 Comments

Sign in to comment.

More Answers (0)

Categories

Find more on Vibration Analysis in Help Center and File Exchange

Tags

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!