Mercurial > hg > aimmat
annotate aim-mat/tools/generatemultiramp.m @ 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 | 20ada0af3d7d |
children |
rev | line source |
---|---|
tomwalters@0 | 1 % tool |
tomwalters@0 | 2 % |
tomwalters@0 | 3 % INPUT VALUES: |
tomwalters@0 | 4 % |
tomwalters@0 | 5 % RETURN VALUE: |
tomwalters@0 | 6 % |
tomwalters@0 | 7 % |
bleeck@3 | 8 % (c) 2011, University of Southampton |
bleeck@3 | 9 % Maintained by Stefan Bleeck (bleeck@gmail.com) |
bleeck@3 | 10 % download of current version is on the soundsoftware site: |
bleeck@3 | 11 % http://code.soundsoftware.ac.uk/projects/aimmat |
bleeck@3 | 12 % documentation and everything is on http://www.acousticscale.org |
bleeck@3 | 13 |
tomwalters@0 | 14 |
tomwalters@0 | 15 function sig=generatemultiramp(carriers,halflifes,reprate,signal_length) |
tomwalters@0 | 16 |
tomwalters@0 | 17 if nargin < 4 |
tomwalters@0 | 18 signal_length=0.128; |
tomwalters@0 | 19 end |
tomwalters@0 | 20 if nargin < 3 |
tomwalters@0 | 21 reprate=62.5; |
tomwalters@0 | 22 end |
tomwalters@0 | 23 if nargin < 2 |
tomwalters@0 | 24 hlsteps=8; |
tomwalters@0 | 25 halflives=distributelogarithmic(0.064,0.0005,hlsteps); |
tomwalters@0 | 26 else |
tomwalters@0 | 27 hlsteps=length(halflifes); |
tomwalters@0 | 28 end |
tomwalters@0 | 29 if nargin < 1 |
tomwalters@0 | 30 carsteps=5; |
tomwalters@0 | 31 carriers=distributelogarithmic(250,4000,carsteps); |
tomwalters@0 | 32 else |
tomwalters@0 | 33 carsteps=length(carriers); |
tomwalters@0 | 34 end |
tomwalters@0 | 35 |
tomwalters@0 | 36 |
tomwalters@0 | 37 sr=16000; |
tomwalters@0 | 38 % signal_length=0.264-1/sr; |
tomwalters@0 | 39 sig=signal(signal_length,sr); |
tomwalters@0 | 40 |
tomwalters@0 | 41 for i=1:hlsteps |
tomwalters@0 | 42 for j=1:carsteps |
tomwalters@0 | 43 current_carrier=carriers(j); |
tomwalters@0 | 44 halflife=halflifes(i); |
tomwalters@0 | 45 sig=generaterampsinus(sig,current_carrier,reprate,1,halflife); |
tomwalters@0 | 46 |
tomwalters@0 | 47 if j==1 |
tomwalters@0 | 48 gsig=sig; |
tomwalters@0 | 49 else |
tomwalters@0 | 50 gsig=gsig+sig; |
tomwalters@0 | 51 end |
tomwalters@0 | 52 end |
tomwalters@0 | 53 |
tomwalters@0 | 54 if i==1 |
tomwalters@0 | 55 tsig=gsig; |
tomwalters@0 | 56 else |
tomwalters@0 | 57 tsig=append(tsig,gsig); |
tomwalters@0 | 58 end |
tomwalters@0 | 59 |
tomwalters@0 | 60 end |
tomwalters@0 | 61 % savewave(tsig,'tsig'); |
tomwalters@0 | 62 |
tomwalters@0 | 63 |
tomwalters@0 | 64 sig=tsig; |