annotate genbh92lobe.m @ 13:844d341cf643 tip

Back up before ISMIR
author Yading Song <yading.song@eecs.qmul.ac.uk>
date Thu, 31 Oct 2013 13:17:06 +0000
parents f445c3017523
children
rev   line source
yading@11 1 function y = genbh92lobe(x)
yading@11 2 % Calculate transform of the Blackman-Harris 92dB window
yading@11 3 % x: bin positions to compute (real values), y: transform values
yading@11 4 N = 512;
yading@11 5 f = x*pi*2/N; % frequency sampling
yading@11 6 df = 2*pi/N;
yading@11 7 y = zeros(size(x)); % initialize window
yading@11 8 consts = [.35875, .48829, .14128, .01168]; % window constants
yading@11 9 for m=0:3
yading@11 10 y = y + consts(m+1)/2*(D(f-df*m,N)+D(f+df*m,N)); % sum Dirichlet kernels
yading@11 11 end
yading@11 12 y = y/N/consts(1); % normalize
yading@11 13 end
yading@11 14 function y = D(x,N)
yading@11 15 % Calculate rectangular window transform (Dirichlet kernel)
yading@11 16 y = sin(N*x/2)./sin(x/2);
yading@11 17 y(find(y~=y))=N; % avoid NaN if x==0
yading@11 18 end