# Help QAM16 Encoding / Transmission

**URL:** <https://www.ruby-forum.com/t/help-qam16-encoding-transmission/235812>\
**Category:** GNU Radio\
**Created:** [July 17, 2013, 6:36am UTC](https://www.ruby-forum.com/t/help-qam16-encoding-transmission/235812 "2013-07-17T06:36:26Z")\
**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 17, 2013, 6:36am UTC](https://www.ruby-forum.com/t/help-qam16-encoding-transmission/235812/1 "2013-07-17T06:36:26Z")

</div>

I want to QAM16 encode a band limited (0-3khz) signal on one computer. I  
want to connect this computer to another computer running a QAM16  
Decoder program. The QAM16 encoded signal needs to be able to be sent  
over the audio channel(single channel) of the computer. How can take the  
complex output of the QAM16 module and “mix” it so that it can be sent  
over a single audio channel? Need also to demodulate it on the other  
side.

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 17, 2013, 6:47pm UTC](https://www.ruby-forum.com/t/help-qam16-encoding-transmission/235812/2 "2013-07-17T18:47:19Z")

</div>

On Wed, Jul 17, 2013 at 12:35 AM, tom sutherland [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> I want to QAM16 encode a band limited (0-3khz) signal on one computer. I  
> want to connect this computer to another computer running a QAM16 Decoder  
> program. The QAM16 encoded signal needs to be able to be sent over the audio  
> channel(single channel) of the computer. How can take the complex output of  
> the QAM16 module and “mix” it so that it can be sent over a single audio  
> channel? Need also to demodulate it on the other side.
> 
> Thanks…Tom

To maintain the phase information, you need to move the entire signal  
from complex baseband (where it’s centered at 0 and has information on  
both sides) to some frequency that is purely in the positive  
frequency. This probably means interpolating the signal first to give  
you room to move it, then multiplying it with a complex sinusoid at  
the new center frequency to do the actual frequency shift. Then take  
the real part (complex\_to\_real block).

Regarding the upsampling and shift, if you’re brave, you can try using  
the pfb\_synthesizer\_ccf block with 3 channels. Put a null source into  
channels 1 and 3 and your original signal into channel 2. That would  
upsample the signal by a factor 3 and place your signal in the right  
place (channel 0 spans 0 Hz, channel 1 is in the positive freq and  
channel 2 is in the negative freq).

Probably easiest to start with an interpolating filter and doing the  
frequency shift using a complex multiply, though.

Tom
