Mercurial > hg > aimmat
view aim-mat/tools/gen_multiramp.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 |
line wrap: on
line source
% % function sig=gen_multiramp(carriers,halflifes,reprate,signal_length, sample_fq) % % Generates a superposition of ramped sinusiod signals % % INPUT VALUES: % carriers carrier frequences (vector) % halflifes (vector, same length as carriers) % reprate frequence of envelope % signal_length in seconds !!! % sample_fq sample frequence % % RETURN VALUE: % sig object signal % % % (c) 2011, University of Southampton % Maintained by Stefan Bleeck (bleeck@gmail.com) % download of current version is on the soundsoftware site: % http://code.soundsoftware.ac.uk/projects/aimmat % documentation and everything is on http://www.acousticscale.org function sig=gen_multiramp(carriers,halflifes,reprate,signal_length, sample_fq) if nargin < 4 signal_length=0.128; end if nargin < 3 reprate=62.5; end if nargin < 2 hlsteps=8; halflives=distributelogarithmic(0.064,0.0005,hlsteps); else hlsteps=length(halflifes); end if nargin < 1 carsteps=5; carriers=distributelogarithmic(250,4000,carsteps); else carsteps=length(carriers); end sr = sample_fq; % sr=16000; % signal_length=0.264-1/sr; sig=signal(signal_length,sr); for i=1:hlsteps for j=1:carsteps current_carrier=carriers(j); halflife=halflifes(i); sig=generaterampsinus(sig,current_carrier,reprate,1,halflife); if j==1 gsig=sig; else gsig=gsig+sig; end end if i==1 tsig=gsig; else tsig=append(tsig,gsig); end end % savewave(tsig,'tsig'); sig=tsig;