diff Functions/gccPHATFunc_win.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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Functions/gccPHATFunc_win.m	Mon Jun 11 17:42:13 2012 +0100
@@ -0,0 +1,35 @@
+function [frameDelayVec]=gccPHATFunc_win(x,frameSize,hopSize,windowShape)
+% calculate the GCC-PHAT delay estimation on frames of data
+%
+% Input:
+%   - x: stereo audio file. x(:,2) is delayed
+%   - frameSize: size of frames (samples)
+%   - hopSize: overlap between frames (samples)
+%   - windowShape: string passed to window()
+%
+% Output:
+%   - frameDelayVec: array of delay estimation for each frame
+%
+% Developers:  - Alice Clifford (alice.clifford@eecs.qmul.ac.uk)
+
+[xMat,numFrames]=createMat(x,frameSize,hopSize);
+
+w=repmat(window(windowShape,frameSize),[1 2 numFrames]);
+
+X=fft(xMat.*w); %FFT of each frame with window applied
+
+for n=1:numFrames
+    
+    %GCC-PHAT
+    Sxs=X(:,2,n).*conj(X(:,1,n));
+        
+    S=Sxs./abs(Sxs);
+    
+    s=ifft(S);
+
+    [dummy,frameDelay]=max(s(1:frameSize/2)); %assume delay in first frameSize/2 samples
+    
+    frameDelayVec(n)=frameDelay-1; %compensate for index starting at 1
+
+
+end