8 bit samples have an odd spectrum

Hello,

a) Here is a screenshot of 16 bit noise @ 12 MHz:
http://img224.imageshack.us/img224/8981/16bitsb0.png

b) Here is a screenshot of the same noise with 8 bit samples:
http://img60.imageshack.us/img60/5852/8bitqg7.png

c) 8 bit noise, tuned to 12.5 MHz
http://img224.imageshack.us/img224/1596/8bitoffsetua5.png

My questions:

  1. Why does b) show a lobe while a) does not?
  2. Why do b) and c) show lobes at the same pixels (vs shifted .5 MHz)?

The spectrum should be entirely noise. The signal is from an antenna
plugged into a front end that brings 1.57542GHz (GPS L1) to 12MHz.

Thank you,

Chris

On Thu, Jul 10, 2008 at 10:39 PM, Chris S.
[email protected] wrote:

  1. Why does b) show a lobe while a) does not?
  2. Why do b) and c) show lobes at the same pixels (vs shifted .5 MHz)?

You may be seeing an artifact of the truncation of the ADC samples.
In 8-bit mode, only the upper 8-bits of the post-CIC samples are sent.
It’s possible that your analog noise floor is at or below the new,
higher LSB, and thus you get sinc-like sampling artifacts in the
frequency domain. Run usrp_fft.py with all the same parameters but in
scope mode with -S and see if the noise is just toggling the new LSB
(± 256). If increasing the gain makes an improvement, I’d bet this
is what it is. In effect, you’ve increased the quantization noise
floor by something like 48 dB ( 20*log10(256) ), and you’re seeing the
quantization noise spectrum.


Johnathan C.
Corgan Enterprises LLC
http://corganenterprises.com/

Johnathan C. wrote:

You may be seeing an artifact of the truncation of the ADC samples.

Johnathan:

Thank you, that’s exactly what it looks like. Adding USRP pga gain
didn’t help though. I’ll get back to the group…

Chris

Chris S. wrote:

lobe. Since it turns out the bottleneck for me is writing to the hard
drive, I’m happy removing the LSBs on the PC for now, but I’d love to
hear your ideas!

Look at the samples in the scope sink. Do you see a pattern of A A B B
C C D D…, meaning instead of unique samples, is every one repeated?
If so, it means that the halfband decimator is probably not being
bypassed properly.

Matt

Chris S. wrote:

lobe. Since it turns out the bottleneck for me is writing to the hard
drive, I’m happy removing the LSBs on the PC for now, but I’d love to
hear your ideas!

Also, for the comparison to be valid, you need to drop the bottom 8
bits, not 4. Remember that while the ADCs are 12 bits, we carry 16+
bits of precision throughout the signal processing.

Matt

Matt E. wrote:

Remember that while the ADCs are 12 bits, we carry 16+
bits of precision throughout the signal processing.

Matt,

How do you get 16 bits of precision from a 12 bit ADC? What does 16+
mean? I’m looking at the shorts coming from the USRP and I’m seeing
values in the range [-3296 3264] which implies more than 12 bits…
curious.

FYI, we supposedly tuned our front end to saturate the ADC 1% of the
time.

Thanks,

Chris

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Jul 11, 2008, at 11:24 AM, Chris S. wrote:

Matt E. wrote:

Remember that while the ADCs are 12 bits, we carry 16+ bits of
precision throughout the signal processing.

How do you get 16 bits of precision from a 12 bit ADC? What does
16+ mean? I’m looking at the shorts coming from the USRP and I’m
seeing values in the range [-3296 3264] which implies more than 12
bits… curious.

Decimation.

  • -Dan
    -----BEGIN PGP SIGNATURE-----
    Version: GnuPG v1.4.8 (Darwin)

iEYEARECAAYFAkh3p60ACgkQy9GYuuMoUJ5A2gCgzvVpt/bL4zoyqWv9dHEQN3bM
FBQAnjuxZb2N5n2MonvJERJRzZHRWuBY
=rn8P
-----END PGP SIGNATURE-----

Johnathan C. wrote:

You may be seeing an artifact of the truncation of the ADC samples.

Johnathan, others:

I believe this is not the case. When I download 16 bit samples from the
USRP and remove the 4LSBs myself, the spectrum looks normal. When I ask
the USRP for 8 bit samples, the spectrum shows a 1MHz wide sinc lobe.
Since it turns out the bottleneck for me is writing to the hard drive,
I’m happy removing the LSBs on the PC for now, but I’d love to hear your
ideas!

BTW, I’m using the 3.1.1 release and am downloading data to my hard
drive using my own c++ software linked against libusrp. I’ll try this
with cfile to be sure it’s not me.

Chris

Matt E. wrote:

Look at the samples in the scope sink. Do you see a pattern of A A B B
C C D D…, meaning instead of unique samples, is every one repeated?
If so, it means that the halfband decimator is probably not being
bypassed properly.

Here are the first 100 8 bit samples from the USRP and the first 100 16
bit samples divided by 256. You’ll notice that the 16 bit samples
divided by 256 are larger than the 8 bit samples. Both are collecting
ambient noise from my GPS antenna:

Here are the first 100 8 bit samples from the USRP:
-2
0
0
0
2
-1
0
0
0
-2
0
0
0
1
0
0
-1
-3
0
0
2
2
0
0
0
0
0
0
-3
0
0
0
2
2
0
0
2
0
0
0
0
1
0
0
-3
0
0
0
-6
0
0
0
-4
2
0
0
1
1
0
0
0
0
0
0
-2
0
0
0
3
0
0
0
-1
-2
0
0
1
-3
0
0
0
-1
0
0
0
-1
0
0
1
3
0
0
1
5
0
0
0
0
0
0

Here are the first 100 16 bit samples divided by 256:
-1
3
2
2
-3
-2
-3
1
-2
1
-1
-1
1
-2
2
3
-2
1
1
-4
0
-2
-2
-3
0
-4
0
-2
0
2
5
2
2
0
5
1
1
1
3
1
-2
-3
-3
-5
1
3
0
0
4
-1
3
3
1
-4
1
-2
-1
-2
1
-6
-3
-2
1
3
-4
-1
-5
-2
-2
3
0
-2
-1
-3
2
4
2
2
4
-2
1
4
-1
1
1
3
0
0
-2
-2
-3
-1
0
0
-3
2
-3
-3
-2
0