On Jul 31, 9:01 am, "G Iveco" <G.Iv...@google.com> wrote:
> What are the applications of hilbert transform in digital communications?
>
> How to control the amplitude gain of a discrete hilbert transform? In my
> experiment with cosine waves of different frequency, the amplitude of
> sine seems to vary significantly.
>
> close all;
> N = 2^12;
> t = 0:1:N-1;
> b = [-0.5, 0, 0.5];
> a = 0.2;
>
> close all;
> figure;
> e = zeros(1, N);
> f = zeros(1, N);
> for k = 4:1:6
> phy = 2*pi*t/(2^k);
> c = cos(phy);
> s = filter(b, a, c);
> subplot(2,1,1); plot(c); hold on; grid;
> subplot(2,1,2); plot(s); hold on; grid;
> e = e + c;
> f = f + s;
> end
>
> figure;
> plot(t, e, 'r', t, f, 'b'); hold on; grid;
A 3 tap Hilbert Transform is not going to be a very good one over any
significant range of frequencies. If you want close to a flat
amplitude response over a large range of frequencies you will need a
bunch more taps.
Often in real world applications, one uses a pair of filters whose
phase response differ by 90 degrees instead of using an approximation
to a Hilbert transform. Basically a Hilbert is often used to make an
analytic signal so what you likely want to know is what are the uses
of such signals. A big hint is contained in the fact that they have
one sided Fourier transforms. Thus the instantaneous amplitude, phase
and frequency are all readily had. Also such signals are easily
frequency shifted by simple modulation without a final filter.
Clay
Reply by G Iveco●July 31, 20072007-07-31
What are the applications of hilbert transform in digital communications?
How to control the amplitude gain of a discrete hilbert transform? In my
experiment with cosine waves of different frequency, the amplitude of
sine seems to vary significantly.
close all;
N = 2^12;
t = 0:1:N-1;
b = [-0.5, 0, 0.5];
a = 0.2;
close all;
figure;
e = zeros(1, N);
f = zeros(1, N);
for k = 4:1:6
phy = 2*pi*t/(2^k);
c = cos(phy);
s = filter(b, a, c);
subplot(2,1,1); plot(c); hold on; grid;
subplot(2,1,2); plot(s); hold on; grid;
e = e + c;
f = f + s;
end
figure;
plot(t, e, 'r', t, f, 'b'); hold on; grid;