Mercurial > hg > aimmat
view aim-mat/tools/@signal/squeeze.m @ 0:74dedb26614d
Initial checkin of AIM-MAT version 1.5 (6.4.2011).
author | tomwalters |
---|---|
date | Fri, 20 May 2011 12:32:31 +0100 |
parents | |
children | 20ada0af3d7d |
line wrap: on
line source
% method of class @ % function newsig=squeeze(sig,factor) % INPUT VALUES: % sig: orginal @signal % factor: factor, by which the signal is squeezed % RETURN VALUE: % newsig: squeezed signal % % reduces the length of the signal by scaling it in time % % (c) 2003-2008, University of Cambridge, Medical Research Council % Maintained by Tom Walters (tcw24@cam.ac.uk), written by Stefan Bleeck (stefan@bleeck.de) % http://www.pdn.cam.ac.uk/cnbh/aim2006 % $Date: 2008-06-10 18:00:16 +0100 (Tue, 10 Jun 2008) $ % $Revision: 585 $ function newsig=squeeze(sig,factor) %%%%%%%%%%%%%%% % if squeezed it becomes shorter if factor < 1 len=getlength(sig); newlen=len*factor; sr=sig.samplerate; newsr=sr; % dont change the sr if newlen < newsr newlen=newsr; end newsig=signal(newlen,newsr); nr_points=getnrpoints(newsig); new_vals=zeros(nr_points,1); for i=1:nr_points whichstart=(i-1)*newsr/factor; whichstop=i*newsr/factor; if whichstop>len whichstop=len; end new_vals(i)=average(sig,whichstart,whichstop); end newsig=setvalues(newsig,new_vals); return end newsig=sig;