annotate aim-mat/tools/@signal/genam.asv @ 4:537f939baef0 tip

various bug fixes and changed copyright message
author Stefan Bleeck <bleeck@gmail.com>
date Tue, 16 Aug 2011 14:37:17 +0100
parents 74dedb26614d
children
rev   line source
tomwalters@0 1 % method of class @signal
tomwalters@0 2 % function sig=genam(sig,fcar,fmod,modgrad)
tomwalters@0 3 %
tomwalters@0 4 % INPUT VALUES:
tomwalters@0 5 % sig: original @signal with length and samplerate
tomwalters@0 6 % fcar: carrier frequency (Hz)
tomwalters@0 7 % fmod: modulation frequency (Hz)
tomwalters@0 8 % modgrad: modulation depth in (0-1)
tomwalters@0 9 %
tomwalters@0 10 % RETURN VALUE:
tomwalters@0 11 % sig: @signal
tomwalters@0 12 %
tomwalters@0 13 % (c) 2003, University of Cambridge, Medical Research Council
tomwalters@0 14 % Stefan Bleeck (stefan@bleeck.de)
tomwalters@0 15 % http://www.mrc-cbu.cam.ac.uk/cnbh/aimmanual
tomwalters@0 16 % $Date: 2003/01/25 12:47:43 $
tomwalters@0 17 % $Revision: 1.4 $
tomwalters@0 18
tomwalters@0 19 function sig=genam(sig,fc,f_mod,modgrad,modphase,amplitude)
tomwalters@0 20
tomwalters@0 21 if nargin<6
tomwalters@0 22 amplitude=1;
tomwalters@0 23 end
tomwalters@0 24 if nargin<6
tomwalters@0 25 modphase=0;
tomwalters@0 26 end
tomwalters@0 27 if nargin<6
tomwalters@0 28 modgrad=1;
tomwalters@0 29 end
tomwalters@0 30
tomwalters@0 31
tomwalters@0 32 sr=getsr(sig);
tomwalters@0 33 len=getlength(sig);
tomwalters@0 34
tomwalters@0 35 sin1=sinus(len,sr,fc,1,0);
tomwalters@0 36 sin2=sinus(len,sr,f_mod,1,modphase);
tomwalters@0 37
tomwalters@0 38 sig=amplitude(modgrad*sin1+1)*sin2;
tomwalters@0 39
tomwalters@0 40
tomwalters@0 41 % f1=fc-f_mod;
tomwalters@0 42 % f2=fc;
tomwalters@0 43 % f3=fc+f_mod;
tomwalters@0 44 % sin1=sinus(len,sr,f1,modgrad/2,0);
tomwalters@0 45 % sin2=sinus(len,sr,f2,1,0);
tomwalters@0 46 % sin3=sinus(len,sr,f3,modgrad/2,0);
tomwalters@0 47 % sig=sin1;
tomwalters@0 48 % sig=sig+sin2;
tomwalters@0 49 % sig=sig+sin3;
tomwalters@0 50
tomwalters@0 51 name=sprintf('AM: modulation: %3.1f Hz, carrier: %4.1f kHz, modgrad: %2.1f',f_mod,fc/1000,modgrad);
tomwalters@0 52 sig=setname(sig,name);
tomwalters@0 53 sig=scaletomaxvalue(sig,1);
tomwalters@0 54 % sig=RampAmplitude(sig,0.01); % baue eine Rampe
tomwalters@0 55