Io_type configuration for uhd.single_usrp_source

Dear all,

I am using USRP N200 +UHD with the LFRX daughter board to detect a
100kHz coded sinusoid wave then down convert the signal to baseband to
see the coding method. The flow graph I am using is:

u2=uhd.single_usrp_source(device_addr=“addr=192.168.10.2”,io_type=uhd.io_type_t.COMPLEX_INT16,num_channels=1)
decim_coeffs = gr.firdes.low_pass(1.0,
60e3, #sampling frequency
30e3, #cutoff frequency
.1e3,
gr.firdes.WIN_BLACKMAN)
decim_filter = gr.fir_filter_fcc(1,decim_coeffs)
dst=gr.file_sink(gr.sizeof_gr_complex, filename)
connect(u2, decim_filter,dst)

I am curious about how to configure the io_type_t for the receiver?
COMPLEX_INT16 represents complex signed integer, 16-bit integer. I found
only this io type could match the type provided for the input of
fir_filter. Do I misunderstand something for this io type selection?

Really appreciate any of your help

Thanks,
Yan

On 07/20/2011 12:24 PM, Yan N. wrote:

dst=gr.file_sink(gr.sizeof_gr_complex, filename) connect(u2,
decim_filter,dst)

I am curious about how to configure the io_type_t for the receiver?
COMPLEX_INT16 represents complex signed integer, 16-bit integer. I
found only this io type could match the type provided for the input
of fir_filter. Do I misunderstand something for this io type
selection?

well, sizeof(complex) == sizeof(float), which means gnuradio will
let you connect those blocks, but that definitively wont work.

For the UHD source, use COMPLEX_FLOAT32. For the FIR filter, use complex
input.

gnuradio-companion might help you a lot:

-josh

well, sizeof(complex) == sizeof(float), which means gnuradio will
let you connect those blocks, but that definitively wont work.

For the UHD source, use COMPLEX_FLOAT32. For the FIR filter, use complex
input.

gnuradio-companion might help you a lot:
GNU Radio - Wikipedia

I appreciate your reply. I changed the io type for UHD source and type
of the input for FIR filter, and got them matched, which leads the final
result to the right direction, but still not quite right. It is just a
simple trial to detect a 100kHz sinusoid signal and down convert the
frequency to 1kHz. I am expecting a 1kHz sinusoid wave from plotting,
but it only gave some irregular oscillation at the beginning. I am still
confused that what could be the problem here?

u2=uhd.single_usrp_source(device_addr=“addr=192.168.10.2”,io_type=uhd.io_type_t.COMPLEX_FLOAT32,num_channels=1)
u2.set_samp_rate(250e3)
treq = uhd.tune_request(freq)
tr = u2.set_center_freq(self.treq)
decim_coeffs = gr.firdes.low_pass(1.0,
5e3, #sampling frequency
2e3, #cutoff frequency
.1e3,
gr.firdes.WIN_BLACKMAN)
decim_filter = gr.fir_filter_ccf(1,decim_coeffs)
dst = gr.file_sink(gr.sizeof_gr_complex,filename)
connect(self._u2, self.decim_filter,self.dst)

Thank you so much for your help

with thanks,
Yan

On 07/21/2011 08:28 AM, Yan N. wrote:

I strongly suggest that you first experiment with the FIR filter using
gnuradio companion. You can do 100% simulation (signal source, noise
source), no hardware required.

-josh

On Thu, 2011-07-21 at 11:28 -0400, Yan N. wrote:

dst = gr.file_sink(gr.sizeof_gr_complex,filename)
connect(self._u2, self.decim_filter,self.dst)

Yan,

Why is your filter sampling frequency 5kHz, when your USRP sample rate
is 250kHz?

–n