Mercurial > hg > aimmat
view aim-mat/tools/@signal/genbandpassnoise.m @ 0:74dedb26614d
Initial checkin of AIM-MAT version 1.5 (6.4.2011).
author | tomwalters |
---|---|
date | Fri, 20 May 2011 12:32:31 +0100 |
parents | |
children | 20ada0af3d7d |
line wrap: on
line source
% method of class @signal % function sig=genbandpassnoise(sig,varargin) % INPUT VALUES: % sig: @signal with length and samplerate % RETURN VALUE: % sig: @signal % % (c) 2003-2008, University of Cambridge, Medical Research Council % Maintained by Tom Walters (tcw24@cam.ac.uk), written by Stefan Bleeck (stefan@bleeck.de) % http://www.pdn.cam.ac.uk/cnbh/aim2006 % $Date: 2008-06-10 18:00:16 +0100 (Tue, 10 Jun 2008) $ % $Revision: 585 $ function sig=genbandpassnoise(sig,lowfrequency,highfrequency) % steepness is given in dB per octave (to make it compatible with Fastl) len=getlength(sig); sr=getsr(sig); % generate white noise: vals=getvalues(sig); nyquist_frequenz=sr/2; N=getnrpoints(sig); n1=round(lowfrequency/nyquist_frequenz*N/2); n2=round(highfrequency/nyquist_frequenz*N/2); if n1<=0 n1=1; end if n2>N n2=N; end noise1=zeros(size(vals)); noise2=zeros(size(vals)); for i=n1:n2 noise1(i)=rand(1); end for i=N-n2:N-n1 noise2(i)=rand(1); end ftband=noise1+ i*noise2; vals=ifft(ftband); vals=real(vals); sig=setvalues(sig,vals); sig=setname(sig,sprintf('Bandpass filtered noise from %4.1f Hz to %4.1f Hz',lowfrequency,highfrequency)); return