Subversion Repositories Projects

Rev

Rev 588 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
588 fredericg 1
 
2
function y=VibTestAnalyze(file, colStart, colEnd, debug)
3
 
4
% Read logfile
5
log=csvread(file);
6
fs=11111; % Sample freq
7
 
8
 
9
for col=colStart:colEnd
10
    % Take one of the measurements
11
    inSignal=log(:,col)';
12
    inSignal = inSignal - mean(inSignal);
13
    n=length(inSignal);
14
 
15
    if debug
16
        plot(inSignal);
17
        title('Input SIgnal');
18
        pause
19
    end
20
 
21
    % Take FFT
22
    FFT = fft(inSignal);
23
    %spec = FFT.*conj(FFT)/n
24
    spec = 2*abs(FFT);
25
 
26
    f = fs/n*(0:n/2); % Freq
27
 
28
    if debug
29
        plot(f(1:int32(n/10)),spec(1:int32(n/10)));
30
        title('Spectrum');
31
        xlabel('Hz');
32
        pause
33
    end
34
 
35
    if debug
36
        plot(spec(1:int32(n/10)));
37
        title('Spectrum');
38
        pause
39
    end
40
 
41
    % Split into components
42
    from = 6;
43
    to = 30;
44
 
45
    FFT_ = FFT;
46
    for k=from:n-from
47
        FFT_(k)=0;
48
    end
49
    lfSignal = ifft(FFT_, 'symmetric');
50
 
51
    FFT_ = FFT;
52
    for k=1:from
53
        FFT_(k)=0;
54
    end
55
    for k=to:n-to
56
        FFT_(k)=0;
57
    end
58
    for k=n-from:n
59
        FFT_(k)=0;
60
    end
61
    outSignal = ifft(FFT_, 'symmetric');
62
    outSignal = outSignal - mean(outSignal);
63
 
64
    %gr(1,:) = inSignal
65
    gr(1,:) = lfSignal;
66
    gr(2,:) = outSignal;
67
    % gr(4,:) = lfSignal+outSignal
68
 
69
    if debug
70
        plot((1:n), gr)
71
        legend('LF','Filtered')
72
        pause
73
    end
74
 
75
    ppIn = max(inSignal)-min(inSignal);
76
    ppFiltered = max(outSignal)-min(outSignal);
77
    rmsFiltered = sqrt(sum(outSignal.*conj(outSignal))/size(outSignal,1));
78
 
79
 
80
    y(col,1)=col;
81
    y(col,2)=ppIn;
82
    y(col,3)=ppFiltered;
83
    y(col,4)=rmsFiltered;
84
end
85
 
86