# Constellation Object

**URL:** <https://www.ruby-forum.com/t/constellation-object/232921>\
**Category:** GNU Radio\
**Created:** [November 5, 2014, 3:13am UTC](https://www.ruby-forum.com/t/constellation-object/232921 "2014-11-05T03:13:09Z")\
**Posts on this page:** 4\
**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:** [November 5, 2014, 3:13am UTC](https://www.ruby-forum.com/t/constellation-object/232921/1 "2014-11-05T03:13:09Z")

</div>

The symbol map feature of the constellation object doesn’t seem to do  
anything. In fact, you can leave it blank. The index of the  
constellation  
points is used to map the complex points to bits. The documentation  
leads  
one to believe otherwise. Working as intended?

v/r,  
Rich

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [November 10, 2014, 7:31pm UTC](https://www.ruby-forum.com/t/constellation-object/232921/2 "2014-11-10T19:31:55Z")

</div>

On Tue, Nov 4, 2014 at 9:11 PM, Richard B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> The symbol map feature of the constellation object doesn’t seem to do  
> anything. In fact, you can leave it blank. The index of the constellation  
> points is used to map the complex points to bits. The documentation leads  
> one to believe otherwise. Working as intended?
> 
> v/r,  
> Rich

The symbol map is a list that maps to the constellation points. So  
constellation\_points[i] holds the symbol defined in symbol\_map[i]. An  
easy  
test to see this working is to take the default Constellation Object in  
GRC, which is defined for QPSK, and change the map to [0,1,3,3] and  
notice  
that the symbol 2 (10b) is missing in the output constellation. Without  
a  
symbol map defined, it defaults to it being [0, …, i-1]. The  
alternative  
is to crash or catch that the vector is empty and exit on an error.

There is the Digital Modulation page in the manual that describes these  
things. If you have suggestions for how to improve them, please send  
them  
along:

> **[GNU Radio Manual and C++ API Reference: Digital Modulation](https://www.gnuradio.org/doc/doxygen/page_digital.html)**

Tom

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [November 10, 2014, 8:13pm UTC](https://www.ruby-forum.com/t/constellation-object/232921/3 "2014-11-10T20:13:42Z")

</div>

On Mon, Nov 10, 2014 at 1:31 PM, Richard B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> was the index of the constellation point array that was mapping symbols.  
> Correct me if you experience different.
> 
> Rich

Yes, I’ve used the symbol map a lot to change behavior.

A simple way to explore this is to create a test application with a  
vector\_source → constellation modulator → throttle → qtgui  
constellation  
sink.

The vector\_source can be set to just repeat the same symbol over and  
over  
again 0 → 0x00, 1 → 0x55, 2 → 0xAA, and 3 → 0xFF. That way, you’ll  
only  
output one constellation point (assuming QPSK here). Then change your  
symbol map table to see how it affects where the constellation point  
goes.

Tom

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [November 10, 2014, 7:32pm UTC](https://www.ruby-forum.com/t/constellation-object/232921/4 "2014-11-10T19:32:31Z")

</div>

Hi Tom,

I read that page before making my post, and that’s what lead me to  
conclude the symbol map wasn’t working as intended. I ran a test by  
changing the symbol map array [0, 1, 3, 2] vs [1, 0, 3, 2] and noticed  
the output didn’t change. Only changing the constellation point order  
made a change in the output. [1+1j, -1+1j, -1-1j, -1+1j] vs [-1+1j,  
1+1j, -1-1j, -1+1j]

This lead me to conclude the symbol table wasn’t controlling anything,  
it was the index of the constellation point array that was mapping  
symbols. Correct me if you experience different.

Rich

Sent from my iPad
