[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Discuss-gnuradio] gnuradio 101
From: |
Eric Blossom |
Subject: |
Re: [Discuss-gnuradio] gnuradio 101 |
Date: |
Tue, 23 Aug 2005 10:30:51 -0700 |
User-agent: |
Mutt/1.5.6i |
On Tue, Aug 23, 2005 at 12:02:43PM -0400, Krzysztof Kamieniecki wrote:
> Quoting Martin Dvh <address@hidden>:
>
> > cswiger wrote:
> > > One thing I don't understand tho: if a typical mux of
> > > 0xF0F0F0F0 feeds zeros to all DDC Q inputs, and ADC 0
> > > to all DDC I inputs, nchannels = 1 sends data from DDC 0
> > > only, and looking at the DDC block diagram in figure 3 at:
> > >
> > > http://www.gnu.org/software/gnuradio/doc/exploring-gnuradio.html
> > >
> > > how is it we can a complex stream to the software? Why aren't
> > > all the Q values also 0 ( zero * nco-cos ) ? Is the
> > > decimating low pass filter also a hilbert?
Good questions. Short answer: The picture is wrong.
> > I think simple complex math:
> > out.complex=ADC.complex * NCO.complex
> > out.real=ADC.real*NCO.real - ADC.imag*NCO.imag
> > out.imag=ADC.imag.NCO.real + ADC.real*NCO.imag
> >
> > ADC.imag=0 ==>
> > out.real=ADC.real*NCO.real
> > out.imag=ADC.real*NCO.imag
This is correct. The picture is wrong (please feel free to make a new
one). It is effectively a complex multiplication, although it's
implemented with the CORDIC algorithm.
> And NCO.imag is only zero if the NCO frequency has not been changed from zero
> since USRP powerup.
This used to be true. A while ago we added a method to set the ddc
phase, and the library code resets it to zero when the device is
opened.
from usrp_standard.h:
/*!
* \brief Set the digital down converter phase register.
*
* \param channel which ddc channel [0, 3]
* \param phase 32-bit integer phase value.
*/
bool set_ddc_phase(int channel, int phase);
Eric