# Help: QAM Constellation and PolyPhase Clock

**URL:** <https://www.ruby-forum.com/t/help-qam-constellation-and-polyphase-clock/235998>\
**Category:** GNU Radio\
**Created:** [July 29, 2013, 6:21pm UTC](https://www.ruby-forum.com/t/help-qam-constellation-and-polyphase-clock/235998 "2013-07-29T18:21:43Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![alcina](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/a587f6/32.png) [@alcina](https://www.ruby-forum.com/u/alcina)\
**Post date:** [July 29, 2013, 6:21pm UTC](https://www.ruby-forum.com/t/help-qam-constellation-and-polyphase-clock/235998/1 "2013-07-29T18:21:43Z")

</div>

I have simple 16QAM Modulator block and am plotting the constellation  
with and without the a polyphase clock block . The constellation  
directly out of the modulator is not 16 “points” or even blobs but  
“random” looking points. I put it into a QAM Demod block and it  
demodulates it correctly. The constellation plot of the polyphase clock  
block shows 16 distinct “points” but when demodulated is quite noisy.  
Can anyone explain:

1. Why is the output of the QAM Modulator block not show as 16 points?
2. Why would the “corrected” QAM Modulation not give better demodulation  
output?

I have attached the ConstellationQuestion.grc file.  
Thanks…Tom

---

<div class="post-metadata">

**Author:** ![tom\_sutherland](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/85f322/32.png) [@tom\_sutherland](https://www.ruby-forum.com/u/tom_sutherland)\
**Post date:** [July 29, 2013, 6:39pm UTC](https://www.ruby-forum.com/t/help-qam-constellation-and-polyphase-clock/235998/2 "2013-07-29T18:39:50Z")

</div>

On Mon, Jul 29, 2013 at 12:14 PM, tom sutherland [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> I have attached the ConstellationQuestion.grc file.  
> Thanks…Tom

It’s what’s called ISI, or inter-symbol interference. The modulator  
applies a pulse shaping filter to the transmitted signal, which in  
this case is a root raised cosine filter. That has properties that  
actually “smear” the symbols in time and make them overlap in this  
way. That’s expected and what it’s supposed to do. Also, you have now  
increased the sampling rate to 4 samples / symbol, so you’ll get  
points in between the actual symbol points now.

The clock recovery block in this case uses another root raised cosine  
filter. The convolution of an RRC with an RRC is a raised cosine  
filter, which is a Nyquist filter, and so you’ve removed the ISI  
you’ve introduced in the first RRC stage. This also finds the correct  
symbol points and outputs 1 sample per symbol. The PFB still has a  
little bit of noise added due to the quantization of the possible  
phases. If you increase nfilts, you’ll see this quantization noise go  
down. But the noise using 32 filters is about the same quantization  
noise you get for 16 bits of precision, so that limits your situation  
there. Besides, you’re going to quickly become dominated by thermal  
noise.

Tom
