Mercurial > hg > aimmat
view aim-mat/tools/@signal/signal.m @ 3:20ada0af3d7d
various bugfixes and changed copywrite message
author | Stefan Bleeck <bleeck@gmail.com> |
---|---|
date | Tue, 16 Aug 2011 14:36:30 +0100 |
parents | 74dedb26614d |
children |
line wrap: on
line source
% constructor of class @signal % parent class: none % function sig=signal(length,samplerate,name,unit_x,unit_y,start_time) % INPUT VALUES: % length: length of signal in seconds [default 1] % samplerate: samplerate in Hz (points per seconds) [default: 1000] % name: display name of the signal (string) % unit_x: display unit on x-axis (string) % unit_y: display unit on y-axis (string) % start_time: virtual start time of the signal (default 0) % % RETURN VALUE: % @signal-object % % Valid constructor-calls: % 1: no or any number of arguments above % 2: signal(@other_signal_object) : Copy-Constructor % 3: signal(values): copies the values in the @signal % % a signal consist of n points according to its length*sr % the time "0" is not associated with a bin. the first bin is time sr, the % second 2*sr, etc the nth bin is the signal-duration % % This external file is included as part of the 'aim-mat' distribution package % (c) 2011, University of Southampton % Maintained by Stefan Bleeck (bleeck@gmail.com) % download of current version is on the soundsoftware site: % http://code.soundsoftware.ac.uk/projects/aimmat % documentation and everything is on http://www.acousticscale.org function sig=signal(laenge,samplerate,name,unit_x,unit_y,start_time) if nargin < 6 start_time=0; end if nargin < 5 unit_y='amplitude'; end if nargin < 4 unit_x='time (ms)'; end if nargin < 3 name='generic Signal'; end if nargin < 2 samplerate=1000; end if nargin < 1 laenge=1; end if isobject(laenge) sig.werte=laenge.werte; samplerate=laenge.samplerate; name=laenge.name; unit_x=laenge.unit_x; unit_y=laenge.unit_y; start_time=laenge.start_time; % sig.nr_x_ticks=laenge.nr_x_ticks; % sig.x_tick_labels=laenge.x_tick_labels; else a1=size(laenge,1); a2=size(laenge,2); if a1>1 & a2>1 disp('Signal Constructor Error: input vector has more than one dimension'); end % erst Abfrage, welche Konstruktionsmethode: if a2>1 %Benutzer hat Zeilenvektor eingegeben, wir wollen einen Spaltenvektor laenge=laenge'; a1=a2; end if a1>1 % AHA! Ein Vektor sig.werte=laenge; else nr_points=round(laenge*samplerate); sig.werte=zeros(nr_points,1); end end sig.samplerate=samplerate; sig.name=name; sig.unit_x=unit_x; sig.unit_y=unit_y; sig.start_time=start_time; sig.nr_x_ticks=9; % if the ticks shell be numbers or something else sig.x_tick_labels=[]; sig=class(sig,'signal');