Files
jens 579c1544b1 - added
git-svn-id: http://moon:8086/svn/matlab/trunk@157 801c6759-fa7c-4059-a304-17956f83a07c
2022-06-16 06:16:47 +00:00

38 lines
823 B
Matlab
Executable File

function [w, idx] = wkaiser(n, b)
% function [w, idx] = wkaiser(n, b)
k1 = 1.0/besselizero(b);
k2 = 1 - mod(n, 2);
ende = fix((n + 1)/2);
idx = zeros(n, 1);
% Calculate window coefficients
for k=0:ende-1,
tmp = (2*k + k2) / (n - 1.0);
tmp2 = k1 * besselizero(b*sqrt(1.0 - tmp*tmp));
mm = ende-(mod(not(k2), 2))+k+1;
nn = ende-k;
w(mm) = tmp2;
w(nn) = tmp2;
idx(nn) = idx(nn) + 1;
idx(mm) = idx(mm) + 1;
end;
function sum = besselizero(x)
BIZ_EPSILON = 1E-21; % Max error acceptable
sum = 1.0;
u = 1.0;
halfx = x/2.0;
n = 1;
while(1)
temp = halfx/n;
u = u * temp * temp;
sum = sum + u;
n = n + 1;
if (u < (BIZ_EPSILON * sum))
break;
end;
end;