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?
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.
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?
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.