DSPRelated.com
Forums

Hilbert Transform code

Started by novatron1_2 July 4, 2008
Randy Yates wrote:
> "novatron1_2" <novatron1_2@hotmail.com> writes: > >> I'm trying to separate a data signal of ~800Hz from a carrier wave which is >> ~2000Hz. As both frequencies vary slightly over time I was hoping to use >> envelope detection to strip off the carrier, my sample rate is 22560. >> >> I've read about taking the Hilbert transform of the input signal and then >> squaring this and adding it to the square of the input signal, before >> finally taking a square root of the result to find the envelope. >> >> i.e envelope = sqr(( Hilbert_transfrom* >> Hilbert_transfrom)+(org_sig*org_sig)) >> >> I'm writing the software in Visual Basic 6.0, but I'm really struggling to >> convert the Hilbert transform from pure mathematics into code. >> >> I would appreciate it if someone could possible help me in writing the >> code. >> >> Stuart > > Stuart, > > What type of modulation is being used?
When you answer Randy's question, we can get down to helping you demodulate the signal. If it is AM, we can show you how to implement a Hilbert transformer and discuss other approaches. Jerry -- Engineering is the art of making what you want from things you can get. &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;
On Jul 4, 12:30 pm, "novatron1_2" <novatron...@hotmail.com> wrote:
> I'm trying to separate a data signal of ~800Hz from a carrier wave which is > ~2000Hz. As both frequencies vary slightly over time I was hoping to use > envelope detection to strip off the carrier, my sample rate is 22560. > > I've read about taking the Hilbert transform of the input signal and then > squaring this and adding it to the square of the input signal, before > finally taking a square root of the result to find the envelope. > > i.e envelope = sqr(( Hilbert_transfrom* > Hilbert_transfrom)+(org_sig*org_sig)) > > I'm writing the software in Visual Basic 6.0, but I'm really struggling to > convert the Hilbert transform from pure mathematics into code. > > I would appreciate it if someone could possible help me in writing the > code. > > Stuart
Hi You can do many things to compute Hilbert transform. the simplest is to use a FFT (you should find good libraries for Visual Basic) with an analytic signal "signal + 0i" and in the F space setting zeros from -pi to 0 and do again a FFT to the time domain, then you should have a Hilbert Transform. Juan