annotate Simulation/createFiltNoise.m @ 0:ab043bd3b162 tip

First commit
author Alice Clifford <alice.clifford@eecs.qmul.ac.uk>
date Mon, 11 Jun 2012 17:42:13 +0100
parents
children
rev   line source
alice@0 1 function [output]=createFiltNoise(input,centreFreq,bandWidth,filterOrder,Fs)
alice@0 2
alice@0 3 % create filtered noise for bandwidth simulation
alice@0 4 %
alice@0 5 % Input:
alice@0 6 % - input: input to be filtered
alice@0 7 % - centreFreq: centre frequency or cutoff frequency
alice@0 8 % - bandWidth: width of filter
alice@0 9 % - filterOrder: order of butterworth filter (4)
alice@0 10 % - Fs: sampling frequency (44100)
alice@0 11 %
alice@0 12 % Output:
alice@0 13 % - output: array
alice@0 14 %
alice@0 15
alice@0 16 % Developer: - Alice Clifford (alice.clifford@eecs.qmul.ac.uk)
alice@0 17
alice@0 18
alice@0 19
alice@0 20 if centreFreq==0 %LOW PASS FILTER FOR CENTRE FREQ ==0
alice@0 21
alice@0 22 cutoffFreq=bandWidth;
alice@0 23
alice@0 24 normCutFreq=(cutoffFreq/(Fs/2));
alice@0 25
alice@0 26 [b,a]=butter(filterOrder,normCutFreq,'low');
alice@0 27
alice@0 28 output=filter(b,a,input);
alice@0 29
alice@0 30
alice@0 31
alice@0 32 elseif centreFreq==22050 %HIGH PASS FILTER FOR CENTREFREQ == FS/2
alice@0 33
alice@0 34 cutoffFreq=(Fs/2)-bandWidth;
alice@0 35
alice@0 36 normCutFreq=(cutoffFreq/(Fs/2));
alice@0 37
alice@0 38 [b,a]=butter(filterOrder,normCutFreq,'high'); %HIGH PASS FILTER
alice@0 39
alice@0 40 output=filter(b,a,input);
alice@0 41
alice@0 42
alice@0 43
alice@0 44
alice@0 45 else% %BAND PASS - NEED LOW AND HIGH PASS
alice@0 46
alice@0 47 lowBandFreq=centreFreq-(bandWidth/2);
alice@0 48 highBandFreq=centreFreq+(bandWidth/2);
alice@0 49
alice@0 50 highNormBandFreq=(highBandFreq/(Fs/2));
alice@0 51 lowNormBandFreq=(lowBandFreq/(Fs/2));
alice@0 52
alice@0 53
alice@0 54 [b,a]=butter(filterOrder,[lowNormBandFreq highNormBandFreq]);
alice@0 55
alice@0 56
alice@0 57
alice@0 58 output=filter(b,a,input);
alice@0 59
alice@0 60 end