0,0 → 1,86 |
|
function y=VibTestAnalyze(file, colStart, colEnd, debug) |
|
% Read logfile |
log=csvread(file); |
fs=11111; % Sample freq |
|
|
for col=colStart:colEnd |
% Take one of the measurements |
inSignal=log(:,col)'; |
inSignal = inSignal - mean(inSignal); |
n=length(inSignal); |
|
if debug |
plot(inSignal); |
title('Input SIgnal'); |
pause |
end |
|
% Take FFT |
FFT = fft(inSignal); |
%spec = FFT.*conj(FFT)/n |
spec = 2*abs(FFT); |
|
f = fs/n*(0:n/2); % Freq |
|
if debug |
plot(f(1:int32(n/10)),spec(1:int32(n/10))); |
title('Spectrum'); |
xlabel('Hz'); |
pause |
end |
|
if debug |
plot(spec(1:int32(n/10))); |
title('Spectrum'); |
pause |
end |
|
% Split into components |
from = 6; |
to = 30; |
|
FFT_ = FFT; |
for k=from:n-from |
FFT_(k)=0; |
end |
lfSignal = ifft(FFT_, 'symmetric'); |
|
FFT_ = FFT; |
for k=1:from |
FFT_(k)=0; |
end |
for k=to:n-to |
FFT_(k)=0; |
end |
for k=n-from:n |
FFT_(k)=0; |
end |
outSignal = ifft(FFT_, 'symmetric'); |
outSignal = outSignal - mean(outSignal); |
|
%gr(1,:) = inSignal |
gr(1,:) = lfSignal; |
gr(2,:) = outSignal; |
% gr(4,:) = lfSignal+outSignal |
|
if debug |
plot((1:n), gr) |
legend('LF','Filtered') |
pause |
end |
|
ppIn = max(inSignal)-min(inSignal); |
ppFiltered = max(outSignal)-min(outSignal); |
rmsFiltered = sqrt(sum(outSignal.*conj(outSignal))/size(outSignal,1)); |
|
|
y(col,1)=col; |
y(col,2)=ppIn; |
y(col,3)=ppFiltered; |
y(col,4)=rmsFiltered; |
end |
|
|