discuss-gnuradio
[Top][All Lists]
Advanced

[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




reply via email to

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