From: CFY30 CFY30 on
Hi all,

I am new to Hilbert transform. I found its definition from text book
h(f) = -j or -90degree, f>0
h(f) = j or 90degree, f<0
h(f) = 0, f=0

But when I plot the phase out, code as follow. The phase changes with frequency and is not fixed at -90 or 90 degree. What do I miss?

b = firpm(10,[.1 .9],[1 1],'Hilbert')
w = linspace(-pi, pi, 2^12);
h = freqz(b, 1, w);
plot(w, angle(h)*180/pi);


cfy30
From: nanren888 on
"CFY30 CFY30" <cfy30(a)yahoo.com> wrote in message <hq8qdj$st3$1(a)fred.mathworks.com>...
> Hi all,
>
> I am new to Hilbert transform. I found its definition from text book
> h(f) = -j or -90degree, f>0
> h(f) = j or 90degree, f<0
> h(f) = 0, f=0
>
> But when I plot the phase out, code as follow. The phase changes with frequency and is not fixed at -90 or 90 degree. What do I miss?
>
> b = firpm(10,[.1 .9],[1 1],'Hilbert')
> w = linspace(-pi, pi, 2^12);
> h = freqz(b, 1, w);
> plot(w, angle(h)*180/pi);
>
>
> cfy30
I have not tried this one, but is by any chance there a delay in the filter?
For example if the delay in the filter were 10/5 = tau
I guess that you'd expect a constant delay through the filter, which would bias your result by a linear phase shift, exp(j*w*tau)
Does it look like a Hilbert Plus a linear term?
Something like
N = 10;
plot(w, angle(h.*exp(j*w*N/2))/pi*180); might work?
From: CFY30 CFY30 on
Thanks Nanren888. You are right and I see the +/-90degree now.

Cfy30

"nanren888 " <nanren888.remove.this(a)hotmail.com> wrote in message <hq94nk$j64$1(a)fred.mathworks.com>...
> "CFY30 CFY30" <cfy30(a)yahoo.com> wrote in message <hq8qdj$st3$1(a)fred.mathworks.com>...
> > Hi all,
> >
> > I am new to Hilbert transform. I found its definition from text book
> > h(f) = -j or -90degree, f>0
> > h(f) = j or 90degree, f<0
> > h(f) = 0, f=0
> >
> > But when I plot the phase out, code as follow. The phase changes with frequency and is not fixed at -90 or 90 degree. What do I miss?
> >
> > b = firpm(10,[.1 .9],[1 1],'Hilbert')
> > w = linspace(-pi, pi, 2^12);
> > h = freqz(b, 1, w);
> > plot(w, angle(h)*180/pi);
> >
> >
> > cfy30
> I have not tried this one, but is by any chance there a delay in the filter?
> For example if the delay in the filter were 10/5 = tau
> I guess that you'd expect a constant delay through the filter, which would bias your result by a linear phase shift, exp(j*w*tau)
> Does it look like a Hilbert Plus a linear term?
> Something like
> N = 10;
> plot(w, angle(h.*exp(j*w*N/2))/pi*180); might work?