discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] Help using simple_framer and simple_correlator


From: Eric Blossom
Subject: Re: [Discuss-gnuradio] Help using simple_framer and simple_correlator
Date: Wed, 30 Nov 2005 15:15:17 -0800
User-agent: Mutt/1.5.6i

On Wed, Nov 30, 2005 at 05:05:04PM -0500, address@hidden wrote:
> I have generated an ASK (ON/OFF Keying) signal with the proper framing
> based on the simple_framer code and successfully demodulated the signal.  I
> can see the rectangular pulses representing my data on the usrp scope (some
> ripple due to the passband filter).  The scope shows the signal with the
> amplitude of the pulse going between  about 100 to 7500 magnitude with the
> varying pulse width.  Is this streaming data ready to be processed by the
> simple_correlator or does it need some signal conditioning (some type of
> conversions to bits/bytes).  The data is 8 x oversample are required. 
> 
> Do I need to do further signal processing before it's sent to
> simple_correlator?
> 
> I have been able to figure out what the simple_framer does but I am having
> a hard time understanding the simple_correlator code.
> 
> How the Oversample is used?  The only place I see it being used is in the
> code:

You might want to consider looking at the .h file too...



> Nor can I make out how this code counts bits?
> 
> // return number of set bits in the low 32 bits of x
> int 
> gr_count_bits32 (int x)
> {
>   int count = 0;
> 
>   for (int i = 0; i < 32; i++)
>     if (x & (1 << i))
>       count++;
> 
>   return count;
> }

The first time through the loop the test is

  if (x & (1 << 0))          // (1 << 0) == 0x00000001

The second time through the loop the test is

  if (x & (1 << 1))          // (1 << 1) == 0x00000002

The third time through the loop the test is

  if (x & (1 << 2))          // (1 << 2) == 0x00000004

...

The 32nd time through the loop the test is

  if (x & (1 << 31))         // (1 << 31) == 0x80000000


It tests a single bit each time through the loop.

Eric




reply via email to

[Prev in Thread] Current Thread [Next in Thread]