Mercurial > hg > aimmat
diff aim-mat/tools/@signal/genam.asv @ 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/aim-mat/tools/@signal/genam.asv Fri May 20 12:32:31 2011 +0100 @@ -0,0 +1,55 @@ +% method of class @signal +% function sig=genam(sig,fcar,fmod,modgrad) +% +% INPUT VALUES: +% sig: original @signal with length and samplerate +% fcar: carrier frequency (Hz) +% fmod: modulation frequency (Hz) +% modgrad: modulation depth in (0-1) +% +% RETURN VALUE: +% sig: @signal +% +% (c) 2003, University of Cambridge, Medical Research Council +% Stefan Bleeck (stefan@bleeck.de) +% http://www.mrc-cbu.cam.ac.uk/cnbh/aimmanual +% $Date: 2003/01/25 12:47:43 $ +% $Revision: 1.4 $ + +function sig=genam(sig,fc,f_mod,modgrad,modphase,amplitude) + +if nargin<6 + amplitude=1; +end +if nargin<6 + modphase=0; +end +if nargin<6 + modgrad=1; +end + + +sr=getsr(sig); +len=getlength(sig); + +sin1=sinus(len,sr,fc,1,0); +sin2=sinus(len,sr,f_mod,1,modphase); + +sig=amplitude(modgrad*sin1+1)*sin2; + + +% f1=fc-f_mod; +% f2=fc; +% f3=fc+f_mod; +% sin1=sinus(len,sr,f1,modgrad/2,0); +% sin2=sinus(len,sr,f2,1,0); +% sin3=sinus(len,sr,f3,modgrad/2,0); +% sig=sin1; +% sig=sig+sin2; +% sig=sig+sin3; + +name=sprintf('AM: modulation: %3.1f Hz, carrier: %4.1f kHz, modgrad: %2.1f',f_mod,fc/1000,modgrad); +sig=setname(sig,name); +sig=scaletomaxvalue(sig,1); +% sig=RampAmplitude(sig,0.01); % baue eine Rampe +