function f = hilbert(s)

%           f=hilbert(s);
%
% Calcule la transformée de Hilbert d'un signal digital réel donné en
% colonne. 

N=length(s);
NN = 2^nextpow2(N);
y = fft(s,NN);
if NN ~= 1
	h = [1; 2*ones(fix((NN-1)/2),1); 1; zeros(fix((NN-1)/2),1)];
	y = y.*h;
end
f = imag(ifft(y,NN));
f=f(1:N); 