tomwalters@0: % tool tomwalters@0: % tomwalters@0: % INPUT VALUES: tomwalters@0: % tomwalters@0: % RETURN VALUE: tomwalters@0: % tomwalters@0: % bleeck@3: % (c) 2011, University of Southampton bleeck@3: % Maintained by Stefan Bleeck (bleeck@gmail.com) bleeck@3: % download of current version is on the soundsoftware site: bleeck@3: % http://code.soundsoftware.ac.uk/projects/aimmat bleeck@3: % documentation and everything is on http://www.acousticscale.org bleeck@3: tomwalters@0: tomwalters@0: function sig=generatemultiramp(carriers,halflifes,reprate,signal_length) tomwalters@0: tomwalters@0: if nargin < 4 tomwalters@0: signal_length=0.128; tomwalters@0: end tomwalters@0: if nargin < 3 tomwalters@0: reprate=62.5; tomwalters@0: end tomwalters@0: if nargin < 2 tomwalters@0: hlsteps=8; tomwalters@0: halflives=distributelogarithmic(0.064,0.0005,hlsteps); tomwalters@0: else tomwalters@0: hlsteps=length(halflifes); tomwalters@0: end tomwalters@0: if nargin < 1 tomwalters@0: carsteps=5; tomwalters@0: carriers=distributelogarithmic(250,4000,carsteps); tomwalters@0: else tomwalters@0: carsteps=length(carriers); tomwalters@0: end tomwalters@0: tomwalters@0: tomwalters@0: sr=16000; tomwalters@0: % signal_length=0.264-1/sr; tomwalters@0: sig=signal(signal_length,sr); tomwalters@0: tomwalters@0: for i=1:hlsteps tomwalters@0: for j=1:carsteps tomwalters@0: current_carrier=carriers(j); tomwalters@0: halflife=halflifes(i); tomwalters@0: sig=generaterampsinus(sig,current_carrier,reprate,1,halflife); tomwalters@0: tomwalters@0: if j==1 tomwalters@0: gsig=sig; tomwalters@0: else tomwalters@0: gsig=gsig+sig; tomwalters@0: end tomwalters@0: end tomwalters@0: tomwalters@0: if i==1 tomwalters@0: tsig=gsig; tomwalters@0: else tomwalters@0: tsig=append(tsig,gsig); tomwalters@0: end tomwalters@0: tomwalters@0: end tomwalters@0: % savewave(tsig,'tsig'); tomwalters@0: tomwalters@0: tomwalters@0: sig=tsig;