annotate Simulation/runAnalysis_filteredNoise_simulation.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 %Script to run delay estimation analysis of filtered white noise at various
alice@0 2 %bandwidths and with different window shapes
alice@0 3
alice@0 4
alice@0 5 % Developer: - Alice Clifford (alice.clifford@eecs.qmul.ac.uk)
alice@0 6
alice@0 7
alice@0 8
alice@0 9 clear all
alice@0 10 close all
alice@0 11
alice@0 12 addpath ../Functions
alice@0 13
alice@0 14 Fs=44100;
alice@0 15 T=10;
alice@0 16
alice@0 17
alice@0 18 winShapes={
alice@0 19 'blackman',
alice@0 20 'blackmanharris',
alice@0 21 'flattopwin',
alice@0 22 'gausswin',
alice@0 23 'hamming',
alice@0 24 'hann',
alice@0 25 'rectwin',
alice@0 26 };
alice@0 27
alice@0 28
alice@0 29 ds=10; %simulated delay (samples)
alice@0 30
alice@0 31 input=randn((T*Fs)+ds+1,1);
alice@0 32 input=input./max(abs(input)); %white noise input
alice@0 33
alice@0 34 centreFreq=[0 11025 22050]; %centre frequencies (LP, BP, HP)
alice@0 35
alice@0 36 bandWidth=logspace(1,5,500); %bandwidths
alice@0 37
alice@0 38 bandWidth=(bandWidth(bandWidth>50));
alice@0 39 bandWidth=bandWidth(bandWidth<22050);
alice@0 40 bandWidth=round(bandWidth);
alice@0 41
alice@0 42
alice@0 43 percHits=zeros(length(bandWidth),length(centreFreq));
alice@0 44
alice@0 45 filterOrder=4;
alice@0 46 freqVec=linspace(0,Fs,length(input));
alice@0 47
alice@0 48 frameSize=2048;
alice@0 49 hopSize=frameSize/4;
alice@0 50
alice@0 51
alice@0 52 for w=1:length(winShapes)
alice@0 53
alice@0 54 for n=1:length(centreFreq)
alice@0 55
alice@0 56 for m=1:length(bandWidth)
alice@0 57
alice@0 58
alice@0 59 [w n m]
alice@0 60 %CREATE FILTERED NOISE VECTOR FROM CENTRE FREQ AND BANDWIDTH
alice@0 61 filtNoise=createFiltNoise(input,centreFreq(n),bandWidth(m),filterOrder,Fs);
alice@0 62
alice@0 63 %CREATE DELAYED SIGNAL
alice@0 64 x=zeros(length(filtNoise),2);
alice@0 65
alice@0 66 x(:,1)=filtNoise;
alice@0 67 x(:,2)=filter([zeros(ds,1);1],1,filtNoise);
alice@0 68
alice@0 69 x=x(ds+1:end,:);
alice@0 70
alice@0 71
alice@0 72 delayVec=gccPHATFunc_win(x,frameSize,hopSize,winShapes{w});
alice@0 73 percHitsMat(n,m)=percCorr(delayVec,ds,2);
alice@0 74
alice@0 75
alice@0 76 end
alice@0 77
alice@0 78
alice@0 79 end
alice@0 80 clear x filtNoise
alice@0 81
alice@0 82 %save(strcat('Results/noiseExpandBand_',winShapes{w})); %uncomment to
alice@0 83 %save data
alice@0 84
alice@0 85 end
alice@0 86
alice@0 87 toc
alice@0 88