function y=siggen(R,sec,f,Hn,type) % kevin cox's function % does that pulse train look right? hmm... N=R*sec; y=zeros(1,N); switch (type) case (1) % sine y = sin(2*pi*f/R .* [0:N-1] ); case (2) % cosine y = cos(2*pi*f/R .* [0:N-1] ); case (3) % square for h=0:Hn fh=(2*h)+1; y = y+(1/fh) * sin((2*pi*f*fh/R) .* [0:N-1]); endfor case (4) % triangle for h=0:Hn fh=(2*h)+1; y = y+(1/(fh*fh)) * cos((2*pi*f*fh/R) .* [0:N-1]); endfor case (5) % sawtooth for fh=1:Hn y = y+(1/fh) * sin((2*pi*f*fh/R) .* [0:N-1]); endfor case (6) % white noise y = rand(1,N)*2.0-1.0; case (7) % pulse train for fh=1:Hn y = y + cos((2*pi*f*fh/R) .* [0:N-1]); endfor y = y/Hn; otherwise endswitch y = y .* (1/max(abs(y))); y = y'; endfunction