This is a static copy of a profile reportHome
noiseRemove (1 call, 0.142 sec)
Generated 05-Aug-2011 13:00:39 using cpu time.
function in file /home/LeechJ/cbass_analysis/reduc/noiseRemove.m
Copy to new window for comparing multiple runs
Parents (calling functions)
Lines where the most time was spent
Line Number | Code | Calls | Total Time | % Time | Time Plot |
66 | noiseOffMedian = ... | 24 | 0.055 s | 38.5% |  |
44 | noiseOnMedian = median( ... | 24 | 0.044 s | 30.8% |  |
73 | d.antenna0.receiver.data(dataS... | 24 | 0.022 s | 15.4% |  |
25 | dataStateEdges = cat(1,0,find(... | 1 | 0.011 s | 7.7% |  |
24 | dataStateDiff = diff(noiseOn); | 1 | 0.011 s | 7.7% |  |
All other lines | | | 0 s | 0% |  |
Totals | | | 0.142 s | 100% | |
Children (called functions)
Function Name | Function Type | Calls | Total Time | % Time | Time Plot |
median | function | 48 | 0.055 s | 38.5% |  |
repmat | function | 48 | 0 s | 0% |  |
Self time (built-ins, overhead, etc.) | | | 0.087 s | 61.5% |  |
Totals | | | 0.142 s | 100% | |
Code Analyzer results
No Code Analyzer messages.Coverage results
[ Show coverage for parent directory ]
Total lines in function | 90 |
Non-code lines (comments, blank lines) | 46 |
Code lines (lines that can run) | 44 |
Code lines that did run | 30 |
Code lines that did not run | 14 |
Coverage (did run/can run) | 68.18 % |
Function listing
time calls line
1 function d = noiseRemove(d)
2
3 %%%%%%%%%%%%%%%%%%%%%%%
4 % Correct the noise events to match the rest of the times series.
5 %%%%%%%%%%%%%%%%%%%%%%%
6
7 % How many samples on either side of noise event to be used for noise event
8 % subtraction.
1 9 noiseOff = 200;
10
11
1 12 dLength = length(d.antenna0.receiver.utc);
13
14
15 % Identify the noise-on times.
1 16 if isfield(d,'index')
1 17 noiseOn = d.index.noise.fast;
18 else
19 noiseOn = bitand(d.antenna0.receiver.flags,4) > 0;
20 end
21
22
23 % Begin by identifying the steps:
0.01 1 24 dataStateDiff = diff(noiseOn);
0.01 1 25 dataStateEdges = cat(1,0,find(dataStateDiff ~= 0),dLength);
1 26 nStates = length(dataStateEdges) - 1;
27
28
29 % Now we loop over the states.
1 30 for k=1:nStates
31 % check if this is a noise_on state.
49 32 if noiseOn(dataStateEdges(k)+1) == 0
25 33 continue;
34 end
35
36 % If the noise diode is on for the entire data vector, then leave the
37 % loop.
24 38 if (dataStateEdges(k) == 0) && (dataStateEdges(k+1) == dLength)
39 continue;
40 end
41
42
43 % Calculate the noise_on median:
0.04 24 44 noiseOnMedian = median( ...
45 d.antenna0.receiver.data(dataStateEdges(k)+1:dataStateEdges(k+1),:));
46
47 % Calculate the noise_off median:
24 48 if dataStateEdges(k) < noiseOff
49 noiseOffA = dataStateEdges(k+1) + 1;
50 noiseOffB = dataStateEdges(k+1) + noiseOff;
51 noiseOffC = dataStateEdges(k+1) + noiseOff + 1;
52 noiseOffD = dataStateEdges(k+1) + 2 * noiseOff;
24 53 elseif dLength - dataStateEdges(k+1) <= noiseOff
54 noiseOffA = dataStateEdges(k) - 2* noiseOff + 1;
55 noiseOffB = dataStateEdges(k) - noiseOff;
56 noiseOffC = dataStateEdges(k) - noiseOff + 1;
57 noiseOffD = dataStateEdges(k);
24 58 else
24 59 noiseOffA = dataStateEdges(k) - noiseOff + 1;
24 60 noiseOffB = dataStateEdges(k);
24 61 noiseOffC = dataStateEdges(k+1) + 1;
24 62 noiseOffD = dataStateEdges(k+1) + noiseOff;
24 63 end
64
65
0.05 24 66 noiseOffMedian = ...
67 median(cat(1, ...
68 d.antenna0.receiver.data(noiseOffA:noiseOffB,:), ...
69 d.antenna0.receiver.data(noiseOffC:noiseOffD,:)));
70
71
72 % Subtract off the difference of the ON and OFF medians.
0.02 24 73 d.antenna0.receiver.data(dataStateEdges(k)+1:dataStateEdges(k+1),:) = ...
74 d.antenna0.receiver.data(dataStateEdges(k)+1:dataStateEdges(k+1),:) - ...
75 repmat(noiseOnMedian - noiseOffMedian, ...
76 dataStateEdges(k+1) - dataStateEdges(k),1);
77
78
79 % Also blank the transition regions to the local median.
24 80 if dataStateEdges(k) > 0
24 81 d.antenna0.receiver.data(dataStateEdges(k)+1:dataStateEdges(k)+2,:) = ...
82 repmat(noiseOffMedian,2,1);
24 83 end
24 84 if dataStateEdges(k+1) < dLength
24 85 d.antenna0.receiver.data(dataStateEdges(k+1)+1,:) = noiseOffMedian;
24 86 end
87
24 88 end
89
1 90 end