From: CFY30 CFY30 on 16 Apr 2010 00:52 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 16 Apr 2010 03:48 "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 16 Apr 2010 16:29 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?
|
Pages: 1 Prev: Minimax problem for matrices Next: cognitive radio simulation |