alice@0: function [output]=createFiltNoise(input,centreFreq,bandWidth,filterOrder,Fs) alice@0: alice@0: % create filtered noise for bandwidth simulation alice@0: % alice@0: % Input: alice@0: % - input: input to be filtered alice@0: % - centreFreq: centre frequency or cutoff frequency alice@0: % - bandWidth: width of filter alice@0: % - filterOrder: order of butterworth filter (4) alice@0: % - Fs: sampling frequency (44100) alice@0: % alice@0: % Output: alice@0: % - output: array alice@0: % alice@0: alice@0: % Developer: - Alice Clifford (alice.clifford@eecs.qmul.ac.uk) alice@0: alice@0: alice@0: alice@0: if centreFreq==0 %LOW PASS FILTER FOR CENTRE FREQ ==0 alice@0: alice@0: cutoffFreq=bandWidth; alice@0: alice@0: normCutFreq=(cutoffFreq/(Fs/2)); alice@0: alice@0: [b,a]=butter(filterOrder,normCutFreq,'low'); alice@0: alice@0: output=filter(b,a,input); alice@0: alice@0: alice@0: alice@0: elseif centreFreq==22050 %HIGH PASS FILTER FOR CENTREFREQ == FS/2 alice@0: alice@0: cutoffFreq=(Fs/2)-bandWidth; alice@0: alice@0: normCutFreq=(cutoffFreq/(Fs/2)); alice@0: alice@0: [b,a]=butter(filterOrder,normCutFreq,'high'); %HIGH PASS FILTER alice@0: alice@0: output=filter(b,a,input); alice@0: alice@0: alice@0: alice@0: alice@0: else% %BAND PASS - NEED LOW AND HIGH PASS alice@0: alice@0: lowBandFreq=centreFreq-(bandWidth/2); alice@0: highBandFreq=centreFreq+(bandWidth/2); alice@0: alice@0: highNormBandFreq=(highBandFreq/(Fs/2)); alice@0: lowNormBandFreq=(lowBandFreq/(Fs/2)); alice@0: alice@0: alice@0: [b,a]=butter(filterOrder,[lowNormBandFreq highNormBandFreq]); alice@0: alice@0: alice@0: alice@0: output=filter(b,a,input); alice@0: alice@0: end