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
|