Marcus,


    Thanks to you and the others who have been helping me, I've managed to 
understand this much!  Your explanations are what I really needed, once I 
understood what to really ask.  I think all of my questions regarding 
decimation have been answered.



    Now, I'm trying to fully understand the VCO.  I believe that the FPGA is 
providing the clock source directly via pin XTALP (leaving XTALN floating).  I 
am not certain what is commanding each divider in the RFIC.  I believe the 
overall goal is for the FPGA to command a baseband rate and then check to see 
whether the RFIC could achieve that exact rate.  I read somewhere that the 
baseband divider can be set from 2 to 64.  I'm not worried about the DAC 
divider, but I want to understand the one downstream of the baseband and before 
the final output mux.  I imagine the final mux rate is the MCR that you 
explained, so I want to understand what drives the chain from the output of the 
FPGA to the output of the RFIC.



    Since the only detailed RFIC diagram I have is of the AD9361--and, from my 
cursory inspection, the AD9364 data sheet doesn't seem to deviate in the 
aspects that concern me--I am assuming that I have captured the entire clock 
chain.  Please correct me if I am missing any important steps in the process.



Thanks again!

________________________________
From: Marcus Müller [marcus.muel...@ettus.com]
Sent: Thursday, March 01, 2018 2:42 PM
To: Stern, Joseph; usrp-users@lists.ettus.com
Subject: Re: [USRP-users] USRP-users help needed

Hi Joseph,

to avoid confusion, I'll directly comment within your text:
On Thu, 2018-03-01 at 16:03 +0000, Stern, Joseph via USRP-users wrote:
I wanted to gain a general understanding of the process,
specific to our B200mini hardware, so my approach understandably seems like the 
Y and not the X in your statement.

Ah, that's nice! Frankly, I'm pretty amazed how easily you're progressing 
through all this – USRPs aren't really trivial systems, DSP-wise! Nice!

  With that said, please consider the following points that I am trying to 
understand:

  -  What total decimation is performed?

That depends.
You can adjust two things with the B2xx series:
1. The "user" sampling rate and
2. What we call the master clock rate.

The "master clock rate" is the actual rate of baseband samples coming out of 
the frontend IC. Consider it the physical sampling rate.
It can be pretty much any (integer) multiple of your user sampling rate, which 
usually is what you care about as someone who needs to process these samples. 
So, your decimation rate can be any integer (including 1) up to 512, with 
exceptions (for the upper half of decimations, you can only use divisable-by-4 
integers, but really, who would need e.g. a 301 decimation, if one can adjust 
the master clock rate, too?).

The master clock rate can either be delibarately chosen to be a multiple of the 
wanted sampling rate (up to 61.44 MHz in the single-channel case), and the 
analog bandwidth of the frontend will be reduced to avoid aliasing.

So, the total decimation is master clock rate / sampling rate. You don't 
explicitly configure decimation, though – you specify a sampling rate and an 
MCR, and UHD calculates the decimation factor (or complains, if your sampling 
rate doesn't cleanly divide your MCR).
  -  Where does undersampling occur?

not at all!


    I understand that the RFIC is being commanded by the FPGA to apply the 
necessary clock rate and decimation in order to accommodate the requested 
center frequency input within the limits of the output data rate.
So, here is where things get tricky: No, we're not talking about decimation in 
the RFIC, we're talking about decimation in the FPGA.

The RFIC itself is a complex beast and does, indeed, internally do 
oversampling, but you won't find much explanation or even presence of that in 
our source code – it's what the AD936x does internally. For the USRP, the 
baseband rate == master clock rate == pre-decimation rate.

     I don't yet understand the decimation that occurs in the DSP
chain within the FPGA during the CORDIC and CIC algorithmic computations and 
what other decimation occurs.

The cordic is only used to do frequency shifting *prior* to decimation. That 
allows you to select arbitrare user sampling rate wide parts of the master 
clock rate wide Nyquist band.

The Decimation chain in the FPGA is simply halfband filters (a cascade of two 
of them, if I remember correctly), following a CIC decimator. All these three 
filters are inherently decimators, i.e. the Halfbands only pass through half 
rate if enabled, and the CIC passes through an adjustable 1/N of its input rate.

So, the decimation is first divided by 2, if possible; if that's the case, one 
of the halfband decimators is enabled. This happens again, so that the CIC is 
used to accomodate the rest of the decimation. Examples:


  *   MCR=40 MHz, sampling rate = 20 MHz -> CIC bypassed, first HB enabled 
(==rate 1/2), second HB bypassed
  *   MCR=45 MHz, sampling rate = 9 MHz -> CIC enabled (rate 1/5), first HB 
bypassed, second HB bypassed (don't do odd MCR/f_sample! You'll see the CIC's 
rolloff)
  *   MCR=32 MHz, sampling rate = 500 kHz -> CIC enabled (rate 1/16), first HB 
enabled, second HB enabled

> I also can't determine yet whether undersampling is occurring and where.

We might be using different terminology, but we never do undersampling. This is 
a direct conversion architecture that adheres to Nyquist in its naive form at 
every step.
Could you explain where you think undersampling comes into play?

  I really just need to understand the overall output.

You're now deeper in our device architecture than 99% of customers :) (and I, 
quite frankly, like that approach: better to spend a little more time 
understanding things than doing something wrong.)
>From most user's perspective, you just tell the USRP the sampling rate you 
>want and a center frequency, and it gives them a satisfactory baseband 
>representation of [f_center-f_sample/2 ; f_center + f_sample/2].

Does that answer most of your questions?

Best regards,
Marcus Müller

This message and any enclosures are intended only for the addressee.  Please 
notify the sender by email if you are not the intended recipient.  If you are 
not the intended recipient, you may not use, copy, disclose, or distribute this 
message or its contents or enclosures to any other person and any such actions 
may be unlawful.  Ball reserves the right to monitor and review all messages 
and enclosures sent to or from this email address.
_______________________________________________
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

Reply via email to