TEAP (Toolbox for Emotion Analysis using Physiological Signals) doc
Signal__get_window_frames.m
Go to the documentation of this file.
1 %This file is part of TEAP.
2 %
3 %TEAP is free software: you can redistribute it and/or modify
4 %it under the terms of the GNU General Public License as published by
5 %the Free Software Foundation, either version 3 of the License, or
6 %(at your option) any later version.
7 %
8 %TEAP is distributed in the hope that it will be useful,
9 %but WITHOUT ANY WARRANTY; without even the implied warranty of
10 %MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 %GNU General Public License for more details.
12 %
13 %You should have received a copy of the GNU General Public License
14 %along with TEAP. If not, see <http://www.gnu.org/licenses/>.
15 %
17 %> @brief Takes a portion of a signal between startT and endT frames. NB: that the
18 %> child signal will memorize the offset to its father (the first-one, non recursive)
19 %> start: useful if you want to plot the signal with logical times.
20 %> If you want to specify seconds instead of frames, you should use @c Signal__get_window()
21 %>
22 %> @attention SEE ALSO:
25 %
26 %> @param Signal: the signal you want to take a portion of.
27 %> @param startT: the start time (frames)
28 %> @param endT: the end time (frames)
29 %
30 %> @retval Child: the cut signal
31 %
32 %> @author Copyright Frank Villaro-Dixon, 2014
33 function Child = Signal__get_window_frames(Signal, startT, endT)
34 
35 if(nargin ~= 3)
36  error('Usage: ChildSig = Signal__get_window_frames(Signal, startT, endT)');
37 end
38 
39 Signal__assert_mine(Signal);
40 
41 Child = Signal; %Clone them. I wish they were dinosaurs. :p
42 
43 %Take the portion of the signal we want
44 raw = Signal__get_raw(Signal);
45 if(endT > length(raw))
46  endT = length(raw);
47 end
48 Child = Signal__set_raw(Child, raw(startT: endT));
49 
50 %Sets the new offset of the signal
51 if(Signal__get_offset(Signal) > 0)
52  warning(['The signal you want to take a portion was already cut. ' ...
53  'Are you sure you want that ?. Will proceed anyway']);
54  offset = Signal__get_offset(Signal);
55 else
56  offset = 0;
57 end
58 Child = Signal__set_offset(Child, startT + offset);
59 
60 %Keep the signal preprocessing features (like 'low-passed', etc.)
61 if(isfield(Signal, 'preprocessing'))
62  Child.preprocessing = Signal.preprocessing;
63 end
64 
Signal__set_offset
function Signal__set_offset(in Signal, in offset)
Signal__set_raw
function Signal__set_raw(in Signal, in raw)
Signal__get_window
function Signal__get_window(in Signal, in startT, in endT)
Signal__get_raw
function Signal__get_raw(in Signal)
Signal__assert_mine
function Signal__assert_mine(in Signal)
Signal__get_offset
function Signal__get_offset(in Signal)
Signal__get_window_frames
function Signal__get_window_frames(in Signal, in startT, in endT)