# QPSK with direct-sequence spread spectrum

**URL:** <https://www.ruby-forum.com/t/qpsk-with-direct-sequence-spread-spectrum/213366>\
**Category:** GNU Radio\
**Created:** [October 31, 2011, 2:10pm UTC](https://www.ruby-forum.com/t/qpsk-with-direct-sequence-spread-spectrum/213366 "2011-10-31T14:10:19Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![dubstep](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/cdc98d/32.png) [@dubstep](https://www.ruby-forum.com/u/dubstep)\
**Post date:** [October 31, 2011, 2:10pm UTC](https://www.ruby-forum.com/t/qpsk-with-direct-sequence-spread-spectrum/213366/1 "2011-10-31T14:10:19Z")

</div>

Hi all,

I’m wondering if spreading a bitstream (XOR-ing each bit with  
SPREAD\_FACTOR bits of sequence) before QPSK modulation is equivalent to  
operating on the modulated stream, i.e., multiplying the complex output  
with -1’s and 1’s from the sequence. So far I can’t get the math to work  
out. Any suggestions?

Thanks,  
Sean

---

<div class="post-metadata">

**Author:** ![NowlanS\_Sean](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/f05b48/32.png) [@NowlanS\_Sean](https://www.ruby-forum.com/u/NowlanS_Sean)\
**Post date:** [October 31, 2011, 7:00pm UTC](https://www.ruby-forum.com/t/qpsk-with-direct-sequence-spread-spectrum/213366/2 "2011-10-31T19:00:09Z")

</div>

In general you’re right, but it depends on the details. Its usually  
quite  
straightforward, but a common mistake is to use the wrong bit-to-symbol  
mapping. 0 → +1 and 1 → -1 means that an XOR applied to bits is  
equivalent to multiplication applied to symbols.

Nowlan, Sean wrote:

> Sean
> 
> * * *
> 
> Discuss-gnuradio mailing list  
> [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
> [Discuss-gnuradio Info Page](https://lists.gnu.org/mailman/listinfo/discuss-gnuradio)

–  
View this message in context:  
[http://old.nabble.com/QPSK-with-direct-sequence-spread-spectrum-tp32752034p32754111.html](http://old.nabble.com/QPSK-with-direct-sequence-spread-spectrum-tp32752034p32754111.html)  
Sent from the GnuRadio mailing list archive at [Nabble.com](http://Nabble.com).

---

<div class="post-metadata">

**Author:** ![NowlanS\_Sean](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/f05b48/32.png) [@NowlanS\_Sean](https://www.ruby-forum.com/u/NowlanS_Sean)\
**Post date:** [November 2, 2011, 5:27pm UTC](https://www.ruby-forum.com/t/qpsk-with-direct-sequence-spread-spectrum/213366/3 "2011-11-02T17:27:34Z")

</div>

I second Peter. As long as you make sure in your gray-coded QPSK  
constellation, 0 is mapped to +1 and 1 is mapped to -1 then XOR is  
equivalent to multiplication.
