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]
