|
From: | Przemek Klosowski |
Subject: | Re: Hilbert transform |
Date: | Mon, 9 Jul 2012 14:00:39 -0400 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:13.0) Gecko/20120615 Thunderbird/13.0.1 |
octave:37> foo = center(linspace(0,1,100)); octave:38> max(abs(foo + imag(hilbert(imag(hilbert(foo)))))) ans = 0.0050505 - the expected answer is 0. And, even more interesting: octave:39> min(abs(foo + imag(hilbert(imag(hilbert(foo)))))) ans = 0.0050505 i.e. the error is constant.
Curiously, as the vector length increases from two to 20, odd vector lengths satisfy Sergei's identity u = -Hilb(Hilb(u)), but odd ones have quite large errors:
0 0.5 0 0.16667 0 0.10000 0 0.07143 0 0.05556 0 0.04545 0 0.03846 0 0.03333 0 0.02941 0 0.02632
In fact, min(abs(foo(N) + imag(hilbert(imag(hilbert(foo(N))))))) seems to be equal to 1/(2*N-2)
as the following code shows: for i=2:33 foo = center(linspace(0,1,i));printf("%d\t%f\t%f\n", i,min(abs(foo + imag(hilbert(imag(hilbert(foo)))))),1/(2*i-2));
end; Could someone check that on Matlab?
[Prev in Thread] | Current Thread | [Next in Thread] |