Mercurial > hg > gccphat-windowing
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 |