help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Hilbert transform


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?


reply via email to

[Prev in Thread] Current Thread [Next in Thread]