# Struggling with 16QAM \<--\> UDP

**URL:** <https://www.ruby-forum.com/t/struggling-with-16qam-udp/232343>\
**Category:** GNU Radio\
**Created:** [October 3, 2014, 5:50pm UTC](https://www.ruby-forum.com/t/struggling-with-16qam-udp/232343 "2014-10-03T17:50:22Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![addis\_a](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/c4cdca/32.png) [@addis\_a](https://www.ruby-forum.com/u/addis_a)\
**Post date:** [October 3, 2014, 5:50pm UTC](https://www.ruby-forum.com/t/struggling-with-16qam-udp/232343/1 "2014-10-03T17:50:22Z")

</div>

Good Day,

The overarching goal of my project is to build and test a one-way  
transmitter/receiver pair. The bare-bones block diagram is UDP input --\>  
16QAM modulation --\> bladeRF Tx --\> channel —\> bladeRF Rx --\>  
polyphase clock --\> 16QAM demod --\> UDP output

When I sent this over the air I kept getting a garbage/unexpected output  
so now I’m going through the system and simming things again. For now  
I’ve cut out the UDP source and am testing specific values. My  
questions/problems:

1. If I use a random source set to (0,1), or a constant source set to 0,  
the Qt Gui Time sink displays a flat line @ 0. But if I use a random  
source of (1,2) --which _should_ output “1”-- or I use a constant source  
of 1, the Gui Time sink doesn’t display a flat line @ 1 but a bunch of  
discrete points, mostly 1’s but apparently also some 0’s.

2. Likewise, input 0 gives a Gui Constellation output that one would  
expect for a grey-coded symbol of “0000” (this and ONLY this  
constellation point appears). However, input 1 doesn’t generate one  
point at “1111”, but the full 16-point constellation, which means the  
QAM Mod block is outputting a bunch of mixed 1’s and 0’s. I realize the  
block causes ISI but why is it apparently so severe for an input of “1”  
and not for an input of “0”?

3. What is the _exact_ constellation used by the QAM block? There are  
multiple ways to grey-code 16QAM…you’ll notice that my LMS-DD  
Equalizer is disabled. I think the QAM Constellation Object that I  
specified doesn’t match the grey coding of the QAM Mod.

4. Finally, I was testing my transmission @ 801MHz. I noticed that the  
radio is broadcasting even if the UDP source has no inputs (i.e. I’ve  
typed nothing, or not sent a file). How do I get the radio to _NOT_  
broadcast unless it actually receives some data input? Can I not do this  
in GNURadio, and have to dig into the python code by hand?

Tx Setup: Sony Laptop, i5 dual core 4GB RAM, bladeRFx40 over USB3.  
Debian Jessie + GNURadio 3.7.5  
Rx Setup: custom desktop, i7 quad core + 16GB RAM, bladeRFx40 over USB3,  
GNURadio 3.7.5 live persistent USB thumb drive (16GB, over USB3).

---

<div class="post-metadata">

**Author:** ![quangn](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/q/e47774/32.png) [@quangn](https://www.ruby-forum.com/u/quangn)\
**Post date:** [October 3, 2014, 5:53pm UTC](https://www.ruby-forum.com/t/struggling-with-16qam-udp/232343/2 "2014-10-03T17:53:14Z")

</div>

Forgot to attach the flowgraph. -\_-
