Applying hilbert transform close to DC
CASTalk.com Forum Index CASTalk.com
Discussion of DSP, FPGA, storage and embedded system.
 
 FAQFAQ   MemberlistMemberlist     RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 
 
Google
 
Web castalk.com
Applying hilbert transform close to DC

 
Post new topic   Reply to topic    CASTalk.com Forum Index -> DSP
Author Message
Aaron
Guest





Posted: Wed Dec 07, 2005 9:16 am    Post subject: Applying hilbert transform close to DC Reply with quote

Hello,

I've been trying to apply a hilbert transform from DC to around 10kHz @
a 57600Hz sample rate however the 90 degree phase shift doesn't work
well close to DC (which is expected). Btw, this is for an
implementation of the phasing method for SSB-SC modulation.

Is there some way to get around this problem? or a better way to
perform the phase shift?

I've been experimenting with upshifting the baseband signal to some
arbitary frequency (thus removing DC) and then applying the transform
but this deviates from the formula and hence I can't get it to work...

Thanks,
Aaron
Back to top
Vladimir Vassilevsky
Guest





Posted: Wed Dec 07, 2005 5:16 pm    Post subject: Re: Applying hilbert transform close to DC Reply with quote

Aaron wrote:

Quote:
Hello,

I've been trying to apply a hilbert transform from DC to around 10kHz @
a 57600Hz sample rate however the 90 degree phase shift doesn't work
well close to DC (which is expected). Btw, this is for an
implementation of the phasing method for SSB-SC modulation.

Is there some way to get around this problem? or a better way to
perform the phase shift?

There is no silver bullet. You can do Hilbert transform using multirate
filterbanks; that takes less computation.


Quote:
I've been experimenting with upshifting the baseband signal to some
arbitary frequency (thus removing DC) and then applying the transform
but this deviates from the formula and hence I can't get it to work...

You can do it this way however you have to build the bandpass filters to
separate /+/ and /-/ spectrum. That is not easier then making 90 degree
shift.

Vladimir Vassilevsky

DSP and Mixed Signal Design Consultant

http://www.abvolt.com
Back to top
Al Clark
Guest





Posted: Wed Dec 07, 2005 5:16 pm    Post subject: Re: Applying hilbert transform close to DC Reply with quote

"Aaron" <aaron.low@iinet.net.au> wrote in news:1133927856.693521.114810
@g14g2000cwa.googlegroups.com:

Quote:
Hello,

I've been trying to apply a hilbert transform from DC to around 10kHz @
a 57600Hz sample rate however the 90 degree phase shift doesn't work
well close to DC (which is expected). Btw, this is for an
implementation of the phasing method for SSB-SC modulation.

Is there some way to get around this problem? or a better way to
perform the phase shift?

I've been experimenting with upshifting the baseband signal to some
arbitary frequency (thus removing DC) and then applying the transform
but this deviates from the formula and hence I can't get it to work...

Thanks,
Aaron



Hilbert tranformers work fine. The problem is that you need a long delay as
you go down in frequency.

Think about what a 90 degree phase shift at DC is. It would take infinite
taps. To shift 20 Hz by 90 degrees requires a 1/80 sec delay. A short delay
line is not going to be able to create this much delay with a 57600 Hz
sample rate

--
Al Clark
Danville Signal Processing, Inc.
--------------------------------------------------------------------
Purveyors of Fine DSP Hardware and other Cool Stuff
Available at http://www.danvillesignal.com
Back to top
Aaron
Guest





Posted: Fri Dec 09, 2005 8:49 am    Post subject: Re: Applying hilbert transform close to DC Reply with quote

Hello Vladimir,

Vladimir Vassilevsky wrote:
Quote:

There is no silver bullet. You can do Hilbert transform using multirate
filterbanks; that takes less computation.

That's useful information but as Al pointed out it won't really solve
my problem as I still require the phase shift close to DC and multirate
filterbanks will still suffer from the same delay requirements? (note:
I've never used them before though).

Quote:
I've been experimenting with upshifting the baseband signal to some
arbitary frequency (thus removing DC) and then applying the transform
but this deviates from the formula and hence I can't get it to work...

You can do it this way however you have to build the bandpass filters to
separate /+/ and /-/ spectrum. That is not easier then making 90 degree
shift.

Pls let me describe this a little since I'm new to this I've probably
made a mistake.
In matlab...
-Take a 1kHz sine wave - m(t)
-I used a 'carrier' tone of 14kHz - c(t)
-Multiply the signals
Now this is the signal I've been trying to play around with. I thought
that by applying the HT to this then shifting it back to baseband I
could see if I got the required 90 degree phase shift. I worked this
out with trig and I think it should work?? But this doesn't seem to be
the case. Is there something wrong with applying the HT in this way?

Cheers,
Aaron
Back to top
Jerry Avins
Guest





Posted: Fri Dec 09, 2005 9:16 am    Post subject: Re: Applying hilbert transform close to DC Reply with quote

Aaron wrote:
Quote:
Hello Vladimir,

Vladimir Vassilevsky wrote:

There is no silver bullet. You can do Hilbert transform using multirate
filterbanks; that takes less computation.


That's useful information but as Al pointed out it won't really solve
my problem as I still require the phase shift close to DC and multirate
filterbanks will still suffer from the same delay requirements? (note:
I've never used them before though).


I've been experimenting with upshifting the baseband signal to some
arbitary frequency (thus removing DC) and then applying the transform
but this deviates from the formula and hence I can't get it to work...

You can do it this way however you have to build the bandpass filters to
separate /+/ and /-/ spectrum. That is not easier then making 90 degree
shift.


Pls let me describe this a little since I'm new to this I've probably
made a mistake.
In matlab...
-Take a 1kHz sine wave - m(t)
-I used a 'carrier' tone of 14kHz - c(t)
-Multiply the signals
Now this is the signal I've been trying to play around with. I thought
that by applying the HT to this then shifting it back to baseband I
could see if I got the required 90 degree phase shift. I worked this
out with trig and I think it should work?? But this doesn't seem to be
the case. Is there something wrong with applying the HT in this way?

What do you mean by "close to DC"? If you limit your frequencies to
those above 40 Hz -- the lower limit of a telephone is about 300 Hz --
you need maybe 15 ms delay. For many applications, that's doable.

Jerry
--
Engineering is the art of making what you want from things you can get.
ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ
Back to top
Aaron
Guest





Posted: Fri Dec 09, 2005 9:16 am    Post subject: Re: Applying hilbert transform close to DC Reply with quote

Hi Jerry,

Jerry Avins wrote:

Quote:
What do you mean by "close to DC"? If you limit your frequencies to
those above 40 Hz -- the lower limit of a telephone is about 300 Hz --
you need maybe 15 ms delay. For many applications, that's doable.

Well, my goal is to support data transmission which is DC to about 10
kHz for our system. I'm sure a 40 Hz cutoff would be acceptable but
wouldn't a 15 ms delay buffer @ 57600Hz kill my dsp with a 800+ tap
filter?

Cheers,
Aaron
Back to top
Al Clark
Guest





Posted: Fri Dec 09, 2005 5:16 pm    Post subject: Re: Applying hilbert transform close to DC Reply with quote

"Aaron" <aaron.low@iinet.net.au> wrote in news:1134104772.517055.8200
@z14g2000cwz.googlegroups.com:

Quote:
Hi Jerry,

Jerry Avins wrote:

What do you mean by "close to DC"? If you limit your frequencies to
those above 40 Hz -- the lower limit of a telephone is about 300 Hz --
you need maybe 15 ms delay. For many applications, that's doable.

Well, my goal is to support data transmission which is DC to about 10
kHz for our system. I'm sure a 40 Hz cutoff would be acceptable but
wouldn't a 15 ms delay buffer @ 57600Hz kill my dsp with a 800+ tap
filter?

Cheers,
Aaron




It seems to me that the first thing you can do is reduce the sample rate.
If your highest frequency of interest is 10k, you don't need to sample at
57600. You could decimate by 2.

I don't know what DSP you are using but the computational requirements
might not be a problem. A typical SHARC DSP operating at 200MHz (not the
fastest SHARC) can perform (200M x 2)/57600 = 6944 instructions per
sample assuming SIMD. You can perform similar calculations to determine
whats possible with whatever target DSP you are looking at.



--
Al Clark
Danville Signal Processing, Inc.
--------------------------------------------------------------------
Purveyors of Fine DSP Hardware and other Cool Stuff
Available at http://www.danvillesignal.com
Back to top
Vladimir Vassilevsky
Guest





Posted: Fri Dec 09, 2005 5:16 pm    Post subject: Re: Applying hilbert transform close to DC Reply with quote

Aaron wrote:

Quote:
There is no silver bullet. You can do Hilbert transform using multirate
filterbanks; that takes less computation.


That's useful information but as Al pointed out it won't really solve
my problem as I still require the phase shift close to DC and multirate
filterbanks will still suffer from the same delay requirements? (note:
I've never used them before though).

There is no method to avoid the delay if you need the 90 degree shift.
This is the fundamental limitation. Any method will require the delay of
about 1/4 period of the lowest frequency at least; the difference can be
in the computing efficiency only.


Quote:

I've been experimenting with upshifting the baseband signal to some
arbitary frequency

You can do it this way however you have to build the bandpass filters to
separate /+/ and /-/ spectrum. That is not easier then making 90 degree
shift.


Pls let me describe this a little since I'm new to this I've probably
made a mistake.

The correct way to do 90 shift by band shifting is:

1. multiply the signal by exp(iwt)
2. filter the upper (or lower) sidebands from I and from Q. This is
where the filters come in and where the delay will be incurred.
3. multiply the signal by exp(iwt) -> back to the baseband you have I and Q.

Quote:
In matlab...

Matlab is a worseless toy for rookies.

BTW, If your signal is already digitized why can't you just use a modem
to transmit it in the digital format?

Vladimir Vassilevsky

DSP and Mixed Signal Design Consultant

http://www.abvolt.com
Back to top
Aaron
Guest





Posted: Mon Dec 12, 2005 9:16 am    Post subject: Re: Applying hilbert transform close to DC Reply with quote

Al Clark wrote:

Quote:
It seems to me that the first thing you can do is reduce the sample rate.
If your highest frequency of interest is 10k, you don't need to sample at
57600. You could decimate by 2.

Yes...that will definitely help and may be required with what little
processing power I have to play with.

Thanks,
Aaron
Back to top
Aaron
Guest





Posted: Mon Dec 12, 2005 9:16 am    Post subject: Re: Applying hilbert transform close to DC Reply with quote

Vladimir Vassilevsky wrote:

Quote:
The correct way to do 90 shift by band shifting is:

1. multiply the signal by exp(iwt)
2. filter the upper (or lower) sidebands from I and from Q. This is
where the filters come in and where the delay will be incurred.
3. multiply the signal by exp(iwt) -> back to the baseband you have I and Q.

ic....sort of. ill have to try it.

Quote:
Matlab is a worseless toy for rookies.

Unfortunately this describes me perfectly.....the rookie part that is

Quote:
BTW, If your signal is already digitized why can't you just use a modem
to transmit it in the digital format?

I'm working on a modem :)

Thanks,
Aaron
Back to top
 
Post new topic   Reply to topic    CASTalk.com Forum Index -> DSP All times are GMT
Page 1 of 1

 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum




VoIP Electronics Powered by phpBB