discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] USRP Dynamic Range and 8 Bit Problem


From: Firas Abbas
Subject: Re: [Discuss-gnuradio] USRP Dynamic Range and 8 Bit Problem
Date: Wed, 26 Dec 2007 01:56:46 -0800 (PST)

Hi Matt,

Kindly, see my comments below:

> Matt Ettus <address@hidden> wrote:
>
> Firas,
>
> Thanks for doing these tests.  See my comments inline.

Your are welcome. USRP is really great and we thank you for inventing it.

> The tones that you see on the 250 kHz measurements are harmonics.  They
> could be generated in the USRP, but they could also be there on your
> signal generator.  Can you take a look at your sig gen on a spectrum
> analyzer to check if you still see the harmonics?

I don't see any harmonics from signal generator using spectrum analyzer.

> When you make the following change:
> -   rx_dcoffset #(`FR_ADC_OFFSET_0)
rx_dcoffset0(.clock(clock),.enable(dco_en[0]),.reset(reset),.adc_in({adc0[11],adc0,3'b0}),.adc_out(adc0_corr),
> +   rx_dcoffset #(`FR_ADC_OFFSET_0)
rx_dcoffset0(.clock(clock),.enable(dco_en[0]),.reset(reset),.adc_in({adc0[11],adc0,4'b0}),.adc_out(adc0_corr),
>
> You need to take into account that the input to rx_dcoffset is only 16
> bits.  So in the second line, you are really sending in {adc0,4'b0}
> since the top repeated sign bit will be cut off.  This block takes an
> average of the DC offset and subtracts it form the signal.  This can
> cause an overflow if the signal is close to clipping and the DC offset
> is nonzero. The best thing to do here would be to make the rx_dcoffset
> block clip instead of wrap around.  That would save a digit here.

Actually, I'm weak when it concern working with FPGA and verlog. All what I did was implementing Don W. suggestions.
If you tell me where and what to change, I can do it and test it again. I think as you can see from the graphs (and Don expected this also) the changes in the adc_interface.v was better than the work done in the cordic.v but because of the level problem (at 8dBm), I ignored it.


> Also be careful with the values in cic_dec_shifter, since each one is
> used at only one decimation rate.  You need to test all the ones that
> change.

I tested from decimation 8 to decimation 256. All worked fine.

> I agree that the results do look better.  My concern is overflow when
> both I and Q are used.  If you can try all of these with max-strength
> signals on both I and Q at the same time, I would be more than happy to
> include the final results in the standard build of the FPGA.

Actually we are using I & Q (The DDC out is complex as you know) and the FFT used in usrp_fft.py is complex FFT.
However, If you prefer, I can repeat all the tests using DBSRX board, or please suggest what tests you would like me to do.


> Thanks for doing all this investigation,
> Matt

Best Regards,

Firas A.



reply via email to

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