annotate aim-mat/modules/usermodule/pitchstrength/reduce_tilt.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
children
rev   line source
bleeck@4 1 function sig=reduce_tilt(sig,options)
bleeck@4 2
bleeck@4 3
bleeck@4 4 plot_switch=1;
bleeck@4 5
bleeck@4 6 lowpassfactor=100; % relationship between Samplefrequency and lowpassfrequency
bleeck@4 7
bleeck@4 8 % shift all values that are zero at the beginning to the first
bleeck@4 9 % positive value. This makes the lowpass continuous for high
bleeck@4 10 % frequencies
bleeck@4 11 sr=getsr(sig);
bleeck@4 12 stip=getvalues(sig);
bleeck@4 13
bleeck@4 14 indx=find(stip>0);
bleeck@4 15 if ~isempty(indx)
bleeck@4 16 first_non_zero=stip(indx(1));
bleeck@4 17 stip(1:indx(1))=first_non_zero;
bleeck@4 18 stip=[ones(200,1)*first_non_zero;stip];
bleeck@4 19 end
bleeck@4 20 s=signal(stip,sr);
bleeck@4 21 s=reverse(s);
bleeck@4 22 s2=lowpass(s,sr/lowpassfactor);
bleeck@4 23 diff=s-s2;
bleeck@4 24
bleeck@4 25 % s2=getpart(s2,0,getlength(sig));
bleeck@4 26
bleeck@4 27
bleeck@4 28 if plot_switch
bleeck@4 29 figure(4)
bleeck@4 30 clf
bleeck@4 31 plot(s);
bleeck@4 32 hold on
bleeck@4 33 plot(s2,'r');
bleeck@4 34 plot(diff,'g')
bleeck@4 35 axis([0 getnrpoints(sig) min(diff)-10 max(sig)+10]);
bleeck@4 36 end
bleeck@4 37
bleeck@4 38 diff=getpart(diff,0,getlength(sig));
bleeck@4 39 diff=reverse(diff);
bleeck@4 40
bleeck@4 41
bleeck@4 42 % return value
bleeck@4 43 sig=diff;