Mercurial > hg > pmhd
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 |