[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Discuss-gnuradio] Two GMSK decoders with two msg queues
From: |
Eric Blossom |
Subject: |
Re: [Discuss-gnuradio] Two GMSK decoders with two msg queues |
Date: |
Sat, 14 Oct 2006 10:22:16 -0700 |
User-agent: |
Mutt/1.5.9i |
On Sat, Oct 14, 2006 at 01:04:43PM -0400, Dawei Shen wrote:
> Dear Guys
>
> Thank you for helping me out with my previous question about the
> general_work() function, I have done what I want with your help. Now I have
> another problem, here is a fraction of the code:
>
> self._rcvd_pktq_B = gr.msg_queue()
> self._rcvd_pktq_A = gr.msg_queue() # holds packets from the
> PHY
>
> self.separator = gr.separator_ccc ()
>
> self.gmsk_demod_A = gmsk2.gmsk2_demod(fg, *args, **kwargs)
> self.gmsk_demod_B = gmsk2.gmsk2_demod(fg, *args, **kwargs)
> self.correlator_A = gr.correlate_access_code_bb(access_code,
> threshold)
> self.correlator_B = gr.correlate_access_code_bb(access_code,
> threshold)
>
> self.framer_sink_A = gr.framer_sink_1(self._rcvd_pktq_A)
> self.framer_sink_B = gr.framer_sink_1(self._rcvd_pktq_B)
>
> fg.connect((self.fm_separator, 0), self.gmsk_demod_A,
> self.correlator_A, self.framer_sink_A)
> fg.connect((self.fm_separator, 1), self.gmsk_demod_B,
> self.correlator_B, self.framer_sink_B)
>
> gr.hier_block.__init__(self, fg, self.fm_separator, None)
> self._watcher_A = _queue_watcher_thread(self._rcvd_pktq_A,
> callbackA)
> self._watcher_B = _queue_watcher_thread2(self._rcvd_pktq_B,
> callbackB)
>
> Here the incoming signal is the sum of two baseband, complex GMSK signals.
> The block "self.separator" implements an algorithm to separate the two
> complex signals, recovering the original signals. Then two GMSK decoding
> streams are connected to the block, pretty much following what has been
> provided.
I'm not sure what you're trying to do with gr.separator_ccc. If you're
just trying to extract two different channels from the complex
baseband signal from the usrp, gr.freq_xlating_fir works great.
> However, my obeservation was that the two streams produce exactly the same
> packets (which are supposed to be produced only by A, not B, the output of B
> should be different). So could anyone help me check whether I am doing
> things correctly here?
Have you logged the two outputs of gr.separator_ccc into files and
examined them? Are they by any chance identical?
Eric