Wednesday, February 29, 2012

Re: [Discuss-gnuradio] Unable to find header decoding block

Dhrubo
,
demodulator->correlator->framer_sink

Correlator (input=1 bit-per-byte) detects the header while framer_sink separates the payload.
Output of correlator the 1st bit location represents input data (1 bit-per-byte) while 2nd bit location represents the detection of header. Framer sinks keeps on checking this 2nd bit and separates payload bits.

-Adeel
 

On Thu, Mar 1, 2012 at 1:37 AM, Dhrubojyoti Roy <dhrubojyoti.roy@gmail.com> wrote:
Dear All,

I was exploring the narrowband benchmark codes, I am not able to figure out how the header of an incoming packet is read. It appears that the connections made are:

uhd_receiver->[channel_filter->(demodulator->correlator->framer_sink)] where framer_sink has the received packet queue. However, the queue_watcher function is defined so to unmake the payload, which means that the header has been read apriori. I would like to know in which step the packet header is read, and how to access the signal processing block that does it.

I need to customize the packet header and add extra processing to the header decoding block. Any help would be much appreciated.

Thanks and Regards,
Dhrubo

--
Dhrubojyoti Roy
1655, North 4th Street, Apt-D
Columbus, OH-43201
Contact no.: +1-740-417-5890


_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Documentation generation using Sphinx

On Wed, Feb 29, 2012 at 6:50 PM, Tom Rondeau <tom@trondeau.com> wrote:
> On Wed, Feb 29, 2012 at 3:26 PM, Ben Reynwar <ben@reynwar.net> wrote:
>>
>> Hi all,
>>
>> Every 6 months or so I have a crack at getting some python level
>> documentation working.  In this attempt, I've generated documentation
>> for the gr and digital modules using sphinx.
>>
>> The generated html is at:
>> http://www.reynwar.net/gnuradio/sphinx/
>>
>> Source for the generated documentation is at:
>> https://github.com/benreynwar/gnuradio/tree/sphinx/docs/sphinx/source
>>
>> The documentation generation is semi-automatic.  I created files
>> containing lists of the objects we want to document, and organized
>> them into categories.  The actual documentation itself was pulled from
>> the docstrings automatically.  It would be necessary to manually edit
>> files when new blocks or other objects are added, so there is a danger
>> that this kind of documentation could become incomplete, however
>> because the content is taken from the docstrings it should remain
>> accurate, if not complete.
>>
>> Are there any objections to me continuing down this path of
>> documentation generation?  Any suggestions?
>>
>> Cheers,
>> Ben
>
>
> I'm a bit confused, Ben. What does this do that we aren't doing in the
> swig_docs work we put in last year?
>
> Tom
>

The swig_doc stuff got all the documentation from doxygen into the
python docstrings.

What I'm trying to do with this is to create some nice documentation
that we can put online that serves as a reference for someone
developing with gnuradio in python. I had a go at this last year, but
didn't get very far, partly because the swig_doc stuff wasn't fully
working. Now that the swig_docs is all sorted, it felt like a good
time to push with the documentation again.

Stuff that needs work is
- (*args, **kwargs) appears for some blocks but for others it
displays the parameters correctly.
- sometimes it displays __dummy_0_ for parameter types
- there a bunch of subpackages which I haven't touched yet

It'll take a bit of work to get this done, and unless people are on
board with the general concept of using sphinx to generate this
documentation, it doesn't make sense for me to spend time doing it,
which is why I'm bugging you all now with some half-finished
documentation.

Cheers,
Ben

_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Re: [Discuss-gnuradio] gr-digital and USRP sample rate

On Wed, Feb 29, 2012 at 10:33 AM, Nowlan, Sean <Sean.Nowlan@gtri.gatech.edu> wrote:

I noticed that the generic_mod_demod.py script in gr-digital uses a root-raised cosine filter taps and the polyphase filterbank arbitrary resampler block. I want to resample so that I can exactly hit a supported USRP transmit sample rate. What kind of issues will I encounter trying to do this? My understanding is that the USRP can only sample at integer divisions of the DSP rate (100MSPS for N200/210)., and that if a requested sample rate doesn't hit a supported rate exactly, it picks the nearest faster one. Is this correct?

 

Thanks,

Sean


The benchmark scripts take care of this, if I understand your question. We try to set the sample rate through the UHD interface, then ask for the actual sample rate it set. This is done in benchmark_tx where we use this info to set the actual samples per symbol (a real number) based on the the difference between the asked for and actual sample rate. It's this number that is then used in the generic_mod_demod code to set the sample rate in the pfb_arb_resampler to match the sample rates.

Tom

Re: [Discuss-gnuradio] Documentation generation using Sphinx

On Wed, Feb 29, 2012 at 3:26 PM, Ben Reynwar <ben@reynwar.net> wrote:
Hi all,

Every 6 months or so I have a crack at getting some python level
documentation working.  In this attempt, I've generated documentation
for the gr and digital modules using sphinx.

The generated html is at:
http://www.reynwar.net/gnuradio/sphinx/

Source for the generated documentation is at:
https://github.com/benreynwar/gnuradio/tree/sphinx/docs/sphinx/source

The documentation generation is semi-automatic.  I created files
containing lists of the objects we want to document, and organized
them into categories.  The actual documentation itself was pulled from
the docstrings automatically.  It would be necessary to manually edit
files when new blocks or other objects are added, so there is a danger
that this kind of documentation could become incomplete, however
because the content is taken from the docstrings it should remain
accurate, if not complete.

Are there any objections to me continuing down this path of
documentation generation?  Any suggestions?

Cheers,
Ben

I'm a bit confused, Ben. What does this do that we aren't doing in the swig_docs work we put in last year?

Tom
 

Re: [Discuss-gnuradio] New Block execution error

On Wed, Feb 29, 2012 at 5:26 PM, André Selva <andrefselva@gmail.com> wrote:
Hi!

I develop a new block to my own library (called gr_my_divisorcamadas_ff) . The compilation runs successfully, but when I execute a flow graph with any block from the library, I got the following message:

Traceback (most recent call last):
  File "/home/rt-dsp/Desktop/Howtowrite/gr-my-basic/top_block.py", line 14, in <module>
    import gr_my
  File "/usr/local/lib/python2.7/dist-packages/gr_my/__init__.py", line 40, in <module>
    from gr_my_swig import *
  File "/usr/local/lib/python2.7/dist-packages/gr_my/gr_my_swig.py", line 24, in <module>
    _gr_my_swig = swig_import_helper()
  File "/usr/local/lib/python2.7/dist-packages/gr_my/gr_my_swig.py", line 20, in swig_import_helper
    _mod = imp.load_module('_gr_my_swig', fp, pathname, description)
ImportError: /usr/local/lib/libgnuradio-gr_my-3.3.0.so.0: undefined symbol: _ZTV23gr_my_divisorcamadas_ff



Even if I delete the reference from the new block in all make files and re-compile the library, the error still persist.

Any ideas?


Best Regards,
--
André F. B. Selva -

We're going to need more information. Are you using cmake or autotools (Makefile.am) to do this? Are you sure you're editing the .cc, .h, and .i files, AND are you making sure that the relevant files in your build system are updated with the correct information?

The error just sounds like you haven't gotten all of the files updated correctly.

Tom

[Discuss-gnuradio] Submission to academic papers : Emulation of a Radio Link by means of Software Radio

Just to inform the mailing list that I uploaded the PDF slides of my degree thesis in the academic papers section. Here's a little description as reported in the page :

Title : Emulation of a Radio Link by means of Software Radio

The goal of my degree thesis was to build an open source tool, the gr-bertool, for the estimation (computational and "real-time") of the digital modulations Bit Error Rate (BER) both in the wired and wireless channels. It also provides complementary tools to show how the most common audio and video file formats are affected by digital modulations over the simulated transmission channels.

I'd like very much to have feedback from all the community for my work, so I can eventually improve it. Thanks in advance.

Best Regards,

          Arturo Rinaldi

[Discuss-gnuradio] Update to build-gnuradio

Minor update to build-gnuradio. It now includes "tkinter" or
"python-tk" in the depends installation phase, to support the UHD
GUI-based firmware update apps. Can't understand how it's gone so
long without that.


--
Marcus Leech
Principal Investigator
Shirleys Bay Radio Astronomy Consortium
http://www.sbrac.org

_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Re: [Discuss-gnuradio] Documentation generation using Sphinx

Hi Ben - I like the look of the generated HTML much more than that done by Doxygen. That said, there is a serious deficiency ... maybe this is the "continuing down this path" of which you speak: Is there any way for specific blocks to get sphinx to generate actual arguments? "gnuradio.gr.fft_filter_ccc(*args, **kwargs)" isn't very useful, but "gnuradio.gr.fft_filter_ccc(vector < gr_complex > taps)" would be (if that's what the actual prototype is; I don't remember it exactly right now). Nice job; I say to keep it up ... - MLD

On Feb 29, 2012, at 3:26 PM, Ben Reynwar wrote:
> Every 6 months or so I have a crack at getting some python level
> documentation working. In this attempt, I've generated documentation
> for the gr and digital modules using sphinx.
>
> The generated html is at:
> http://www.reynwar.net/gnuradio/sphinx/
>
> Source for the generated documentation is at:
> https://github.com/benreynwar/gnuradio/tree/sphinx/docs/sphinx/source
>
> The documentation generation is semi-automatic. I created files
> containing lists of the objects we want to document, and organized
> them into categories. The actual documentation itself was pulled from
> the docstrings automatically. It would be necessary to manually edit
> files when new blocks or other objects are added, so there is a danger
> that this kind of documentation could become incomplete, however
> because the content is taken from the docstrings it should remain
> accurate, if not complete.
>
> Are there any objections to me continuing down this path of
> documentation generation? Any suggestions?


_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

[Discuss-gnuradio] New Block execution error

Hi!

I develop a new block to my own library (called gr_my_divisorcamadas_ff) . The compilation runs successfully, but when I execute a flow graph with any block from the library, I got the following message:

Traceback (most recent call last):
  File "/home/rt-dsp/Desktop/Howtowrite/gr-my-basic/top_block.py", line 14, in <module>
    import gr_my
  File "/usr/local/lib/python2.7/dist-packages/gr_my/__init__.py", line 40, in <module>
    from gr_my_swig import *
  File "/usr/local/lib/python2.7/dist-packages/gr_my/gr_my_swig.py", line 24, in <module>
    _gr_my_swig = swig_import_helper()
  File "/usr/local/lib/python2.7/dist-packages/gr_my/gr_my_swig.py", line 20, in swig_import_helper
    _mod = imp.load_module('_gr_my_swig', fp, pathname, description)
ImportError: /usr/local/lib/libgnuradio-gr_my-3.3.0.so.0: undefined symbol: _ZTV23gr_my_divisorcamadas_ff



Even if I delete the reference from the new block in all make files and re-compile the library, the error still persist.

Any ideas?


Best Regards,
--
André F. B. Selva -


[Discuss-gnuradio] Unable to find header decoding block

Dear All,

I was exploring the narrowband benchmark codes, I am not able to figure out how the header of an incoming packet is read. It appears that the connections made are:

uhd_receiver->[channel_filter->(demodulator->correlator->framer_sink)] where framer_sink has the received packet queue. However, the queue_watcher function is defined so to unmake the payload, which means that the header has been read apriori. I would like to know in which step the packet header is read, and how to access the signal processing block that does it.

I need to customize the packet header and add extra processing to the header decoding block. Any help would be much appreciated.

Thanks and Regards,
Dhrubo

--
Dhrubojyoti Roy
1655, North 4th Street, Apt-D
Columbus, OH-43201
Contact no.: +1-740-417-5890

[Discuss-gnuradio] Documentation generation using Sphinx

Hi all,

Every 6 months or so I have a crack at getting some python level
documentation working. In this attempt, I've generated documentation
for the gr and digital modules using sphinx.

The generated html is at:
http://www.reynwar.net/gnuradio/sphinx/

Source for the generated documentation is at:
https://github.com/benreynwar/gnuradio/tree/sphinx/docs/sphinx/source

The documentation generation is semi-automatic. I created files
containing lists of the objects we want to document, and organized
them into categories. The actual documentation itself was pulled from
the docstrings automatically. It would be necessary to manually edit
files when new blocks or other objects are added, so there is a danger
that this kind of documentation could become incomplete, however
because the content is taken from the docstrings it should remain
accurate, if not complete.

Are there any objections to me continuing down this path of
documentation generation? Any suggestions?

Cheers,
Ben

_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Re: [Discuss-gnuradio] Problem cross-compiling version 3.5.1

> Thanks a lot for all the advice so far. I am currently engaged in
> combat, trying to get cmake to cooperate with pkg-config and find my
> libraries (never used cmake before). I will report back when I get
> some results or reach another point where I need help.

Ha, got it mostly working, thanks a lot to everyone. However, I seem
to have another problem now: python fails to load
_gnuradio_core_runtime.so (see below). Since I cross-compiled python
myself, I'm not sure whether this is actually a problem with gnuradio
or rather an issue with my python installation though.

Basically, what I get is the following:

>>> from gnuradio import gr
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/lib/python2.7/gnuradio/gr/__init__.py", line 43, in <module>
from gnuradio_core import *
File "/lib/python2.7/gnuradio/gr/gnuradio_core.py", line 23, in <module>
from gnuradio_core_runtime import *
File "/lib/python2.7/gnuradio/gr/gnuradio_core_runtime.py", line 26,
in <module>
_gnuradio_core_runtime = swig_import_helper()
File "/lib/python2.7/gnuradio/gr/gnuradio_core_runtime.py", line 22,
in swig_import_helper
_mod = imp.load_module('_gnuradio_core_runtime', fp, pathname, description)
ImportError: File not found

(if I try again, I get a segfault)

The file is there, of course, so the error message seems to be
"wrong". If anyone has some input on this, that would be highly
appreciated.

cheers
--
Stefan Ott
Communication and Distributed Systems
Institute of Computer Science and Applied Mathematics
University of Bern

_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

[Discuss-gnuradio] gr-digital and USRP sample rate

I noticed that the generic_mod_demod.py script in gr-digital uses a root-raised cosine filter taps and the polyphase filterbank arbitrary resampler block. I want to resample so that I can exactly hit a supported USRP transmit sample rate. What kind of issues will I encounter trying to do this? My understanding is that the USRP can only sample at integer divisions of the DSP rate (100MSPS for N200/210)., and that if a requested sample rate doesn’t hit a supported rate exactly, it picks the nearest faster one. Is this correct?

 

Thanks,

Sean

[Discuss-gnuradio] mimo 2x1 based on benchmark_ofdm_mimo.py

Hi all,

I continue working on trying a 2x1 mimo system based on the benchmark_ofdm_mimo from Tom Rondeau's repository. I have done several trials and I am losing my mind trying to see why it doesn't work. I am using two USRP2 in the transmitter side and another one in the recevier side with XCVR2450 daughterboards, GNU C++ version 4.4.1 [gcc-4_4-branch revision 150839]; Boost_103900; UHD_003.004.000-122b947. In the receiver side all I see is a lot of messages with just an x, and every 10 x (more or less) I get a message: got preamble. I've been looking into the code and this messages are generated in the alamouti frame acquisition block. I guess the problem is in this very same block, when the synchronization has to be accomplished. I think this can be caused by a poor snr, but I don't know how to improve this in order to get this mimo configuration to work. I would like to share also the way I've configured the uhd_usrp2 sinks to see if maybe there is any error there. At this point, I would really appreciate any help! Thanks in advance:

This is how I configured the usrp2:

        # UHD USRP2 sinks
        self.uhd_usrp_slave = uhd.usrp_sink(
            device_addr="addr=192.168.20.3",
            io_type=uhd.io_type.COMPLEX_FLOAT32,
            num_channels=1,
        )
        _config = uhd.clock_config()
        _config.ref_source = uhd.clock_config.REF_MIMO
        _config.pps_source = uhd.clock_config.PPS_MIMO
        self.uhd_usrp_slave.set_clock_config(_config, 0)
        self.uhd_usrp_slave.set_samp_rate(self.samp_rate)
        self.uhd_usrp_slave.set_center_freq(self.center_frequency, 0)
        self.uhd_usrp_slave.set_gain(self.tx_gain, 0)

        self.uhd_usrp_master = uhd.usrp_sink(
            device_addr="addr=192.168.10.4",
            io_type=uhd.io_type.COMPLEX_FLOAT32,
            num_channels=1,
        )
        self.uhd_usrp_master.set_clock_config(uhd.clock_config.internal(),0)
        self.uhd_usrp_master.set_samp_rate(self.samp_rate)
        self.uhd_usrp_master.set_center_freq(self.center_frequency, 0)
        self.uhd_usrp_master.set_gain(self.tx_gain, 0)

Re: [Discuss-gnuradio] SBX dual receive?

On 29/02/12 07:25 AM, jsrdor wrote:
> Hello,
>
> I was wondering whether it is possible to receive from two different
> antennas using a single usrp source and the SBX. I set the subdevices to A:0
> A:0 for the two channels. I set chanell 0 to TX/RX and chanel 1 to RX2. Even
> if i swap the antennas and the chanels it is always that RX2 is receiving.
> It workes fine if i set two different usrp sources one to TX/RX and the
> other to RX2 but then i get overflows all the time.
>
> Thanks!
>
> Jason
>
There is only a single analog RX chain on the SBX, and it can only be
connected to either TX/RX or RX2
at any given time.

What you *can* do is take advantage of dual-DDC functions, if the two
frequencies you want to receive
are both within the analog bandwidth of the card, which is typically
40Mhz. There's no requirement
that those two frequencies arrive on different antennae--physics
doesn't care.

--
Principal Investigator
Shirleys Bay Radio Astronomy Consortium
http://www.sbrac.org

_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Re: [Discuss-gnuradio] uhd running parallel tx/rx flowgraphs

On 02/28/2012 11:51 PM, George Nychis wrote:
> It's be good if you can chime in here, Josh :)
>
> It seems like this is something that should be fixed about tunnel.py in
> future GNU Radio releases for use with UHD.

tunnel.py should be burned at the stake :)

This flow graph creates more bad press for gnuradio than anything else
in the world.

A good GSoC project would be to re-implement the flow graph in a real
grc flow graph and add all the cool new features in gnuradio to it.

Philip

>
> I'm trying to do my fair share of research here and tackle it. If what you
> say is true, Marcus, the control I need is over the TX chain.
>
> I did a bunch of reading through the UHD docs here:
> http://files.ettus.com/uhd_docs/doxygen/html/annotated.html
>
> I see various controls using tx_streamer and tx_metadata_t to use tags to
> control samples to be part of a burst. Like, marking the start and end of
> my TX burst of samples which can construct a packet.
>
> No prob, I can do that. But it seems like there needs to be some sort of
> UHD stream command which turns the TX chain in to an "on-demand" chain and
> not continuously streaming. On the other hand, I would like RX to be
> continuous.
>
> I see the RX control to specify stream controls here:
> http://files.ettus.com/uhd_docs/doxygen/html/structuhd_1_1stream__cmd__t.html
>
> That is clearly documented as control of samples to the host to be
> continuous or not.
>
> However, I don't see that same control for the TX stream. Tx_metadata_t and
> t_streamer control the bursts, but don't seem to control the overall
> stream? Maybe I am missing something.
>
> On Sunday, February 26, 2012, Marcus D. Leech wrote:
>
>> **
>> On 02/26/2012 08:54 PM, George Nychis wrote:
>>
>>
>>
>> On Sun, Feb 26, 2012 at 5:01 PM, Marcus D. Leech <mleech@ripnet.com<javascript:_e({}, 'cvml', 'mleech@ripnet.com');>
>>> wrote:
>>
>>> On 02/26/2012 02:29 PM, Apurv Bhartia wrote:
>>>
>>> Its an XCVR2450, but I do *not* start any 'packet' transmissions. All I
>>> do, is to start both the flowgraphs, and just listen for packets.
>>>
>>> In which case, the TX side is running--even if you aren't sending any
>>> *data* bits, it's still transmitting, and blocking the receiver.
>>>
>>> You'll have to get more sophisticated about half-duplex flow management,
>>> using tagging to tell UHD to turn on/off the TX side.
>>>
>>> Josh probably has better words of wisdom on this than I.
>>>
>>
>> Hi Marcus,
>>
>> I'm working with Apurv, so I'm going to chime in here :)
>>
>> I tried doing some searching on the mailing list, but I wasn't really
>> able to find much on this. I also thought that auto tr would handle this.
>> I found a post from Josh on the mailing list that said Auto TR is always
>> enabled in UHD.
>>
>> http://www.ruby-forum.com/topic/1527488
>>
>>
>> Yes, it is enabled in UHD. But since Gnu Radio is a *streaming* model,
>> you need to take special measures to control TX from within a
>> Gnu Radio flow-graph. YOu need to insert a tag in the stream to control
>> the transmitter, otherwise, you'll be continuously streaming.
>>
>> What you do is insert a burst-tagger into your stream, and set it to send
>> the appropriate tags for UHD into the stream using the trigger
>> input. I just can't off the top of my head, remember what those stream
>> tags are at the moment. But the basic issue is that Gnu Radio
>> uses a streaming model, and while UHD itself (at the C++ level) has
>> fine-grianed control over transmitter functions, etc, gr-uhd doesn't
>> directly expose any of that, because there's just not mechanism within
>> Gnu Radio to expose that stuff. The stream tagging, however,
>> does allow you to control the transmitter state. In the particular case
>> of the XCVR2450, the hardware is physically incapable of
>> TX and RX at the same time.
>>
>>
>> --
>> Marcus Leech
>> Principal Investigator
>> Shirleys Bay Radio Astronomy Consortiumhttp://www.sbrac.org
>>
>>
>
>
>
> _______________________________________________
> Discuss-gnuradio mailing list
> Discuss-gnuradio@gnu.org
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

[Discuss-gnuradio] SBX dual receive?

Hello,

I was wondering whether it is possible to receive from two different
antennas using a single usrp source and the SBX. I set the subdevices to A:0
A:0 for the two channels. I set chanell 0 to TX/RX and chanel 1 to RX2. Even
if i swap the antennas and the chanels it is always that RX2 is receiving.
It workes fine if i set two different usrp sources one to TX/RX and the
other to RX2 but then i get overflows all the time.

Thanks!

Jason
--
View this message in context: http://old.nabble.com/SBX-dual-receive--tp33402070p33402070.html
Sent from the GnuRadio mailing list archive at Nabble.com.


_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Tuesday, February 28, 2012

Re: [Discuss-gnuradio] uhd running parallel tx/rx flowgraphs

It's be good if you can chime in here, Josh :)

It seems like this is something that should be fixed about tunnel.py in future GNU Radio releases for use with UHD. 

I'm trying to do my fair share of research here and tackle it. If what you say is true, Marcus, the control I need is over the TX chain. 

I did a bunch of reading through the UHD docs here:

I see various controls using tx_streamer and tx_metadata_t to use tags to control samples to be part of a burst. Like, marking the start and end of my TX burst of samples which can construct a packet. 

No prob, I can do that. But it seems like there needs to be some sort of UHD stream command which turns the TX chain in to an "on-demand" chain and not continuously streaming. On the other hand, I would like RX to be continuous. 

I see the RX control to specify stream controls here:
http://files.ettus.com/uhd_docs/doxygen/html/structuhd_1_1stream__cmd__t.html

That is clearly documented as control of samples to the host to be continuous or not. 

However, I don't see that same control for the TX stream. Tx_metadata_t and t_streamer control the bursts, but don't seem to control the overall stream? Maybe I am missing something. 

On Sunday, February 26, 2012, Marcus D. Leech wrote:
On 02/26/2012 08:54 PM, George Nychis wrote:


On Sun, Feb 26, 2012 at 5:01 PM, Marcus D. Leech <mleech@ripnet.com> wrote:
On 02/26/2012 02:29 PM, Apurv Bhartia wrote:
Its an XCVR2450, but I do *not* start any 'packet' transmissions. All I do, is to start both the flowgraphs, and just listen for packets.

In which case, the TX side is running--even if you aren't sending any *data* bits, it's still transmitting, and blocking the receiver.

You'll have to get more sophisticated about half-duplex flow management, using tagging to tell UHD to turn on/off the TX side.

Josh probably has better words of wisdom on this than I.

Hi Marcus,

I'm working with Apurv, so I'm going to chime in here :)   

I tried doing some searching on the mailing list, but I wasn't really able to find much on this.  I also thought that auto tr would handle this.  I found a post from Josh on the mailing list that said Auto TR is always enabled in UHD.  



Yes, it is enabled in UHD.  But since Gnu Radio is a *streaming* model, you need to take special measures to control TX from within a
  Gnu Radio flow-graph.  YOu need to insert a tag in the stream to control the transmitter, otherwise, you'll be continuously streaming.

What you do is insert a burst-tagger into your stream, and set it to send the appropriate tags for UHD into the stream using the trigger
  input.  I just can't off the top of my head, remember what those stream tags are at the moment.  But the basic issue is that Gnu Radio
  uses a streaming model, and while UHD itself (at the C++ level) has fine-grianed control over transmitter functions, etc, gr-uhd doesn't
  directly expose any of that, because there's just not mechanism within Gnu Radio to expose that stuff.  The stream tagging, however,
  does allow you to control the transmitter state.  In the particular case of the XCVR2450, the hardware is physically incapable of
  TX and RX at the same time.


--  Marcus Leech Principal Investigator Shirleys Bay Radio Astronomy Consortium http://www.sbrac.org 

[Discuss-gnuradio] ATSC Cleanups

Hello All,

I've been recently playing with the ATSC decoding functions and have a
couple questions. First the last time ATSC was discussed in any real
detail was 4 years ago ( according to Google history of this mailing
list ), and the converting of GR0.9 code to GR2.0 was raised, but in
the repository all the functions look like they are 2.0, what still
needs converted and why are all the files mirrored as the old versions
( GrAtscFPLL.cc and atsc_fpll.cc ) are the old versions still needed?
Also the python code to put the blocks together seem dated, Is there
any reason to use pipes and not just have all the code in one file and
use IPC? ( also /tmp/atsc_pipe_4 is never used )

Thanks
Andrew

_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Re: [Discuss-gnuradio] an example of a gnuradio project using cmake

On Tue, Dec 14, 2010 at 4:50 AM, Michael Dickens <mlk@alum.mit.edu> wrote:
> On Dec 13, 2010, at 7:33 PM, Tom Rondeau wrote:
>> The biggest problem that I see with cmake is that the burden of proof
>> lies with cmake.
>
> I'm 100% confident that CMake, or QMake for that matter (and, I'm sure, BJam and other build tools), could handle the GNU Radio build system robustly if someone were willing to put the time and effort into those changes.  All of these build systems are roughly equivalent in the way they go about accomplishing their task -- except, I think, in one important way: GNU Autotools allows the user to insert shell script that is directly executed during configure, while CMake and QMake build scripts are entirely interpreted and hence rely upon the interpreter and documentation of its behavior being correct.  Someone please correct me if I'm wrong.  Yes, I know that "shell script" is interpreted, but here I make the distinction between interpreted by the shell many of us use on a daily basis for many tasks versus interpreted just for the purposes of, and by, this particular build system -- does that make sense?
>
> Either way: Each build tool has benefits and drawbacks; none is perfect for all projects.  I'm quite sure that for GNU Radio, any build tool will have to include local "hacks" (or "tricks" or whatever) to get the various dependencies found and in-place.  I've worked with all 3 build systems enough to know that I like each in different ways, and that all end up with difficult-to-read scripts with any project of reasonable complexity in dependencies and building.
>
> So, if Josh wants to go off and prove that CMake will do the trick, I say the more power to him.  If Tom wants to keep using GNU Autotools, I'm good with that too.  I have no desire to rewrite everything to use QMake or BJam, but I could probably do so without too much difficulty.  Specifically for GNU Radio, I don't see any one of these build tools being "better" than any other in any significant way.
>
> My US$0.02 worth, at most ;) - MLD

We have adopted CMake over Autotools since long now, CMake is
available now on all modern distributions, it's easier to learn and
some IDE (like Kdevelop) are even aware of the CMake syntax with
integrated help as well for each command.

My 0.02 Euro.


--
cpp-today.blogspot.com

_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Re: [Discuss-gnuradio] USRP for Ku band?

On Tue, Feb 28, 2012 at 7:23 AM, Zohair <zohair_ms@hotmail.com> wrote:

Dear all,

I am trying to implement the DVB-S2 satellite standard which has two sample
rates:

30.9 MBaud and 29.7 MBaud.

My question is : can USRP N210 sample at these sample rates?

I don't seem to be able to decimate the 100 MSps to these rates. is there
away to do this?

You can only sample at integer decimations of the 100Msps native sample rate of the N210. So you can get 50Msps (only possible with 8 bit sampling, recently added to UHD), 33.3333Msps, 25Msps, 20Msps, etc.

DVB-S2 uses QPSK or 8PSK, so your symbol rate will be divided down from the bit rate accordingly, and the required sample rate is a function of symbol rate (plus rolloff), not bit rate. As a result, you can sample at lower sample rates than the native bit rate to receive your DVB-S2 signal. The rolloff of DVB-S2 30.9Mbit is 0.20, so the maximum channel occupancy of a 30.9Mbit QPSK (2 bits per symbol) stream would be 1.20*(30.9e6/2)=18.54MHz. Sampling at 20Msps with the N210 would suffice in this instance to completely capture the signal. For 8PSK 29.7Mbit (rolloff=0.25, 3 bits per symbol), you need 1.25*(29.7/3)=12.375Msps. The closest sample rate would then be 12.5Msps.

If your decoding scheme requires an integral number of samples per symbol, you can resample the incoming stream using Gnuradio's polyphase resampler block to achieve whatever sample rate you require.

--n
 

Would you direct me to a usefull documentation regarding this issue, please?
Thanks


Zohair wrote:
>
> That's great! I will do that. Thank you very much.
>
>
> Zohair wrote:
>>
>> Is it possible to utilise USRP2 with a daughter board to receive a signal
>> on the Ku band? I checked Ettus website but all the available
>> daughterboards have carrier frequencies less than the required.
>>
>> What do you think?
>>
>> Cheers,
>>
>> Zohair
>>
>
>

--
View this message in context: http://old.nabble.com/USRP-for-Ku-band--tp33353983p33407375.html
Sent from the GnuRadio mailing list archive at Nabble.com.


_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Re: [Discuss-gnuradio] Variable sampling rate

On Tue, Feb 28, 2012 at 07:24:32AM -0800, Zohair wrote:
> Dear all,
>
> I am trying to implement the DVB-S2 satellite standard which has two sample
> rates:
>
> 30.9 MBaud OR 29.7 MBaud.

These are baud rates, not sampling rates. Unless you mean 30.9MS/s which
is not even possible using a single USRP.

> My question is : can USRP N210 sample at these sample rates?
>
> I don't seem to be able to decimate the 100 MSps to these rates. is there
> away to do this?

Looks like you answered your own question. For 'awkward' sampling rates,
check the arbitrary resampler blocks and resample on the host.

MB

--
Karlsruhe Institute of Technology (KIT)
Communications Engineering Lab (CEL)

Dipl.-Ing. Martin Braun
Research Associate

Kaiserstraße 12
Building 05.01
76131 Karlsruhe

Phone: +49 721 608-43790
Fax: +49 721 608-46071
www.cel.kit.edu

KIT -- University of the State of Baden-Württemberg and
National Laboratory of the Helmholtz Association

[Discuss-gnuradio] Variable sampling rate

Dear all,

I am trying to implement the DVB-S2 satellite standard which has two sample
rates:

30.9 MBaud OR 29.7 MBaud.

My question is : can USRP N210 sample at these sample rates?

I don't seem to be able to decimate the 100 MSps to these rates. is there
away to do this?

Would you direct me to a usefull documentation regarding this issue, please?

Thanks
--
View this message in context: http://old.nabble.com/Variable-sampling-rate-tp33407386p33407386.html
Sent from the GnuRadio mailing list archive at Nabble.com.


_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Re: [Discuss-gnuradio] USRP for Ku band?

Dear all,

I am trying to implement the DVB-S2 satellite standard which has two sample
rates:

30.9 MBaud and 29.7 MBaud.

My question is : can USRP N210 sample at these sample rates?

I don't seem to be able to decimate the 100 MSps to these rates. is there
away to do this?

Would you direct me to a usefull documentation regarding this issue, please?
Thanks


Zohair wrote:
>
> That's great! I will do that. Thank you very much.
>
>
> Zohair wrote:
>>
>> Is it possible to utilise USRP2 with a daughter board to receive a signal
>> on the Ku band? I checked Ettus website but all the available
>> daughterboards have carrier frequencies less than the required.
>>
>> What do you think?
>>
>> Cheers,
>>
>> Zohair
>>
>
>

--
View this message in context: http://old.nabble.com/USRP-for-Ku-band--tp33353983p33407375.html
Sent from the GnuRadio mailing list archive at Nabble.com.


_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Re: [Discuss-gnuradio] Plotting the streaming data

2012/2/28 merve deniz <merveedeniz@gmail.com>
Hİ all,
I want to plot the stream of data by gnuradio-companion. To do this use scope sink but the data changes in time. My purpose is read the data from usrp for two minutes (it can be change) and after two minutes plot the stream of data like matlab. Purpose is simple but problem is complex for now...
Is there anybody can help me ?

PS : I am using USRP1 with RFX1800-daughterboard.

You can dump the data to a flle sink and then use the gr_plot_psd_c.py program that is installed with GNU Radio (there are a number of gr_plox_xxx.py programs for different plotting capabilities).

Tom

[Discuss-gnuradio] Plotting the streaming data

Hİ all,
I want to plot the stream of data by gnuradio-companion. To do this use scope sink but the data changes in time. My purpose is read the data from usrp for two minutes (it can be change) and after two minutes plot the stream of data like matlab. Purpose is simple but problem is complex for now...
Is there anybody can help me ?

PS : I am using USRP1 with RFX1800-daughterboard.

Re: [Discuss-gnuradio] GRC: Problem with workspace

hi again(mostly josh;-)),

to finish the problem, here my results i figured out:

how i descriped this happens cause an invalid import tag in wrapper files.
in my case this was "from gnuradio import digital" because i import in the
digital __init__ File a module that include stuff from the mayavi
visualization framework. ok..

the residual Question for me is, why its not working, because in Python
shell i can import this stuff without errors(GRC too, but with the problem
of fixed workspace) and run Apps without warnings etc.

i used >>python -v to tracking the import of mayavi stuff and the only think
i filtert out that could be a problem are things like "bad mtime" warnings.
Additonal mayavi includes many modules, so can this be a reason too.

It will be cool if sombody can force this too and verify the behavior

regards lars

--
View this message in context: http://old.nabble.com/GRC%3A-Problem-with-workspace-tp33352651p33405652.html
Sent from the GnuRadio mailing list archive at Nabble.com.


_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Re: [Discuss-gnuradio] GMSK Over the Air

On Mon, Feb 27, 2012 at 12:12:52PM -0800, justynnuff wrote:
> The Problem: Although I can see the GMSK signal on the Rx end off of the
> USRP, nothing is produced at the output of the packet decoder. The BT param
> on the GMSK mod block is ~1, the samples per symbol is 8, and almost
> everything else is default. Is there something I'm missing, or does this
> block just not work in an over-the-air scenario?

Hi justynnuff,

it should work (and I've tried it). I don't have a setup right here, so
I can't give you a working example, but here's some input:
- I definitely used different params (probably bt=.3 and sps=2),
although I don't know off the top of my head if that could cause
trouble.
- The standard sync was a bit flaky (e.g. I never got it working on GSM
bursts). I had to tune pretty precisely to start with, and then timing
sync using the M&M didn't work out that well.

It does, however, work with the benchmark_* examples, which you should
definitely read (if you haven't done so). It's probably just a matter of
setting the sync params correctly.

MB

--
Karlsruhe Institute of Technology (KIT)
Communications Engineering Lab (CEL)

Dipl.-Ing. Martin Braun
Research Associate

Kaiserstraße 12
Building 05.01
76131 Karlsruhe

Phone: +49 721 608-43790
Fax: +49 721 608-46071
www.cel.kit.edu

KIT -- University of the State of Baden-Württemberg and
National Laboratory of the Helmholtz Association

Monday, February 27, 2012

Re: [Discuss-gnuradio] passing a block output as parameter to another block

On 02/27/2012 08:48 PM, Jon Phil wrote:
> Is there a way so that one can pass the output of a custom gnuradio block as parameter to another block?
>
>

Take a look at the function probe block in gnuradio companion (and using
it with the probe signal block).

Periodically probe a function and set its value to this variable.

Set the values for block ID, function name, and function args
appropriately: Block ID should be the ID of another block in this flow
graph. Function name should be the name of a class method on that block.
Function args are the parameters passed into that function. For a
function with no arguments, leave function args blank. When passing a
string for the function arguments, quote the string literal: '"arg"'.

The values will used literally, and generated into the following form:
self.block_id.function_name(function_args)

To poll a stream for a level, use this with the probe signal block.

-Josh

_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

[Discuss-gnuradio] passing a block output as parameter to another block

Is there a way so that one can pass the output of a custom gnuradio block as parameter to another block?

Thanks,
J.


Re: [Discuss-gnuradio] Audio Issues

On Mon, Feb 27, 2012 at 9:24 PM, labarowski <labarowski.1@gmail.com> wrote:

Thanks for the replies everyone! Tom, I'm not entirely sure how to "pass "-O
pulse"", but I did change gr-audio.conf to use pulse and that seems to have
done the trick. Thanks! +1 for pulse!

Most audio examples have a command-line option to specify the audio device. For output scripts, this is -O, when coming from a mic input, it's -I. Instead of specifying it in the config file, you could just put these on the command line. But it's probably better to have it permanently put into the config file so you don't have to keep typing it in all the time.

Tom


 
labarowski wrote:
>
> I was able to get gnuradio to successfully compile using the script
> available at
> (http://gnuradio.org/redmine/projects/gnuradio/wiki/InstallingGR) and I
> updated my PYTHONPATH as the script instructed. However, none of the audio
> examples are working. They run without returning any errors, but I don't
> hear anything. As far as I can tell, I have ALSA installed (I'm using
> Ubuntu 10.04 with kernel 2.6.32-38, all updates installed). I tried
> updating gr-audio.conf to use alsa and tried changing gr-audio-alsa.conf
> to use plughw:0,0 instead of hw:0,0 - all to no avail. I don't believe oss
> is installed on this system. Can anyone suggest a solutions? Thanks ahead
> of time!
>
> Edit: Sorry if this message is a repost, I'm having some trouble getting
> registered through Nabble.
>

--
View this message in context: http://old.nabble.com/Audio-Issues-tp33402959p33404169.html
Sent from the GnuRadio mailing list archive at Nabble.com.


_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Re: [Discuss-gnuradio] Audio Issues

Thanks for the replies everyone! Tom, I'm not entirely sure how to "pass "-O
pulse"", but I did change gr-audio.conf to use pulse and that seems to have
done the trick. Thanks! +1 for pulse!

labarowski wrote:
>
> I was able to get gnuradio to successfully compile using the script
> available at
> (http://gnuradio.org/redmine/projects/gnuradio/wiki/InstallingGR) and I
> updated my PYTHONPATH as the script instructed. However, none of the audio
> examples are working. They run without returning any errors, but I don't
> hear anything. As far as I can tell, I have ALSA installed (I'm using
> Ubuntu 10.04 with kernel 2.6.32-38, all updates installed). I tried
> updating gr-audio.conf to use alsa and tried changing gr-audio-alsa.conf
> to use plughw:0,0 instead of hw:0,0 - all to no avail. I don't believe oss
> is installed on this system. Can anyone suggest a solutions? Thanks ahead
> of time!
>
> Edit: Sorry if this message is a repost, I'm having some trouble getting
> registered through Nabble.
>

--
View this message in context: http://old.nabble.com/Audio-Issues-tp33402959p33404169.html
Sent from the GnuRadio mailing list archive at Nabble.com.


_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Re: [Discuss-gnuradio] Audio Issues

On 27/02/12 09:10 PM, Tom Rondeau wrote:
>
>
> All I'm saying is that pulseaudio on Ubuntu seems to just work these
> days.
>
> Tom
Well, I should perhaps re-visit Pulse sometime in the coming year or
so. I currently just use Alsa nomenclature,
and that seems to work.


--
Principal Investigator
Shirleys Bay Radio Astronomy Consortium
http://www.sbrac.org

_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Re: [Discuss-gnuradio] uhd running parallel tx/rx flowgraphs

On 02/27/2012 05:30 PM, George Nychis wrote:
> It's be good if you can chime in here, Josh :)
>
> It seems like this is something that should be fixed about tunnel.py in
> future GNU Radio releases for use with UHD.
>

Like removing it altogether :-)

> That is clearly documented as control of samples to the host to be
> continuous or not.
>

Basically, RX is intended to work on a continuous streaming model, which
is why stream command inst swigged up. The start()/stop() methods are
actually the ones issuing the command.

When and if the pmt based message passing gets merged, i was going to
implement control messages to deal with streaming, possibly other
things. This lets you tie the uhd source block into a control plane.

As is stands now, i guess someone could just forward the stream command
stuff, so long as the work() function knew to block when there is
definitely not supposed to be samples. That way you avoid the scheduler
marking the block done on a timeout.

> However, I don't see that same control for the TX stream. Tx_metadata_t and
> t_streamer control the bursts, but don't seem to control the overall
> stream? Maybe I am missing something.
>

You can use stream tags to control start/stop of burst and transmit
times. See the usrp sink header or the tags demo in gr-uhd.

Now that being said, the framer blocks in tunnel.py could be more
intelligent and properly shutoff streaming (aka end a burst) when there
is no data. That way you avoid underflow when there isnt a continuous
supply of data to modulate.

-Josh

_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Re: [Discuss-gnuradio] Audio Issues

On Mon, Feb 27, 2012 at 9:03 PM, Marcus D. Leech <mleech@ripnet.com> wrote:
On 27/02/12 08:59 PM, Tom Rondeau wrote:
>
> Try passing the device string "-O pulse" to use pulseaudio, instead.
> You might have to install libpulse0, though. I've found this to be a
> more flexible and reliable sound system.
>
> Tom
>
I've never found *any* sound subsystem on Linux to be "reliable and
flexible".  And when you have a system
 with *both* Pulse and Alsa-backwards-compat-mode, it's a frikken
nightmare. The problem seems to be that
 for over a decade, everybody wanted *their* Kewl sound subsystem to be
incorporated into Linux distributions.
 So everyone go their wish, and there are no standards.

Bleh.


All I'm saying is that pulseaudio on Ubuntu seems to just work these days. 

Tom

Re: [Discuss-gnuradio] Audio Issues

On 27/02/12 08:59 PM, Tom Rondeau wrote:
>
> Try passing the device string "-O pulse" to use pulseaudio, instead.
> You might have to install libpulse0, though. I've found this to be a
> more flexible and reliable sound system.
>
> Tom
>
I've never found *any* sound subsystem on Linux to be "reliable and
flexible". And when you have a system
with *both* Pulse and Alsa-backwards-compat-mode, it's a frikken
nightmare. The problem seems to be that
for over a decade, everybody wanted *their* Kewl sound subsystem to be
incorporated into Linux distributions.
So everyone go their wish, and there are no standards.

Bleh.

--
Principal Investigator
Shirleys Bay Radio Astronomy Consortium
http://www.sbrac.org

_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Re: [Discuss-gnuradio] Audio Issues

On Mon, Feb 27, 2012 at 8:21 PM, labarowski <labarowski.1@gmail.com> wrote:

I was able to get gnuradio to successfully compile using the script available
at (http://gnuradio.org/redmine/projects/gnuradio/wiki/InstallingGR) and I
updated my PYTHONPATH as the script instructed. However, none of the audio
examples are working. They run without returning any errors, but I don't
hear anything. As far as I can tell, I have ALSA installed (I'm using Ubuntu
10.04 with kernel 2.6.32-38, all updates installed). I tried updating
gr-audio.conf to use alsa and tried changing gr-audio-alsa.conf to use
plughw:0,0 instead of hw:0,0 - all to no avail. I don't believe oss is
installed on this system. Can anyone suggest a solutions? Thanks ahead of
time!

Try passing the device string "-O pulse" to use pulseaudio, instead. You might have to install libpulse0, though. I've found this to be a more flexible and reliable sound system.

Tom
 

Re: [Discuss-gnuradio] Audio Issues

Have you tried playing audio from a different source?  If you go to youtube.com, and watch a video, can you hear the sound?

Cheers,
Ben

On Mon, Feb 27, 2012 at 5:21 PM, labarowski <labarowski.1@gmail.com> wrote:

I was able to get gnuradio to successfully compile using the script available
at (http://gnuradio.org/redmine/projects/gnuradio/wiki/InstallingGR) and I
updated my PYTHONPATH as the script instructed. However, none of the audio
examples are working. They run without returning any errors, but I don't
hear anything. As far as I can tell, I have ALSA installed (I'm using Ubuntu
10.04 with kernel 2.6.32-38, all updates installed). I tried updating
gr-audio.conf to use alsa and tried changing gr-audio-alsa.conf to use
plughw:0,0 instead of hw:0,0 - all to no avail. I don't believe oss is
installed on this system. Can anyone suggest a solutions? Thanks ahead of
time!

Edit: Sorry if this message is a repost, I'm having some trouble getting
registered through Nabble.
--
View this message in context: http://old.nabble.com/Audio-Issues-tp33402959p33402959.html
Sent from the GnuRadio mailing list archive at Nabble.com.


_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Re: [Discuss-gnuradio] help with QAM demodulation

On Mon, Feb 27, 2012 at 2:57 PM, Tom Rondeau <tom@trondeau.com> wrote:
> On Mon, Feb 27, 2012 at 4:51 PM, Jeff Hodges <jeffhodges2@gmail.com> wrote:
>>
>> Thanks Ben and Tom, you two have been very helpful.
>>
>> The code Ben provided does work, and adjusting my GRC program to use the
>> same parameters, I was able to achieve the expected results.
>>
>> However, it appears there are two issues:
>>
>> (1) When differential encoding is set to off for both mod/demod blocks,
>> the output data becomes invalid
>
>
> I'm not sure the differential en/decoder works for QAM. I suggested it
> before because of the bits that you sent us, but the gray coding was the
> problem, which makes more sense.
>
Could this be simply because of the rotational symmetry of the QAM
constellation. There's only a 25% chance that the receiver will lock
onto the constellation in the correct orientation so unless you're
using differential encoding it'll only work one quarter of the time.

>>
>> (2) When the samples per symbol is above 10 the output also becomes
>> invalid.
>
>
> I'm not sure why you would want to run it with that many sps, anyway. I'd
> probably have to dive back into the code to see what might be the problem
> there. Theoretically, it should be doable, but since I've never run it with
> that many, it's probably never been exercised.
>
I had this same problem a while back and found that for high values of
samples-per-symbol I needed different parameters. Try twiddling with
freq_bw.

>>
>> Any ideas on what may be causing these discrepancies?
>>
>> In response to Tom's questions, I am using 16-QAM and the constellation
>> does look very noisy (both phase and amplitude) coming out of the QAM mod
>> and being observed on the WX GUI Constellation Sink. But then again, there a
>> lot of parameters on that signal processing block, so maybe I do not have
>> the proper values set.
>>
>> Thanks,
>>
>> Jeff
>
>
> The noise might be due to ISI since you're just coming out of a RRC filter
> at that point. Unless the constellation sink has another RRC in it. Also,
> that sink tries to do some synchronization designed for PSK signals, so it
> won't work great and might be causing some of your error. Try just using an
> oscope and plottng x verus y.
>
> Tom
>
>
>>
>> On Mon, Feb 27, 2012 at 12:50 PM, Ben Reynwar <ben@reynwar.net> wrote:
>>>
>>> On Mon, Feb 27, 2012 at 10:00 AM, Ben Reynwar <ben@reynwar.net> wrote:
>>> > On Mon, Feb 27, 2012 at 7:36 AM, Jeff Hodges <jeffhodges2@gmail.com>
>>> > wrote:
>>> >> Does anyone know if the QAM demodulator code is working properly?  I
>>> >> would
>>> >> like to get a QAM demodulator working for a symbol rate of 300ksym/s.
>>> >> I
>>> >> don't know whether I am just using the wrong parameters or if the
>>> >> blocks do
>>> >> not work properly, but I am not getting the results I expect.
>>> >>
>>> >> To test the code out I am using the GRC. I have a vector source with a
>>> >> known
>>> >> data sequence running into the qam mod block and then the output of
>>> >> that
>>> >> into a QAM demod block. The output of the QAM demod is running into a
>>> >> Uchar
>>> >> to Float, and I am plotting the results on a WX GUI Scope.  I have the
>>> >> exact
>>> >> same settings on both the QAM mod and demod blocks.  The output I am
>>> >> seeing
>>> >> on the scope looks completely random. (I also tried other vector
>>> >> source
>>> >> data: When the input is 0x0F, repeating, the output I see is 00001010
>>> >> repeating. But when I use 0x0E, the results are random again.)
>>> >>
>>> >> I have also tried demodulating a real QAM signal with a known data
>>> >> sequence,
>>> >> also to no avail.
>>> >>
>>> >> I have been working on this for about a month now and haven't had any
>>> >> success.  I have examined the underlying QAM.py and generic_mod,
>>> >> generic_demod codes, and they seem to be written properly. But I am
>>> >> not
>>> >> getting the expected results.
>>> >>
>>> >> Any help with this problem or advice you can give will be greatly
>>> >> appreciated, and I will return the favor by helping out in any way
>>> >> that I
>>> >> can.
>>> >>
>>> >> Thank you very much in advance,
>>> >>
>>> >> Jeff
>>> >>
>>> >> _______________________________________________
>>> >> Discuss-gnuradio mailing list
>>> >> Discuss-gnuradio@gnu.org
>>> >> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>> >>
>>> >
>>> > If it's not working it's probably my fault, so I'll do some tests
>>> > myself today and get back to you.
>>> >
>>> > Cheers,
>>> > Ben
>>>
>>> I found a bug in the xml file for the demodulator that would cause
>>> problems if you requested no gray-coding.
>>> It cause gnuradio-companion to pass an incorrect parameter name.
>>> A fix is at
>>> https://github.com/benreynwar/gnuradio/commit/e68ab8589ca235563f8c061fbb79d13793d1f21f
>>>
>>> In case that wasn't your problem I'll post an example that works for me:
>>>
>>> from gnuradio import gr, digital
>>>
>>> class qam_mod_demod(gr.top_block):
>>>
>>>    def __init__(self):
>>>        super(qam_mod_demod, self).__init__()
>>>        src = gr.vector_source_b([1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0,
>>> 0, 0]*1000)
>>>        packer = gr.unpacked_to_packed_bb(1, gr.GR_MSB_FIRST)
>>>        self.snk = gr.vector_sink_b()
>>>        mod = digital.qam.qam_mod(constellation_points=16,
>>> mod_code="gray",
>>>                                  differential=True,
>>> samples_per_symbol=2,
>>>                                  excess_bw=0.35)
>>>        demod = digital.qam.qam_demod(constellation_points=16,
>>> mod_code="gray",
>>>                                      differential=True,
>>> samples_per_symbol=2,
>>>                                      excess_bw=0.35,
>>> freq_bw=6.28/100.0,
>>>                                      timing_bw=6.28/100.0,
>>> phase_bw=6.28/100.0)
>>>        unpacker = gr.packed_to_unpacked_bb(8, gr.GR_MSB_FIRST)
>>>        self.connect(src, packer, mod, demod, unpacker, self.snk)
>>>
>>> if __name__ == '__main__':
>>>    qmd = qam_mod_demod()
>>>    qmd.run()
>>>    data = qmd.snk.data()
>>>    print(data)
>>
>>
>

_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Re: [Discuss-gnuradio] uhd running parallel tx/rx flowgraphs

#!/usr/bin/env python
##################################################
# Gnuradio Python Flow Graph
# Title: Burst Tagger Uhd
# Generated: Mon Feb 27 20:52:20 2012
##################################################

from gnuradio import eng_notation
from gnuradio import gr
from gnuradio import uhd
from gnuradio.eng_option import eng_option
from gnuradio.gr import firdes
from grc_gnuradio import wxgui as grc_wxgui
from optparse import OptionParser
import wx

class burst_tagger_uhd(grc_wxgui.top_block_gui):

def __init__(self):
grc_wxgui.top_block_gui.__init__(self, title="Burst Tagger Uhd")
_icon_path = "/usr/share/icons/hicolor/32x32/apps/gnuradio-grc.png"
self.SetIcon(wx.Icon(_icon_path, wx.BITMAP_TYPE_ANY))

##################################################
# Variables
##################################################
self.samp_rate = samp_rate = 250e3

##################################################
# Blocks
##################################################
self.uhd_usrp_sink_0 = uhd.usrp_sink(
device_addr="",
stream_args=uhd.stream_args(
cpu_format="fc32",
channels=range(1),
),
)
self.uhd_usrp_sink_0.set_samp_rate(samp_rate)
self.uhd_usrp_sink_0.set_center_freq(0, 0)
self.uhd_usrp_sink_0.set_gain(0, 0)
self.gr_sig_source_x_0_0 = gr.sig_source_s(samp_rate, gr.GR_SQR_WAVE, 10, 1, 0)
self.gr_sig_source_x_0 = gr.sig_source_c(samp_rate, gr.GR_COS_WAVE, 25e3, 1, 0)
self.gr_burst_tagger_0 = gr.burst_tagger(gr.sizeof_gr_complex)
self.gr_burst_tagger_0.set_true_tag("tx_eob",True)
self.gr_burst_tagger_0.set_false_tag("tx_sob",True)

##################################################
# Connections
##################################################
self.connect((self.gr_burst_tagger_0, 0), (self.uhd_usrp_sink_0, 0))
self.connect((self.gr_sig_source_x_0, 0), (self.gr_burst_tagger_0, 0))
self.connect((self.gr_sig_source_x_0_0, 0), (self.gr_burst_tagger_0, 1))

def get_samp_rate(self):
return self.samp_rate

def set_samp_rate(self, samp_rate):
self.samp_rate = samp_rate
self.uhd_usrp_sink_0.set_samp_rate(self.samp_rate)
self.gr_sig_source_x_0.set_sampling_freq(self.samp_rate)
self.gr_sig_source_x_0_0.set_sampling_freq(self.samp_rate)

if __name__ == '__main__':
parser = OptionParser(option_class=eng_option, usage="%prog: [options]")
(options, args) = parser.parse_args()
tb = burst_tagger_uhd()
tb.Run(True)

On 27/02/12 08:30 PM, George Nychis wrote:

It's be good if you can chime in here, Josh :)

It seems like this is something that should be fixed about tunnel.py in future GNU Radio releases for use with UHD.
I've attached a skeletal piece of GRC that uses the "Burst Tagger" block with a 10Hz trigger input to insert
  tx_eob/tx_sob tags into the stream.  I'm not sure whether this will have the desired effect or not, but at
  least in theory it should.


 

I'm trying to do my fair share of research here and tackle it. If what you say is true, Marcus, the control I need is over the TX chain. 

I did a bunch of reading through the UHD docs here:

I see various controls using tx_streamer and tx_metadata_t to use tags to control samples to be part of a burst. Like, marking the start and end of my TX burst of samples which can construct a packet. 

No prob, I can do that. But it seems like there needs to be some sort of UHD stream command which turns the TX chain in to an "on-demand" chain and not continuously streaming. On the other hand, I would like RX to be continuous. 

I see the RX control to specify stream controls here:
http://files.ettus.com/uhd_docs/doxygen/html/structuhd_1_1stream__cmd__t.html

That is clearly documented as control of samples to the host to be continuous or not. 

However, I don't see that same control for the TX stream. Tx_metadata_t and t_streamer control the bursts, but don't seem to control the overall stream? Maybe I am missing something. 

On Sunday, February 26, 2012, Marcus D. Leech wrote:
On 02/26/2012 08:54 PM, George Nychis wrote:


On Sun, Feb 26, 2012 at 5:01 PM, Marcus D. Leech <mleech@ripnet.com> wrote:
On 02/26/2012 02:29 PM, Apurv Bhartia wrote:
Its an XCVR2450, but I do *not* start any 'packet' transmissions. All I do, is to start both the flowgraphs, and just listen for packets.

In which case, the TX side is running--even if you aren't sending any *data* bits, it's still transmitting, and blocking the receiver.

You'll have to get more sophisticated about half-duplex flow management, using tagging to tell UHD to turn on/off the TX side.

Josh probably has better words of wisdom on this than I.

Hi Marcus,

I'm working with Apurv, so I'm going to chime in here :)   

I tried doing some searching on the mailing list, but I wasn't really able to find much on this.  I also thought that auto tr would handle this.  I found a post from Josh on the mailing list that said Auto TR is always enabled in UHD.  



Yes, it is enabled in UHD.  But since Gnu Radio is a *streaming* model, you need to take special measures to control TX from within a
  Gnu Radio flow-graph.  YOu need to insert a tag in the stream to control the transmitter, otherwise, you'll be continuously streaming.

What you do is insert a burst-tagger into your stream, and set it to send the appropriate tags for UHD into the stream using the trigger
  input.  I just can't off the top of my head, remember what those stream tags are at the moment.  But the basic issue is that Gnu Radio
  uses a streaming model, and while UHD itself (at the C++ level) has fine-grianed control over transmitter functions, etc, gr-uhd doesn't
  directly expose any of that, because there's just not mechanism within Gnu Radio to expose that stuff.  The stream tagging, however,
  does allow you to control the transmitter state.  In the particular case of the XCVR2450, the hardware is physically incapable of
  TX and RX at the same time.


--  Marcus Leech Principal Investigator Shirleys Bay Radio Astronomy Consortium http://www.sbrac.org     


--  Principal Investigator Shirleys Bay Radio Astronomy Consortium http://www.sbrac.org

Re: [Discuss-gnuradio] uhd running parallel tx/rx flowgraphs

It's be good if you can chime in here, Josh :)

It seems like this is something that should be fixed about tunnel.py in future GNU Radio releases for use with UHD. 

I'm trying to do my fair share of research here and tackle it. If what you say is true, Marcus, the control I need is over the TX chain. 

I did a bunch of reading through the UHD docs here:

I see various controls using tx_streamer and tx_metadata_t to use tags to control samples to be part of a burst. Like, marking the start and end of my TX burst of samples which can construct a packet. 

No prob, I can do that. But it seems like there needs to be some sort of UHD stream command which turns the TX chain in to an "on-demand" chain and not continuously streaming. On the other hand, I would like RX to be continuous. 

I see the RX control to specify stream controls here:
http://files.ettus.com/uhd_docs/doxygen/html/structuhd_1_1stream__cmd__t.html

That is clearly documented as control of samples to the host to be continuous or not. 

However, I don't see that same control for the TX stream. Tx_metadata_t and t_streamer control the bursts, but don't seem to control the overall stream? Maybe I am missing something. 

On Sunday, February 26, 2012, Marcus D. Leech wrote:
On 02/26/2012 08:54 PM, George Nychis wrote:


On Sun, Feb 26, 2012 at 5:01 PM, Marcus D. Leech <mleech@ripnet.com> wrote:
On 02/26/2012 02:29 PM, Apurv Bhartia wrote:
Its an XCVR2450, but I do *not* start any 'packet' transmissions. All I do, is to start both the flowgraphs, and just listen for packets.

In which case, the TX side is running--even if you aren't sending any *data* bits, it's still transmitting, and blocking the receiver.

You'll have to get more sophisticated about half-duplex flow management, using tagging to tell UHD to turn on/off the TX side.

Josh probably has better words of wisdom on this than I.

Hi Marcus,

I'm working with Apurv, so I'm going to chime in here :)   

I tried doing some searching on the mailing list, but I wasn't really able to find much on this.  I also thought that auto tr would handle this.  I found a post from Josh on the mailing list that said Auto TR is always enabled in UHD.  



Yes, it is enabled in UHD.  But since Gnu Radio is a *streaming* model, you need to take special measures to control TX from within a
  Gnu Radio flow-graph.  YOu need to insert a tag in the stream to control the transmitter, otherwise, you'll be continuously streaming.

What you do is insert a burst-tagger into your stream, and set it to send the appropriate tags for UHD into the stream using the trigger
  input.  I just can't off the top of my head, remember what those stream tags are at the moment.  But the basic issue is that Gnu Radio
  uses a streaming model, and while UHD itself (at the C++ level) has fine-grianed control over transmitter functions, etc, gr-uhd doesn't
  directly expose any of that, because there's just not mechanism within Gnu Radio to expose that stuff.  The stream tagging, however,
  does allow you to control the transmitter state.  In the particular case of the XCVR2450, the hardware is physically incapable of
  TX and RX at the same time.


--  Marcus Leech Principal Investigator Shirleys Bay Radio Astronomy Consortium http://www.sbrac.org 

[Discuss-gnuradio] Audio Issues

I was able to get gnuradio to successfully compile using the script available
at (http://gnuradio.org/redmine/projects/gnuradio/wiki/InstallingGR) and I
updated my PYTHONPATH as the script instructed. However, none of the audio
examples are working. They run without returning any errors, but I don't
hear anything. As far as I can tell, I have ALSA installed (I'm using Ubuntu
10.04 with kernel 2.6.32-38, all updates installed). I tried updating
gr-audio.conf to use alsa and tried changing gr-audio-alsa.conf to use
plughw:0,0 instead of hw:0,0 - all to no avail. I don't believe oss is
installed on this system. Can anyone suggest a solutions? Thanks ahead of
time!

Edit: Sorry if this message is a repost, I'm having some trouble getting
registered through Nabble.
--
View this message in context: http://old.nabble.com/Audio-Issues-tp33402959p33402959.html
Sent from the GnuRadio mailing list archive at Nabble.com.


_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Re: [Discuss-gnuradio] help with QAM demodulation

On Mon, Feb 27, 2012 at 4:51 PM, Jeff Hodges <jeffhodges2@gmail.com> wrote:
Thanks Ben and Tom, you two have been very helpful.

The code Ben provided does work, and adjusting my GRC program to use the same parameters, I was able to achieve the expected results.

However, it appears there are two issues:

(1) When differential encoding is set to off for both mod/demod blocks, the output data becomes invalid

I'm not sure the differential en/decoder works for QAM. I suggested it before because of the bits that you sent us, but the gray coding was the problem, which makes more sense.
 
(2) When the samples per symbol is above 10 the output also becomes invalid.

I'm not sure why you would want to run it with that many sps, anyway. I'd probably have to dive back into the code to see what might be the problem there. Theoretically, it should be doable, but since I've never run it with that many, it's probably never been exercised.
 
Any ideas on what may be causing these discrepancies?

In response to Tom's questions, I am using 16-QAM and the constellation does look very noisy (both phase and amplitude) coming out of the QAM mod and being observed on the WX GUI Constellation Sink. But then again, there a lot of parameters on that signal processing block, so maybe I do not have the proper values set.

Thanks,

Jeff

The noise might be due to ISI since you're just coming out of a RRC filter at that point. Unless the constellation sink has another RRC in it. Also, that sink tries to do some synchronization designed for PSK signals, so it won't work great and might be causing some of your error. Try just using an oscope and plottng x verus y.

Tom

 
On Mon, Feb 27, 2012 at 12:50 PM, Ben Reynwar <ben@reynwar.net> wrote:
On Mon, Feb 27, 2012 at 10:00 AM, Ben Reynwar <ben@reynwar.net> wrote:
> On Mon, Feb 27, 2012 at 7:36 AM, Jeff Hodges <jeffhodges2@gmail.com> wrote:
>> Does anyone know if the QAM demodulator code is working properly?  I would
>> like to get a QAM demodulator working for a symbol rate of 300ksym/s. I
>> don't know whether I am just using the wrong parameters or if the blocks do
>> not work properly, but I am not getting the results I expect.
>>
>> To test the code out I am using the GRC. I have a vector source with a known
>> data sequence running into the qam mod block and then the output of that
>> into a QAM demod block. The output of the QAM demod is running into a Uchar
>> to Float, and I am plotting the results on a WX GUI Scope.  I have the exact
>> same settings on both the QAM mod and demod blocks.  The output I am seeing
>> on the scope looks completely random. (I also tried other vector source
>> data: When the input is 0x0F, repeating, the output I see is 00001010
>> repeating. But when I use 0x0E, the results are random again.)
>>
>> I have also tried demodulating a real QAM signal with a known data sequence,
>> also to no avail.
>>
>> I have been working on this for about a month now and haven't had any
>> success.  I have examined the underlying QAM.py and generic_mod,
>> generic_demod codes, and they seem to be written properly. But I am not
>> getting the expected results.
>>
>> Any help with this problem or advice you can give will be greatly
>> appreciated, and I will return the favor by helping out in any way that I
>> can.
>>
>> Thank you very much in advance,
>>
>> Jeff
>>
>> _______________________________________________
>> Discuss-gnuradio mailing list
>> Discuss-gnuradio@gnu.org
>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>
>
> If it's not working it's probably my fault, so I'll do some tests
> myself today and get back to you.
>
> Cheers,
> Ben

I found a bug in the xml file for the demodulator that would cause
problems if you requested no gray-coding.
It cause gnuradio-companion to pass an incorrect parameter name.
A fix is at https://github.com/benreynwar/gnuradio/commit/e68ab8589ca235563f8c061fbb79d13793d1f21f

In case that wasn't your problem I'll post an example that works for me:

from gnuradio import gr, digital

class qam_mod_demod(gr.top_block):

   def __init__(self):
       super(qam_mod_demod, self).__init__()
       src = gr.vector_source_b([1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0,
0, 0]*1000)
       packer = gr.unpacked_to_packed_bb(1, gr.GR_MSB_FIRST)
       self.snk = gr.vector_sink_b()
       mod = digital.qam.qam_mod(constellation_points=16,
mod_code="gray",
                                 differential=True,
samples_per_symbol=2,
                                 excess_bw=0.35)
       demod = digital.qam.qam_demod(constellation_points=16,
mod_code="gray",
                                     differential=True,
samples_per_symbol=2,
                                     excess_bw=0.35,
freq_bw=6.28/100.0,
                                     timing_bw=6.28/100.0,
phase_bw=6.28/100.0)
       unpacker = gr.packed_to_unpacked_bb(8, gr.GR_MSB_FIRST)
       self.connect(src, packer, mod, demod, unpacker, self.snk)

if __name__ == '__main__':
   qmd = qam_mod_demod()
   qmd.run()
   data = qmd.snk.data()
   print(data)


Re: [Discuss-gnuradio] help with QAM demodulation

Thanks Ben and Tom, you two have been very helpful.

The code Ben provided does work, and adjusting my GRC program to use the same parameters, I was able to achieve the expected results.

However, it appears there are two issues:

(1) When differential encoding is set to off for both mod/demod blocks, the output data becomes invalid
(2) When the samples per symbol is above 10 the output also becomes invalid.

Any ideas on what may be causing these discrepancies?

In response to Tom's questions, I am using 16-QAM and the constellation does look very noisy (both phase and amplitude) coming out of the QAM mod and being observed on the WX GUI Constellation Sink. But then again, there a lot of parameters on that signal processing block, so maybe I do not have the proper values set.

Thanks,

Jeff

On Mon, Feb 27, 2012 at 12:50 PM, Ben Reynwar <ben@reynwar.net> wrote:
On Mon, Feb 27, 2012 at 10:00 AM, Ben Reynwar <ben@reynwar.net> wrote:
> On Mon, Feb 27, 2012 at 7:36 AM, Jeff Hodges <jeffhodges2@gmail.com> wrote:
>> Does anyone know if the QAM demodulator code is working properly?  I would
>> like to get a QAM demodulator working for a symbol rate of 300ksym/s. I
>> don't know whether I am just using the wrong parameters or if the blocks do
>> not work properly, but I am not getting the results I expect.
>>
>> To test the code out I am using the GRC. I have a vector source with a known
>> data sequence running into the qam mod block and then the output of that
>> into a QAM demod block. The output of the QAM demod is running into a Uchar
>> to Float, and I am plotting the results on a WX GUI Scope.  I have the exact
>> same settings on both the QAM mod and demod blocks.  The output I am seeing
>> on the scope looks completely random. (I also tried other vector source
>> data: When the input is 0x0F, repeating, the output I see is 00001010
>> repeating. But when I use 0x0E, the results are random again.)
>>
>> I have also tried demodulating a real QAM signal with a known data sequence,
>> also to no avail.
>>
>> I have been working on this for about a month now and haven't had any
>> success.  I have examined the underlying QAM.py and generic_mod,
>> generic_demod codes, and they seem to be written properly. But I am not
>> getting the expected results.
>>
>> Any help with this problem or advice you can give will be greatly
>> appreciated, and I will return the favor by helping out in any way that I
>> can.
>>
>> Thank you very much in advance,
>>
>> Jeff
>>
>> _______________________________________________
>> Discuss-gnuradio mailing list
>> Discuss-gnuradio@gnu.org
>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>
>
> If it's not working it's probably my fault, so I'll do some tests
> myself today and get back to you.
>
> Cheers,
> Ben

I found a bug in the xml file for the demodulator that would cause
problems if you requested no gray-coding.
It cause gnuradio-companion to pass an incorrect parameter name.
A fix is at https://github.com/benreynwar/gnuradio/commit/e68ab8589ca235563f8c061fbb79d13793d1f21f

In case that wasn't your problem I'll post an example that works for me:

from gnuradio import gr, digital

class qam_mod_demod(gr.top_block):

   def __init__(self):
       super(qam_mod_demod, self).__init__()
       src = gr.vector_source_b([1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0,
0, 0]*1000)
       packer = gr.unpacked_to_packed_bb(1, gr.GR_MSB_FIRST)
       self.snk = gr.vector_sink_b()
       mod = digital.qam.qam_mod(constellation_points=16,
mod_code="gray",
                                 differential=True,
samples_per_symbol=2,
                                 excess_bw=0.35)
       demod = digital.qam.qam_demod(constellation_points=16,
mod_code="gray",
                                     differential=True,
samples_per_symbol=2,
                                     excess_bw=0.35,
freq_bw=6.28/100.0,
                                     timing_bw=6.28/100.0,
phase_bw=6.28/100.0)
       unpacker = gr.packed_to_unpacked_bb(8, gr.GR_MSB_FIRST)
       self.connect(src, packer, mod, demod, unpacker, self.snk)

if __name__ == '__main__':
   qmd = qam_mod_demod()
   qmd.run()
   data = qmd.snk.data()
   print(data)