discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] Demod not working with Deinterleave


From: abbasi9999
Subject: Re: [Discuss-gnuradio] Demod not working with Deinterleave
Date: Fri, 9 Apr 2010 19:37:16 -0700 (PDT)

Hi

Have you solved your problem? because I'm facing the same problem.
I think in your code there are two mistakes:
1. the mux value should be set to 00230001 not 10321032.
2. may be you are missing :
self._rx_subdev = self._u.db(0) + self._u.db(1)

Anyway, I'm not sure. but because when i do :
usrp.determine_rx_mux_value(self._u,(0,0))- i get ---> 1  ----->0x01
usrp.determine_rx_mux_value(self._u,(1,0))- i get ---> 35 ---->0x23

thanks


Smart RoR wrote:
> 
> Hi.
> 
> 1)
> I have modified benchmark_rx.py/receive_path.py to allow it to receive
> two channels from two RFX2400 daughterboards (I aim to use the second
> channel for sensing).
> 
> As suggested by the examples/mailing list, I inserted a deinterleave
> block after the source to retrieve streams from each channel, like so
> [my two receive channels are RFX2400 "A" side, TX/RX plug as channel 0,
> RFX2400 "B" side, TX/RX plug as channel 1.)
> 
> self.u = usrp.source_c(which = 0, decim_rate = self._decim, nchan = 2,
> mux = gru.hexint(0x10321032), fusb_block_size = self._fusb_block_size,
> fusb_nblocks = self._fusb_nblocks, fpga_filename="std_2rxhb_2tx.rbf")
> self.di = gr.deinterleave(gr.sizeof_gr_complex)
> 
> ....
> (rx_receive_path = essentially receive_path without the source at the
> front)
> 
> self.rx_receive_path = rx_receive_path(self._demod_class,
> self._rx_callback, options)
> 
> ....
> 
> self.connect(self.u, self.di)
> self.connect( (self.di, self._rx_chan), self.rx_receive_path)
> 
> I can get this to run.
> 
> However when my transmitter usrp runs, my new receiver picks up junk
> packets. The receiver demodulates the packets so that all the data is
> messed up (ok = False, data nonsense). I have confirmed the transmitter
> and receiver have matched bitrates and I am certain my mux setting is
> correct. I suspect there is a problem with dbpsk demodulation of the
> source stream.
> 
> My rx_receive_path is (i.e. receive_path):
> 
>         # Get demod_kwargs
>         demod_kwargs = demod_class.extract_kwargs_from_options(options)
> 
>         # Design filter to get actual channel we want
>         sw_decim = 1 #sw_decim stands for "software decimation"
>         chan_coeffs = gr.firdes.low_pass (1.0,                  # gain
>                                           sw_decim *
> options.samples_per_symbol, # sampling rate
>                                           1.0,                  #
> midpoint of trans. band
>                                           0.5,                  # width
> of trans. band
>                                           gr.firdes.WIN_HANN)   # filter
> type
> 
>   '''
>   vector< float > gr.firdes::low_pass ( double      gain,
>                                       double      sampling_freq,
>                                       double      cutoff_freq,
>                                       double      transition_width,
>                                       win_type    window = WIN_HAMMING,
>                                       double      beta = 6.76)
> [static]
>   '''
> 
>         # Decimating channel filter
>         # complex in and out, float taps
>         self.chan_filt = gr.fft_filter_ccc(sw_decim, chan_coeffs)
> 
>         # receiver
>         self.packet_receiver = \
>             blks2.demod_pkts(demod_class(**demod_kwargs),
>                              access_code=None,
>                              callback=rx_callback, #no doubt this object
> calls rx_callback's function whenever a packet arrives, and sets the
> packet
>                              threshold=-1)     #blks2 is calling a
> function in gnuradio/gnuradio-core/src/python/ gnuradio/blksimpl/pkt.py
> 
>         self.connect(self, self.chan_filt, self.packet_receiver) #io
> signature
> 
> This is identical to receive_path.py.
> 
> Why would this receiver code not work when I introduce
> deinterleaving/two channels? (receiver demodulates to give junk data)
> 
> 
> 
> 
> 
> 
> 
> 
> 2)
> Also I will want to have my two RX channels operate at different
> decimation rates. I will want to introduce extra software decimation in
> rx_receive_path. This is achieved by modifying chan_filt.
> 
> Can someone explain the chan_coeffs in chan_filt. Specifically how have
> the chan_coeffs arguments (sampling rate, cutoff frequency, etc.) been
> derived for receive_path?
> 
> Will it be sufficient for instance if my usrp decim is 16 and I want a
> rx decim of 32, to specify e.g.: (sw_decim = 32/16 = 2 -> extra software
> decimation factor)
> 
>         # Design filter to get actual channel we want
>         sw_decim = 2 #sw_decim stands for "software decimation"
>         chan_coeffs = gr.firdes.low_pass (1.0,                  # gain
>                                           2 *
> options.samples_per_symbol, # sampling rate
>                                           1.0,                  #
> midpoint of trans. band
>                                           0.5,                  # width
> of trans. band
>                                           gr.firdes.WIN_HANN)   # filter
> type
> 
>   '''
>   vector< float > gr.firdes::low_pass ( double      gain,
>                                       double      sampling_freq,
>                                       double      cutoff_freq,
>                                       double      transition_width,
>                                       win_type    window = WIN_HAMMING,
>                                       double      beta = 6.76)
> [static]
>   '''
> 
>         # Decimating channel filter
>         # complex in and out, float taps
>         self.chan_filt = gr.fft_filter_ccc(2, chan_coeffs)
> -- 
> Posted via http://www.ruby-forum.com/.
> 
> 
> _______________________________________________
> Discuss-gnuradio mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
> 
> 

-- 
View this message in context: 
http://old.nabble.com/Demod-not-working-with-Deinterleave-tp23518611p28199629.html
Sent from the GnuRadio mailing list archive at Nabble.com.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]