I’m trying to understand what the DDC block is doing, because it doesn’t appear 
to be working like I would expect. I’m somewhat new to DSP in general, so it’s 
possible I have a fundamental misconception here.

Let’s say I have an RFNoC radio rx block connected to a DDC, a streamer, and 
then out to a QT Frequency Sink. My radio is running at 16 MS/sec, and I want 
the DDC to output at 400 KS/sec, a decimation factor of 40. My understanding 
here is that my 16 MHz bandwidth should then be represented as a 400 kHz 
bandwidth in my FFT plot - this is the behavior I would get if I used, say the 
rational resampler block in gnuradio. So if I shifted my frequency center by 4 
MHz at the receiver, that would show up as a 4 MHz/40 = 100 kHz shift in my FFT 
if I originally had a peak at the center.

This doesn’t seem to be happening with the DDC block. It looks more like it’s 
truncating, rather than downsampling. For example, I apply a 100 kHz shift to 
my receiver, and I get a 100 kHz shift in my peak in my FFT.

Diving into the code, I see that there is a fair amount of difference in the 
front facing functions using the gnuradio libraries than what I see in in the 
USRP hardware manual. For example, get_ and set_input_rate() are not available. 
When I call “ettus_rfnoc_ddc_0.get_int_property(‘decim’)”, it always returns a 
rate of 1 regardless of what my input/output rates are set to. Changing this 
value with set_int_property() doesn’t appear to have any effect, other than 
changing the number returned by the above function. What’s going on here?
_______________________________________________
USRP-users mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to