1function [ value ] = filterForDispaly( value ) %#codegen
 2
 3   
 4  if length(value)>50000
 5    value = value(1:50000);
 6  end
 7  
 8   
 9   
10 
11   
12   fs = 30;
13   hrmin = 30/60;
14   
15
16   p1rows = 5;
17
18
19
20    %p = dcblock(hrmin/2,30);              % get filter coefficient
21    %b = [1 -1];                         % set up differentiator
22    %a = [1 -p];                         % set up integrator
23    % ac = filter(b,a, value(1:cnt,1) );    
24   
25    
26    fmin = 0.6;
27    fmax = 3;
28    %onpassfir = fir1(60,[fmin./fs.*2 fmax./fs.*2]);
29    %onpassfir = fir1(10,fmax./fs.*2,'low');
30    % ac = filter(onpassfir,1,ac);
31  
32    filt = pulse_bandpass_const();
33    
34    ac = filter(filt,1,value);
35  
36   
37
38    %remove more DC
39%      p = dcblock(hrmin,30);              % get filter coefficient
40%     b = [1 -1];                         % set up differentiator
41%     a = [1 -p];                         % set up integrator
42%     acenv = filter(b,a, value ); 
43
44    acenv = ac;
45   
46    
47   envFilterWidth = 40;
48  
49   coder.varsize('envF',[1,41],[false,false])
50   coder.varsize('envT',[10000,1],[true,false])
51   
52   envF = fir1(envFilterWidth,0.4/(fs/2),'low');
53   
54   
55   
56   %do a top enveloper
57   envT = max(acenv,-acenv);
58
59   %envT = filtfilt(envF,1,envT.*2);
60   
61   %fake filtfilt
62   envT = filter(envF,1, envT);
63   envT = filter(envF,1, flipud(envT));
64   envT = flipud(envT);
65    
66   acnorm_div = envT.*2;
67   
68   value = ac./acnorm_div;
69   value = value(envFilterWidth:end-envFilterWidth);
70 
71end