tomwalters@0: % method of class @frame tomwalters@0: % tomwalters@0: % INPUT VALUES: tomwalters@0: % tomwalters@0: % RETURN VALUE: tomwalters@0: % tomwalters@0: % tomwalters@0: % (c) 2003, University of Cambridge, Medical Research Council tomwalters@0: % Stefan Bleeck (stefan@bleeck.de) tomwalters@0: % http://www.mrc-cbu.cam.ac.uk/cnbh/aimmanual tomwalters@0: % $Date: 2003/03/20 18:24:22 $ tomwalters@0: % $Revision: 1.4 $ tomwalters@0: tomwalters@0: function fr=frame(val,framestruct,cf) tomwalters@0: % Construktor der Frameklasse tomwalters@0: tomwalters@0: % values that are used, when called from SBreadAIFF tomwalters@0: % fr.structure.totalframetime=frameLength/sampleRate; tomwalters@0: % fr.structure.numWindowFrames=numWindowFrames; tomwalters@0: % fr.structure.scale=scale; tomwalters@0: % fr.structure.wordSize=wordSize; tomwalters@0: % fr.structure.soundPosition=soundPosition; tomwalters@0: % fr.structure.littleEndian=littleEndian; tomwalters@0: % fr.structure.frameLength=frameLength; tomwalters@0: % fr.structure.numChannels=numChannels; tomwalters@0: % fr.structure.numSampleFrames=numSampleFrames; tomwalters@0: % fr.structure.sampleSize=sampleSize; tomwalters@0: % fr.structure.sampleRate=sampleRate; tomwalters@0: % fr.structure.interleaveLevel=interleaveLevel; tomwalters@0: % fr.structure.numWindowFrames=numWindowFrames; tomwalters@0: % fr.structure.staticTimeFlag=staticTimeFlag; tomwalters@0: % fr.structure.outputTimeOffset=outputTimeOffset; tomwalters@0: % fr.structure.absoluteNormalise=absoluteNormalise; tomwalters@0: tomwalters@0: % valus that are used when more then one frame make a movie tomwalters@0: % fr.movie.scale_summe= the higest value of a sum tomwalters@0: % fr.movie.current_frame_number= the current number of this frame tomwalters@0: % fr.movie.current_frame_start_time; the starting time of this frame tomwalters@0: % fr.movie.nr_frames_total; tomwalters@0: % fr.movie.all_min_value; tomwalters@0: % fr.movie.all_max_value; tomwalters@0: tomwalters@0: if nargin==0 % this must be there see help http://www.mathworks.com/access/helpdesk/help/techdoc/matlab_prog/ch14_o11.shtml#27700 tomwalters@0: fr.structure=[]; tomwalters@0: fr.movie.nr_frames_total=1; tomwalters@0: fr.movie.all_min_value=0; tomwalters@0: fr.movie.all_max_value=1; % important for the overall scaling of all frames tomwalters@0: fr.movie.scale_summe=1; tomwalters@0: fr.movie.scale_frequency=1; tomwalters@0: fr.movie.current_frame_number=1; tomwalters@0: fr.movie.current_frame_start_time=0; tomwalters@0: fr.start_time=0; tomwalters@0: fr.centerfrequencies=(1:10)*1000; tomwalters@0: fr.text=''; tomwalters@0: fr.x_axis_label='time (ms)'; tomwalters@0: fr.samplerate=1000; tomwalters@0: fr.values=zeros(10,1000); tomwalters@0: fr.name='empty frame'; tomwalters@0: tomwalters@0: elseif nargin ==1 tomwalters@0: if isobject(val) % KopieKontruktor tomwalters@0: fr.structure=val.structure; tomwalters@0: fr.movie=val.movie; tomwalters@0: fr.start_time=val.start_time; tomwalters@0: fr.centerfrequencies=val.centerfrequencies; tomwalters@0: fr.text=val.text; tomwalters@0: fr.x_axis_label='time (ms)'; tomwalters@0: fr.samplerate=val.samplerate; tomwalters@0: fr.values=val.values; tomwalters@0: fr.name=val.name; tomwalters@0: elseif isstruct(val) % Aufruf von load tomwalters@0: fr.structure=val.structure; tomwalters@0: fr.movie=val.movie; tomwalters@0: fr.start_time=val.start_time; tomwalters@0: fr.centerfrequencies=val.centerfrequencies; tomwalters@0: fr.text=val.text; tomwalters@0: fr.x_axis_label='time (ms)'; tomwalters@0: fr.samplerate=val.samplerate; tomwalters@0: fr.values=val.values; tomwalters@0: fr.name=val.name; tomwalters@0: else% Aufruf mit einem Array: tomwalters@0: fr.structure=[]; tomwalters@0: fr.movie.nr_frames_total=1; tomwalters@0: fr.movie.all_min_value=0; tomwalters@0: fr.movie.all_max_value=1; % important for the overall scaling of all frames tomwalters@0: fr.movie.scale_summe=1; tomwalters@0: fr.movie.scale_frequency=1; tomwalters@0: fr.movie.current_frame_number=1; tomwalters@0: fr.movie.current_frame_start_time=0; tomwalters@0: tomwalters@0: fr.start_time=0; tomwalters@0: fr.centerfrequencies=(1:size(val,1))*1000; tomwalters@0: fr.text=''; tomwalters@0: fr.x_axis_label='time (ms)'; tomwalters@0: fr.samplerate=16000; tomwalters@0: %if size(val,1) > size(val,2) tomwalters@0: % val=val'; tomwalters@0: %end tomwalters@0: fr.values=val; tomwalters@0: fr.name='empty frame'; tomwalters@0: end tomwalters@0: else tomwalters@0: % this values come from the constructof of an SBreadAIFF tomwalters@0: fr.structure=framestruct; tomwalters@0: tomwalters@0: % values that describe the frame in comparison to all frames tomwalters@0: fr.movie.nr_frames_total=1; tomwalters@0: fr.movie.all_min_value=0; tomwalters@0: fr.movie.all_max_value=1; % important for the overall scaling of all frames tomwalters@0: fr.movie.scale_summe=1; tomwalters@0: fr.movie.scale_frequency=1; tomwalters@0: fr.movie.current_frame_number=1; tomwalters@0: fr.movie.current_frame_start_time=0; tomwalters@0: tomwalters@0: fr.start_time=framestruct.outputTimeOffset; tomwalters@0: if nargin < 3 tomwalters@0: fr.centerfrequencies=1:size(val,1); tomwalters@0: else tomwalters@0: fr.centerfrequencies=cf; tomwalters@0: end tomwalters@0: % this text is plotted together with the frame tomwalters@0: fr.text=''; tomwalters@0: fr.x_axis_label='time (ms)'; tomwalters@0: fr.samplerate=framestruct.sampleRate; % in pixel/sec tomwalters@0: if size(val,1) > size(val,2) tomwalters@0: val=val'; tomwalters@0: end tomwalters@0: fr.values=val; tomwalters@0: fr.name='generic frame'; tomwalters@0: end % single parameter konstructor tomwalters@0: tomwalters@0: fr=class(fr,'frame');