Trouble with SSB demod of real signal

Hi,

I’m exploring the LF spectrum (< 500 kHz) using a USRP N210+LFRX+active
loop antenna, and GR 3.7. I’m pulling my hair out trying to down
convert the USB as I can’t get the LSB rejected. My GRC flow graph is
here:

https://dl.dropboxusercontent.com/u/49570443/test.grc.png

It is based on figure 5 of below; quadrature, direct down conversion
with Hilbert transform.

http://www.arrl.org/files/file/Technology/tis/info/pdf/98qex003.pdf

I’m taking the real output (i.e. the DAC hooked to the LFRX channel 1)
of the N210 at 25 Msps with 0 Hz DDS, then low-pass filtering at 550 kHz
and decimating to 1.25 Msps. This seems to provide better rejection of
the AM band than using the DDS tuning internal to the N210.
I then use the translating FIR filter to tune a 2 kHz passband,
decimated to 5 ksps.

Problem comes when I try to do the LSB rejection with the Hilbert. I
think I’m using it correctly; I have tried swapping the Re and Im
outputs of the Hilbert with no luck. Maybe there is something
conceptually I am missing since I am starting with a real signal. I
have done SSB demod with complex USRP signal with no problems.

Any ideas of what I am doing wrong? This should be basic stuff but I’m
not getting something.

Thanks,
Lou

Hi Lou - the diagram you sent isn’t going to perform a single-signal
conversion.
Taking just the real part of the received signal (and throwing away the
imaginary part)
gets rid of information that distinguishes negative frequency components
from
positive frequency components. After that point there is no possibility
to separate out
the LSB components from the USB components.

You will need a bit more complicated design, I’ve used the following
configuration for
implementing a phasing type receiver. There are other ways as well, the
Weaver method,
and a filter method (using complex taps to a filter).

http://www.tapr.org/~n5eg/index_files/DCC_2013_Gnuradio_Presentation%20-%20Rev%205.pdf

Look at about slide 14.

– Tom, N5EG


From: Louis B. [email protected]
To: GNURadio List Discussion [email protected]
Sent: Sunday, February 16, 2014 9:10 AM
Subject: [Discuss-gnuradio] Trouble with SSB demod of real signal

Hi,

I’m exploring the LF spectrum (< 500 kHz) using a USRP N210+LFRX+active
loop antenna, and GR 3.7. I’m pulling my hair out trying to down convert
the USB as I can’t get the LSB rejected. My GRC flow graph is here:

https://dl.dropboxusercontent.com/u/49570443/test.grc.png

It is based on figure 5 of below; quadrature, direct down conversion
with Hilbert transform.

http://www.arrl.org/files/file/Technology/tis/info/pdf/98qex003.pdf

I’m taking the real output (i.e. the DAC hooked to the LFRX channel 1)
of the N210 at 25 Msps with 0 Hz DDS, then low-pass filtering at 550 kHz
and decimating to 1.25 Msps. This seems to provide better rejection of
the AM band than using the DDS tuning internal to the N210.
I then use the translating FIR filter to tune a 2 kHz passband,
decimated to 5 ksps.

Problem comes when I try to do the LSB rejection with the Hilbert. I
think I’m using it correctly; I have tried swapping the Re and Im
outputs of the Hilbert with no luck. Maybe there is something
conceptually I am missing since I am starting with a real signal. I have
done SSB demod with complex USRP signal with no problems.

Any ideas of what I am doing wrong? This should be basic stuff but I’m
not getting something.

Thanks,
Lou

Tom,

Thanks for that link. The LFRX board has two separate inputs. I’m only
using the one hooked to the I ADC, so the Q ADC is just noise, thus I
discard the imaginary output of the UHD source. The UHD source center
frequency is set to 0 Hz, so I’m direct sampling with no downconversion
in the FPGA. I’m moving what’s done in the FPGA into GNU Radio to get
better rejection, thus I’m really not discarding the imaginary part
since there isn’t one until after the translating FIR.

I could drive both the I and Q ADC by splitting my received signal, but
then I have to deal with the imbalance between LFRX channels.

Thanks,

Lou, KD4HSO

Tom,

OK I got it fixed after looking at your link. See diagram below:

https://dl.dropboxusercontent.com/u/49570443/test.grc_fixed.png

I was using the Delay block to give me a 65 sample delay to account for
the delay in the Hilbert. This will not work as I assume there is more
delay in the Hilbert than just the 65 taps. The real output of the
Hilbert is a properly delayed version of the input, so I replaced the
delay with that. It now works well What’s shown in the diagram is LSB
though, not USB.

Thanks,
Lou KD4HSO

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs