<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DSP log &#187; Transmitter</title>
	<atom:link href="http://www.dsplog.com/category/transmit-signal/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dsplog.com</link>
	<description>Signal Processing for Communication</description>
	<lastBuildDate>Thu, 26 Jan 2012 01:29:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Non coherent demodulation of pi/8 D8PSK (TETRA)</title>
		<link>http://www.dsplog.com/2010/07/20/non-coherent-demodulation-of-pi8-d8psk-tetra/</link>
		<comments>http://www.dsplog.com/2010/07/20/non-coherent-demodulation-of-pi8-d8psk-tetra/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 01:14:41 +0000</pubDate>
		<dc:creator>Krishna Sankar</dc:creator>
				<category><![CDATA[Error Rate]]></category>
		<category><![CDATA[Transmitter]]></category>
		<category><![CDATA[TETRA]]></category>

		<guid isPermaLink="false">http://www.dsplog.com/?p=932</guid>
		<description><![CDATA[In TETRA specifications, one of the modulation technique used is Differential 8 Phase Shift Keying (D8PSK). We will discuss the bit error rate with non-coherent demodulation of D8PSK in Additive White Gaussian Noise (AWGN) channel. pi/8 D8PSK The incoming bit sequence is grouped into three bits and is mapped into differential phase as follows: B(3k-2) [...]
Related posts:<ol>
<li><a href='http://www.dsplog.com/2010/04/12/non-coherent-demodulation-of-pi4-dqpsk-tetra/' rel='bookmark' title='Non coherent demodulation of pi/4 DQPSK (TETRA)'>Non coherent demodulation of pi/4 DQPSK (TETRA)</a></li>
<li><a href='http://www.dsplog.com/2007/09/30/coherent-demodulation-of-dbpsk/' rel='bookmark' title='Coherent demodulation of DBPSK'>Coherent demodulation of DBPSK</a></li>
<li><a href='http://www.dsplog.com/2007/08/30/bit-error-rate-for-frequency-shift-keying-with-coherent-demodulation/' rel='bookmark' title='Bit Error Rate (BER) for frequency shift keying with coherent demodulation'>Bit Error Rate (BER) for frequency shift keying with coherent demodulation</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>In <a title="TETRA Air Interface specifications" href="http://webapp.etsi.org/WorkProgram/Report_WorkItem.asp?WKI_ID=22928&amp;curItemNr=116&amp;totalNrItems=483&amp;optDisplay=100000&amp;qSORT=HIGHVERSION&amp;qETSI_ALL=&amp;SearchPage=TRUE&amp;qTB_ID=218%3BTETRA&amp;qINCLUDE_SUB_TB=True&amp;qINCLUDE_MOVED_ON=&amp;qSTOP_FLG=&amp;qKEYWORD_BOOLEAN=&amp;qSTOPPING_OUTDATED=&amp;butSimple=Search&amp;includeNonActiveTB=FALSE&amp;includeSubProjectCode=&amp;qREPORT_TYPE=SUMMARY">TETRA specifications</a>, one of the modulation technique used is <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\frac{\pi}{8}" border="0" alt="" align="absmiddle" /> Differential 8 Phase Shift Keying (D8PSK). We will discuss the bit error rate with non-coherent demodulation of <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\frac{\pi}{8}" border="0" alt="" align="absmiddle" />D8PSK in Additive White Gaussian Noise (AWGN) channel.</p>
<p><span id="more-932"></span></p>
<h2>pi/8 D8PSK</h2>
<p>The incoming bit sequence is grouped into three bits and is mapped into differential phase as follows:</p>
<p><!--   		BODY,DIV,TABLE,THEAD,TBODY,TFOOT,TR,TH,TD,P { font-family:"Arial"; font-size:x-small } --></p>
<table style="height: 277px;" border="0" cellspacing="0" width="363" frame="VOID" rules="NONE">
<colgroup>
<col width="86"></col>
<col width="86"></col>
<col width="86"></col>
<col width="86"></col>
</colgroup>
<tbody>
<tr>
<td width="86" height="17" align="CENTER"><strong>B(3k-2)</strong></td>
<td width="86" align="CENTER"><strong>B(3k-1)</strong></td>
<td width="86" align="CENTER"><strong>B(3k)</strong></td>
<td width="86" align="CENTER"><strong><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?D\phi(k)" border="0" alt="" align="absmiddle" /></strong></td>
</tr>
<tr>
<td height="17" align="CENTER">0</td>
<td align="CENTER">0</td>
<td align="CENTER">0</td>
<td align="CENTER"><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?+\frac{1\pi}{8}" border="0" alt="" align="absmiddle" /></td>
</tr>
<tr>
<td height="17" align="CENTER">0</td>
<td align="CENTER">0</td>
<td align="CENTER">1</td>
<td align="CENTER"><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?+\frac{3\pi}{8}" border="0" alt="" align="absmiddle" /></td>
</tr>
<tr>
<td height="17" align="CENTER">1</td>
<td align="CENTER">0</td>
<td align="CENTER">1</td>
<td align="CENTER"><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?+\frac{5\pi}{8}" border="0" alt="" align="absmiddle" /></td>
</tr>
<tr>
<td height="17" align="CENTER">1</td>
<td align="CENTER">0</td>
<td align="CENTER">0</td>
<td align="CENTER"><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?+\frac{7\pi}{8}" border="0" alt="" align="absmiddle" /></td>
</tr>
<tr>
<td height="17" align="CENTER">0</td>
<td align="CENTER">1</td>
<td align="CENTER">0</td>
<td align="CENTER"><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?-\frac{1\pi}{8}" border="0" alt="" align="absmiddle" /></td>
</tr>
<tr>
<td height="17" align="CENTER">0</td>
<td align="CENTER">1</td>
<td align="CENTER">1</td>
<td align="CENTER"><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?-\frac{3\pi}{8}" border="0" alt="" align="absmiddle" /></td>
</tr>
<tr>
<td height="17" align="CENTER">1</td>
<td align="CENTER">1</td>
<td align="CENTER">1</td>
<td align="CENTER"><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?-\frac{5\pi}{8}" border="0" alt="" align="absmiddle" /></td>
</tr>
<tr>
<td height="17" align="CENTER">1</td>
<td align="CENTER">1</td>
<td align="CENTER">0</td>
<td align="CENTER"><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?-\frac{7\pi}{8}" border="0" alt="" align="absmiddle" /></td>
</tr>
</tbody>
</table>
<p><strong>Table : Phase transitions for <img src="../../cgi-bin/mimetex.cgi?\frac{\pi}{8}" border="0" alt="" align="absmiddle" /> D8PSK modulation (Ref Table 5.2 of<a title="TETRA Air Interface specifications" href="http://webapp.etsi.org/WorkProgram/Report_WorkItem.asp?WKI_ID=22928&amp;curItemNr=116&amp;totalNrItems=483&amp;optDisplay=100000&amp;qSORT=HIGHVERSION&amp;qETSI_ALL=&amp;SearchPage=TRUE&amp;qTB_ID=218%3BTETRA&amp;qINCLUDE_SUB_TB=True&amp;qINCLUDE_MOVED_ON=&amp;qSTOP_FLG=&amp;qKEYWORD_BOOLEAN=&amp;qSTOPPING_OUTDATED=&amp;butSimple=Search&amp;includeNonActiveTB=FALSE&amp;includeSubProjectCode=&amp;qREPORT_TYPE=SUMMARY"> ETSI 301-893 V3.2.1</a>)</strong></p>
<p>The modulation symbol <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?S(k)" border="0" alt="" align="absmiddle" /> is formed by applying a phase offset to previous symbol <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?S(k-1)" border="0" alt="" align="absmiddle" /> and is defined as follows:</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?S(k) = S(k-1) e^{jD\phi(k)}" border="0" alt="" align="absmiddle" /> and</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?S(0) = 1" border="0" alt="" align="absmiddle" />.</p>
<p>Alternately, the phase transitions can be represented as</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\phi(k) = \phi(k-1) + D\phi(k)" border="0" alt="" align="absmiddle" />.</p>
<p>The constellation of the <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\frac{\pi}{8}" border="0" alt="" align="absmiddle" /> D8PSK occupies phase values separated by <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\frac{\pi}{8}" border="0" alt="" align="absmiddle" />as shown below in the blue dots. The red lines shows all possible phase transitions.</p>
<p><strong><strong><a href="http://www.dsplog.com/db-install/wp-content/uploads/2010/04/constellation_pi_4_dqpsk_tetra_specifications.png"><img class="alignnone size-full wp-image-934" title="Constellation pi/8 d8psk TETRA specifications" src="http://www.dsplog.com/db-install/wp-content/uploads/2010/07/constellation_pi_8_d8psk_tetra_specifications.png" alt="" width="448" height="336" /><br />
</a></strong></strong></p>
<p><strong><strong>Figure: Constellation of </strong></strong><strong><img src="../../cgi-bin/mimetex.cgi?\frac{\pi}{8}" border="0" alt="" align="absmiddle" /></strong><strong><strong> D8PSK </strong></strong><strong>(Ref Figure 5.2 of <a title="TETRA Air Interface specifications" href="http://webapp.etsi.org/WorkProgram/Report_WorkItem.asp?WKI_ID=22928&amp;curItemNr=116&amp;totalNrItems=483&amp;optDisplay=100000&amp;qSORT=HIGHVERSION&amp;qETSI_ALL=&amp;SearchPage=TRUE&amp;qTB_ID=218%3BTETRA&amp;qINCLUDE_SUB_TB=True&amp;qINCLUDE_MOVED_ON=&amp;qSTOP_FLG=&amp;qKEYWORD_BOOLEAN=&amp;qSTOPPING_OUTDATED=&amp;butSimple=Search&amp;includeNonActiveTB=FALSE&amp;includeSubProjectCode=&amp;qREPORT_TYPE=SUMMARY">ETSI 301-893 V3.2.1</a>)</strong></p>
<h2><strong>Channel Model</strong></h2>
<p>The transmitted waveform gets corrupted by noise <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?n" border="0" alt="" align="absmiddle" />, typically referred to as <strong>Additive White Gaussian Noise</strong> (AWGN).</p>
<p><strong>Additive</strong> : As the noise gets &#8216;added&#8217; (and not multiplied) to the received signal</p>
<p><strong>White</strong> : The spectrum of the noise if flat for all frequencies.</p>
<p><strong>Gaussian</strong> : The values of the noise <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?n" border="0" alt="" align="absmiddle" /> follows the Gaussian probability distribution function, <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?p%28n%29%20=%20%5Cfrac%7B1%7D%7B%5Csqrt%7B2%5Cpi%5Csigma%5E2%7D%7De%5E%7B%5Cfrac%7B-%28n-%5Cmu%29%5E2%7D%7B2%5Csigma%5E2%7D" border="0" alt="" align="absmiddle" /></p>
<p>with mean <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\mu=0" border="0" alt="" align="absmiddle" /> and</p>
<p>variance <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?%5Csigma%5E2%20=%20%5Cfrac%7BN_0%7D%7B2%7D" border="0" alt="" align="absmiddle" />.</p>
<p>The received symbol is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?y(k) = S(k) + n(k)" border="0" alt="" align="absmiddle" /></p>
<h2>Non Coherent Receiver</h2>
<p>A non-coherent receiver relies on the phase transitions between consecutive symbols to form an estimate of the transmitted bits. The sequence of operation is as follows:</p>
<p>a) On the received symbols estimate the phase</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\hat{\phi}(k) = \angle y(k)" border="0" alt="" align="absmiddle" /></p>
<p>b) Find the delta of the estimated phase between consecutive symbols</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\hat{D}\phi(k) = \hat{\phi}(k)-\hat{\phi}(k-1)" border="0" alt="" align="absmiddle" /></p>
<p>c) Quantize the estimated delta phase values lying from <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?[-\pi,\mbox{ } +\pi)" border="0" alt="" align="absmiddle" /> as follows and convert to bits per the following encoding:</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\begin{array} &lt;br /&gt; -\pi &amp; \le &amp; \hat{D}\phi(k) &amp; &lt;  &amp; -\frac{3\pi}{4} &amp; \right &amp;  -\frac{7\pi}{8}&amp; : &amp; 110\\  &lt;br /&gt; -\frac{3\pi}{4} &amp; \le &amp; \hat{D}\phi(k) &amp; &lt; &amp; -\frac{\pi}{2} &amp; \right &amp;  -\frac{5\pi}{8}&amp; : &amp; 111\\ &lt;br /&gt; -\frac{\pi}{2} &amp; \le &amp;\hat{D}\phi(k) &amp; &lt; &amp; -\frac{\pi}{4} &amp; \right &amp; -\frac{3\pi}{8}&amp; : &amp; 011\\ -\frac{\pi}{4} &amp; \le &amp; \hat{D}\phi(k) &amp; &lt;&amp; 0 &amp; \right &amp;  -\frac{\pi}{8}&amp; : &amp;010\\  0 &amp; \le &amp; \hat{D}\phi(k) &amp; &lt;&amp; \frac{\pi}{4} &amp; \right &amp;  +\frac{\pi}{8}&amp; : &amp;000\\ \frac{\pi}{4} &amp; \le &amp; \hat{D}\phi(k) &amp; &lt;&amp; \frac{\pi}{2} &amp; \right &amp;  +\frac{3\pi}{8}&amp; : &amp;001 \\  \frac{\pi}{2} &amp; \le &amp; \hat{D}\phi(k) &amp; &lt;&amp; \frac{3\pi}{4} &amp; \right &amp;  +\frac{5\pi}{8}&amp; : &amp;101 \\ \frac{3\pi}{4} &amp; \le &amp; \hat{D}\phi(k) &amp; &lt;&amp; \pi &amp; \right &amp;  +\frac{7\pi}{8}&amp; : &amp;100 \\ \end{array}" border="0" alt="" align="absmiddle" /> .</p>
<h2>Simulation results</h2>
<p>The script performs the following</p>
<p>(a) Generate random binary sequence of +1&#8242;s and 0&#8242;s.</p>
<p>(b) Group three bits together and apply <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\frac{\pi}{8}" border="0" alt="" align="absmiddle" /> D8PSK modulation</p>
<p>(c) Add white Gaussian noise.</p>
<p>(d) At the receiver, estimate the phase of the received symbols. Based on the delta of the received phase, estimate the transmitted bits</p>
<p>(e) Repeat for multiple values of <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\frac{E_b}{N_0}" border="0" alt="" align="absmiddle" /> and plot the simulation and theoretical results.</p>
<p>Click here to download the <a href="http://www.dsplog.com/db-install/wp-content/uploads/2010/07/script_ber_tetra_pi_8_d8psk_awgn.m">Script for computing BER for non coherent demodulation of pi/8 D8PSK in AWGN</a></p>
<p><img title="BER plot pi_8 D8PSK non_coherent demod in awgn" src="http://www.dsplog.com/db-install/wp-content/uploads/2010/07/ber_plot_pi_8_d8psk_non_coherent_demod_in_awgn.png" alt="" width="448" height="336" /></p>
<p><strong>Figure: BER plot for <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\frac{\pi}{8}" border="0" alt="" align="absmiddle" /> D8PSK with non-coherent demodulation</strong></p>
<h2>Comments</h2>
<p>As I did not find the theoretical BER equations for <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\frac{\pi}{8}" border="0" alt="" align="absmiddle" /> D8PSK, was unable to compare it with the simulated results.</p>
<h2>Reference</h2>
<p><a title="Digital Communication by Proakis" href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FDigital-Communications-John-Proakis%2Fdp%2F0072321113&amp;tag=dl04-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Digital Communications by Proakis, 4th Edition</a></p>
<p>Related posts:<ol>
<li><a href='http://www.dsplog.com/2010/04/12/non-coherent-demodulation-of-pi4-dqpsk-tetra/' rel='bookmark' title='Non coherent demodulation of pi/4 DQPSK (TETRA)'>Non coherent demodulation of pi/4 DQPSK (TETRA)</a></li>
<li><a href='http://www.dsplog.com/2007/09/30/coherent-demodulation-of-dbpsk/' rel='bookmark' title='Coherent demodulation of DBPSK'>Coherent demodulation of DBPSK</a></li>
<li><a href='http://www.dsplog.com/2007/08/30/bit-error-rate-for-frequency-shift-keying-with-coherent-demodulation/' rel='bookmark' title='Bit Error Rate (BER) for frequency shift keying with coherent demodulation'>Bit Error Rate (BER) for frequency shift keying with coherent demodulation</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.dsplog.com/2010/07/20/non-coherent-demodulation-of-pi8-d8psk-tetra/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>TETRA Air interface specifications &#8211; Overview</title>
		<link>http://www.dsplog.com/2010/02/02/tetra-air-interface-specifications/</link>
		<comments>http://www.dsplog.com/2010/02/02/tetra-air-interface-specifications/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 00:47:51 +0000</pubDate>
		<dc:creator>Krishna Sankar</dc:creator>
				<category><![CDATA[Transmitter]]></category>
		<category><![CDATA[TETRA]]></category>

		<guid isPermaLink="false">http://www.dsplog.com/?p=881</guid>
		<description><![CDATA[TETRA (TErrestrial Trunked RAdio) is a wireless specification intended to be used by government agencies, public health services, rail transport, military etc. TETRA specification comes from ETSI (European Telecommunication Standards Institute). We plan to start a post series on the building blocks of TETRA physical layer and radio specifications and this is the first post [...]
Related posts:<ol>
<li><a href='http://www.dsplog.com/2010/07/20/non-coherent-demodulation-of-pi8-d8psk-tetra/' rel='bookmark' title='Non coherent demodulation of pi/8 D8PSK (TETRA)'>Non coherent demodulation of pi/8 D8PSK (TETRA)</a></li>
<li><a href='http://www.dsplog.com/2010/04/12/non-coherent-demodulation-of-pi4-dqpsk-tetra/' rel='bookmark' title='Non coherent demodulation of pi/4 DQPSK (TETRA)'>Non coherent demodulation of pi/4 DQPSK (TETRA)</a></li>
<li><a href='http://www.dsplog.com/2008/02/17/cylcic-prefix-in-orthogonal-frequency-division-multiplexing/' rel='bookmark' title='Cylcic prefix in Orthogonal Frequency Division Multiplexing'>Cylcic prefix in Orthogonal Frequency Division Multiplexing</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p><a title="wiki entry on Tetra" href="http://en.wikipedia.org/wiki/Terrestrial_Trunked_Radio"><strong>TETRA</strong> (TErrestrial Trunked RAdio) </a>is a wireless specification intended to be used by government agencies, public health services, rail transport, military etc. TETRA specification comes from <a title="link to etsi website" href="http://www.etsi.org">ETSI (European Telecommunication Standards Institute)</a>. We plan to start a post series on the building blocks of TETRA physical layer and radio specifications and this is the first post towards that step.</p>
<p><span id="more-881"></span></p>
<h2>Documents</h2>
<p>a) All the standardization documents from ETSI are <a title="docs on TETRA from ETSI" href="http://webapp.etsi.org/WorkProgram/Frame_WorkItemList.asp?SearchPage=TRUE&amp;qSORT=HIGHVERSION&amp;qINCLUDE_SUB_TB=True&amp;qETSI_STANDARD_TYPE=&amp;qETSI_NUMBER=&amp;qMILESTONE=&amp;qACHIEVED_DAY=&amp;qACHIEVED_MONTH=&amp;qACHIEVED_YEAR=&amp;qREPORT_TYPE=SUMMARY&amp;optDisplay=ALL&amp;qTB_ID=218%3BTETRA&amp;includeNonActiveTB=FALSE&amp;butSimple=++Search++">available online here</a></p>
<p>b) From the above list, the key document for us to study the physical layer and RF specification is<br />
<a title="physical layer specification of TETRA" href="http://webapp.etsi.org/WorkProgram/Report_WorkItem.asp?WKI_ID=22928&amp;curItemNr=116&amp;totalNrItems=483&amp;optDisplay=100000&amp;qSORT=HIGHVERSION&amp;qETSI_ALL=&amp;SearchPage=TRUE&amp;qTB_ID=218%3BTETRA&amp;qINCLUDE_SUB_TB=True&amp;qINCLUDE_MOVED_ON=&amp;qSTOP_FLG=&amp;qKEYWORD_BOOLEAN=&amp;qSTOPPING_OUTDATED=&amp;butSimple=Search&amp;includeNonActiveTB=FALSE&amp;includeSubProjectCode=&amp;qREPORT_TYPE=SUMMARY"> Doc. Nb.   EN 300 392-2 Ver. 3.2.1, <strong>Terrestrial Trunked Radio (TETRA); Voice plus Data (V+D); Part 2: Air Interface (AI)</strong>. Ref. REN/TETRA-03152</a></p>
<h2>Physical Layer Overview</h2>
<p>TETRA specification allows for two modulation types</p>
<h3>a) Phase Modulation</h3>
<p>The overview of the building blocks in phase modulation is as shown below</p>
<p><img class="alignnone size-full wp-image-882" title="Overview of TETRA phase modulation" src="http://www.dsplog.com/db-install/wp-content/uploads/2010/02/tetra_phase_modulation_overview.png" alt="Overview of TETRA phase modulation" width="430" height="156" /></p>
<p><strong>Figure: Overview of TETRA phase modulation (reference Fig 4.1 ETSI EN 300 392-2 Ver 3.2.1)</strong></p>
<p>For phase modulation, based on the data type, the following channel coding schemes are employed</p>
<p>a) Reed Muller (30,14) code or Block Code</p>
<p>b) Rate Compatible Punctured Convolutional code (RCPC)</p>
<p>c) Block Interleaver</p>
<p>d) Scrambler</p>
<p>e) Modulation of <img src="../../cgi-bin/mimetex.cgi?\frac{\pi}{4}" border="0" alt="" align="absmiddle" /> Differential Quarternary Phase Shift Keying (<img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\frac{\pi}{4}" border="0" alt="" align="absmiddle" /> DQPSK) or <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\frac{\pi}{8}" border="0" alt="" align="absmiddle" /> Differential 8PSK (<img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\frac{\pi}{8}" border="0" alt="" align="absmiddle" /> D8PSK)</p>
<p><strong><br />
</strong></p>
<p><strong><img class="alignnone size-full wp-image-883" title="TETRA QAM modulation overview" src="http://www.dsplog.com/db-install/wp-content/uploads/2010/02/tetra_qam_modulation_overview.png" alt="TETRA QAM modulation overview" width="430" height="156" /></strong></p>
<p><strong>Figure: Overview of TETRA QAM modulation (reference Fig 4.2 ETSI EN 300 392-2 Ver 3.2.1)</strong></p>
<p>For QAM modulation, based on the data type, the following channel coding schemes are employed</p>
<p>a)  Reed Muller (16,5) code or Block code</p>
<p>b) Parallel Concatenated Convolutional Code (PCCC)</p>
<p>c) Interleaver</p>
<p>d) Scrambler<strong><br />
</strong></p>
<p>e) Modulation of 4-QAM, 16-QAM or 64&#8211;QAM</p>
<p>In the upcoming posts in this series we will discuss each of these building blocks in more detail. <strong><br />
</strong></p>
<p>Related posts:<ol>
<li><a href='http://www.dsplog.com/2010/07/20/non-coherent-demodulation-of-pi8-d8psk-tetra/' rel='bookmark' title='Non coherent demodulation of pi/8 D8PSK (TETRA)'>Non coherent demodulation of pi/8 D8PSK (TETRA)</a></li>
<li><a href='http://www.dsplog.com/2010/04/12/non-coherent-demodulation-of-pi4-dqpsk-tetra/' rel='bookmark' title='Non coherent demodulation of pi/4 DQPSK (TETRA)'>Non coherent demodulation of pi/4 DQPSK (TETRA)</a></li>
<li><a href='http://www.dsplog.com/2008/02/17/cylcic-prefix-in-orthogonal-frequency-division-multiplexing/' rel='bookmark' title='Cylcic prefix in Orthogonal Frequency Division Multiplexing'>Cylcic prefix in Orthogonal Frequency Division Multiplexing</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.dsplog.com/2010/02/02/tetra-air-interface-specifications/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Transmit beamforming</title>
		<link>http://www.dsplog.com/2009/04/13/transmit-beamforming/</link>
		<comments>http://www.dsplog.com/2009/04/13/transmit-beamforming/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 15:53:26 +0000</pubDate>
		<dc:creator>Krishna Sankar</dc:creator>
				<category><![CDATA[Diversity]]></category>
		<category><![CDATA[Transmitter]]></category>
		<category><![CDATA[beamforming]]></category>
		<category><![CDATA[Rayleigh]]></category>

		<guid isPermaLink="false">http://www.dsplog.com/?p=535</guid>
		<description><![CDATA[In this post lets discuss a closed-loop transmit diversity scheme, where the transmitter has the knowledge of the channel. As there is a feedback path required from the receiver, to communicate the channel seen by the receiver to the transmitter, the scheme is called closed-loop transmit diversity scheme. Recall that the transmit diversity using Space [...]
Related posts:<ol>
<li><a href='http://www.dsplog.com/2008/12/06/mimo-with-mmse-sic-and-optimal-ordering/' rel='bookmark' title='MIMO with MMSE SIC and optimal ordering'>MIMO with MMSE SIC and optimal ordering</a></li>
<li><a href='http://www.dsplog.com/2009/03/15/alamouti-stbc-2-receive-antenna/' rel='bookmark' title='Alamouti STBC with 2 receive antenna'>Alamouti STBC with 2 receive antenna</a></li>
<li><a href='http://www.dsplog.com/2008/09/28/maximal-ratio-combining/' rel='bookmark' title='Maximal Ratio Combining (MRC)'>Maximal Ratio Combining (MRC)</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>In this post lets discuss a <strong>closed-loop transmit diversity scheme</strong>, where the transmitter has the knowledge of the channel. As there is a feedback path required from the receiver, to communicate the channel seen by the receiver to the transmitter, the scheme is called closed-loop transmit diversity scheme. Recall that the <a href="http://www.dsplog.com/2008/10/16/alamouti-stbc/">transmit diversity using Space Time Coding (Alamouti STBC)</a> does not require the knowledge of the channel.  In this post, we will restrict our discussion to a 2 transmit, 1 receive case. We will assume that the channel is a flat fading <a title="Discussion on Rayleigh multipath channel" href="http://www.dsplog.com/2008/07/14/rayleigh-multipath-channel/" target="_self">Rayleigh multipath channel</a> and the modulation is BPSK.</p>
<p><span id="more-535"></span></p>
<h2>Channel Model</h2>
<p>1. We have 1 receive antennas and two transmit antenna.</p>
<p>2. The channel is flat fading &#8211; In simple terms, it means that the multipath channel has only one tap. So, the convolution operation reduces to a simple multiplication. For a more rigorous discussion on flat fading and frequency selective fading, may I urge you to review Chapter 15.3 Signal Time-Spreading from <a title="Digital Communications: Fundamentals and Applications (2nd Edition) - Bernard Sklar (Author)" href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FDigital-Communications-Fundamentals-Applications-Technologies%2Fdp%2F0130847887&amp;tag=dl04-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">[DIGITAL COMMUNICATIONS: SKLAR]</a><img style="border: medium none  ! important; margin: 0px ! important;" src="http://www.assoc-amazon.com/e/ir?t=dl04-20&amp;l=ur2&amp;o=1" border="0" alt="" width="1" height="1" /></p>
<p>3. The channel experienced by each receive antenna is randomly varying in time. For the <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?i^{th}" border="0" alt="" align="absmiddle" /> receive antenna, each transmitted symbol gets multiplied by a randomly varying complex number <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?h_i" border="0" alt="" align="absmiddle" />. As the channel under consideration is a Rayleigh channel, the real and imaginary parts of <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?h_i" border="0" alt="" align="absmiddle" /> are Gaussian distributed having mean <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\mu_{h_i}=0" border="0" alt="" align="absmiddle" /> and variance <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\sigma^2_{h_i}=\frac{1}{2}" border="0" alt="" align="absmiddle" />.</p>
<p>4. The channel experience by each transmit antenna to receive antenna is independent from the channel experienced by other transmit antennas.</p>
<p>5. On each receive antenna, the noise<img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?n" border="0" alt="" align="absmiddle" /> has the Gaussian probability density function with</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?p%28n%29%20=%20%5Cfrac%7B1%7D%7B%5Csqrt%7B2%5Cpi%5Csigma%5E2%7D%7De%5E%7B%5Cfrac%7B-%28n-%5Cmu%29%5E2%7D%7B2%5Csigma%5E2%7D" border="0" alt="" align="absmiddle" /> with <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?%5Cmu=0" border="0" alt="" align="absmiddle" /> and <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?%5Csigma%5E2%20=%20%5Cfrac%7BN_0%7D%7B2%7D" border="0" alt="" align="absmiddle" />.</p>
<p>6. At each transmit antenna, the channel <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?h_i" border="0" alt="" align="absmiddle" /> is known.</p>
<p><img class="alignnone" title="2 Trasmit 1 Receive beam steering" src="http://www.dsplog.com/db-install/wp-content/uploads/2009/04/2tx_1rx_beamforming.png" alt="" /></p>
<p><strong>Figure: 2 transmit 1 receive beam steering</strong></p>
<h2>Transmit Beamforming</h2>
<p>On the receive antenna, the received signal is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?y = \begin{eqnarray}[h_1 &amp; h_2]\end{eqnarray} \left[ \begin{eqnarray}x \\ \\ x \end{eqnarray}\right]+n = \underbrace{(h_1+h_2)}x + n" border="0" alt="" align="absmiddle" /> where,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?y" border="0" alt="" align="absmiddle" /> is the received symbol,<br />
<img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?h_i" border="0" alt="" align="absmiddle" /> is the channel on the <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?i^{th}" border="0" alt="" align="absmiddle" /> transmit antenna,<br />
<img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?x" border="0" alt="" align="absmiddle" /> is the transmitted symbol and<br />
<img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?n" border="0" alt="" align="absmiddle" /> is the noise on the receive antenna.</p>
<p>When transmit beamforming is applied, we <strong>multiply the symbol from each transmit antenna with a complex number corresponding to the inverse of the phase of the channel</strong> so as to ensure that the signals add constructively at the receiver. In this scenario, the received signal is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?y = \begin{eqnarray}[h_1 &amp; h_2]\end{eqnarray} \left[ \begin{eqnarray}e^{-j\theta_1} \\ \\ e^{-j\theta_2} \end{eqnarray}\right]x+n" border="0" alt="" align="absmiddle" />,</p>
<p>where,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?h_1 = |h_1|e^{j\theta_1}" border="0" alt="" align="absmiddle" /> and</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?h_2 = |h_2|e^{j\theta_2}" border="0" alt="" align="absmiddle" />.</p>
<p>In this case, the signal at the receiver is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?y = \underbrace{\left(|h_1| + |h_2|\right)}x + n" border="0" alt="" align="absmiddle" />.</p>
<p>For equalization, we need to divide the received symbol <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?y" border="0" alt="" align="absmiddle" />with the new effective channel, i.e,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\hat{y} = \frac{y}{\left(|h_1| + |h_2|\right)}=x + \frac{n}{\left(|h_1| + |h_2|\right)}" border="0" alt="" align="absmiddle" />.</p>
<h2>BER Simulation Model</h2>
<p>The Matlab/Octave script performs the following</p>
<p>(a) Generate random binary sequence of +1&#8242;s and -1&#8242;s.</p>
<p>(b) Multiply the symbols with the beam steering matrics &#8211; corresponding to the phase of the channel</p>
<p>(c) Perform equalization at the receiver</p>
<p>(d) Perform hard decision decoding and count the bit errors</p>
<p>(e) Repeat for multiple values of <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\frac{E_b}{N_0}" border="0" alt="" align="absmiddle" /> and plot the simulation and theoretical results.</p>
<p>Click here to download <a href="http://www.dsplog.com/db-install/wp-content/uploads/2009/04/script_ber_2transmit_1receive_beamforming_bpsk_rayleigh_channel.m">Matlab/Octave script for simulting BER for BPSK in flat fading Rayleigh channel with and without beamforming</a></p>
<p><a href="http://www.dsplog.com/db-install/wp-content/uploads/2009/04/script_ber_2transmit_1receive_beamforming_bpsk_rayleigh_channel.m"></a><img class="alignnone" title="BER plot for 2 transmit 1 receive beamforming for BPSK in Rayleigh channel" src="http://www.dsplog.com/db-install/wp-content/uploads/2009/04/ber_plot_2transmit_1receive_transmit_beamforming_with_bpsk_in_rayleigh_channel.png" alt="" width="448" height="336" /></p>
<p><strong>Figure: BER plot for 2 transmit 1 receive beamforming for BPSK in Rayleigh channel</strong></p>
<h2>Observations</h2>
<p>1. Sending the same information on multiple transmit antenna does not provide diversity gain. Intuituvely, this is due to the fact that the effective channel <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?h_1 + h_2" border="0" alt="" align="absmiddle" /> in a 2 transmit antenna case is again a Rayleigh channel; hence the BER performance is identical to 1 transmit 1 receive Rayleigh channel case.</p>
<p>2. If the transmit symbols are multiplied by a complex phase to ensure that the phases align at the receiver, there is diversity gain. However, the BER performance seems to be slighly poorer than the 1 transmit 2 receive MRC case. I guess, the noise is scaled by <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?|h_1| + |h_2|" border="0" alt="" align="absmiddle" /> in the case of transmit beamforming, whereas the noise scaling is different in the case of <a title="maximal ratio combining on dsplog.com" href="http://www.dsplog.com/2008/09/28/maximal-ratio-combining/">Maximal Ratio Combining</a>. I need to study bit more for a precise answer.</p>
<h2>Reference</h2>
<p><a title="Digital Communication: Third Edition, by John R. Barry, Edward A. Lee, David G. Messerschmitt" href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FDigital-Communication-John-R-Barry%2Fdp%2F0792375483&amp;tag=dl04-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">[DIG-COMM-BARRY-LEE-MESSERSCHMITT] </a><a title="Digital Communication: Third Edition, by John R. Barry, Edward A. Lee, David G. Messerschmitt" href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FDigital-Communication-John-R-Barry%2Fdp%2F0792375483&amp;tag=dl04-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Digital Communication: Third Edition, by John R. Barry, Edward A. Lee, David G. Messerschmitt</a><img style="border-style: none ! important; margin: 0px" src="http://www.assoc-amazon.com/e/ir?t=dl04-20&amp;l=ur2&amp;o=1" border="0" alt="" width="1" height="1" /></p>
<p><a title="Note on Receive diversity by Prof. RaviRaj Adve" href="http://www.comm.utoronto.ca/~rsadve/Notes/DiversityReceive.pdf"></a><a title="IEEExplore link for the Alamouti STBC paper" href="http://ieeexplore.ieee.org/iel4/49/15739/00730453.pdf" target="_self"> </a></p>
<p>Related posts:<ol>
<li><a href='http://www.dsplog.com/2008/12/06/mimo-with-mmse-sic-and-optimal-ordering/' rel='bookmark' title='MIMO with MMSE SIC and optimal ordering'>MIMO with MMSE SIC and optimal ordering</a></li>
<li><a href='http://www.dsplog.com/2009/03/15/alamouti-stbc-2-receive-antenna/' rel='bookmark' title='Alamouti STBC with 2 receive antenna'>Alamouti STBC with 2 receive antenna</a></li>
<li><a href='http://www.dsplog.com/2008/09/28/maximal-ratio-combining/' rel='bookmark' title='Maximal Ratio Combining (MRC)'>Maximal Ratio Combining (MRC)</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.dsplog.com/2009/04/13/transmit-beamforming/feed/</wfw:commentRss>
		<slash:comments>53</slash:comments>
		</item>
		<item>
		<title>IQ imbalance in transmitter</title>
		<link>http://www.dsplog.com/2009/03/08/iq-imbalance-in-transmitter/</link>
		<comments>http://www.dsplog.com/2009/03/08/iq-imbalance-in-transmitter/#comments</comments>
		<pubDate>Sun, 08 Mar 2009 14:31:09 +0000</pubDate>
		<dc:creator>Krishna Sankar</dc:creator>
				<category><![CDATA[Transmitter]]></category>
		<category><![CDATA[IQ]]></category>

		<guid isPermaLink="false">http://www.dsplog.com/?p=482</guid>
		<description><![CDATA[Typical communication systems use I-Q modulation and we had discussed the need for I-Q modulation in the past. In this post, let us understand I-Q imbalance and its effect on transmit signal. I-Q modulation and demodulation The typical I-Q modulation and demodulation is as shown in the figure below. Consider that the information to be [...]
Related posts:<ol>
<li><a href='http://www.dsplog.com/2008/01/19/simulating-minimum-shift-keying-transmitter/' rel='bookmark' title='Simulating Minimum Shift Keying Transmitter'>Simulating Minimum Shift Keying Transmitter</a></li>
<li><a href='http://www.dsplog.com/2009/06/16/msk-transmitter-receiver/' rel='bookmark' title='MSK transmitter and receiver'>MSK transmitter and receiver</a></li>
<li><a href='http://www.dsplog.com/2008/02/17/cylcic-prefix-in-orthogonal-frequency-division-multiplexing/' rel='bookmark' title='Cylcic prefix in Orthogonal Frequency Division Multiplexing'>Cylcic prefix in Orthogonal Frequency Division Multiplexing</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>Typical communication systems use I-Q modulation and we had discussed the <a href="http://www.dsplog.com/2008/04/05/need-for-i-q-modulator-and-demodulator/">need for I-Q modulation</a> in the past. In this post, let us understand I-Q imbalance and its effect on transmit signal.</p>
<p><span id="more-482"></span></p>
<h2>I-Q modulation and demodulation</h2>
<p>The typical I-Q modulation and demodulation is as shown in the figure below. Consider that the information to be transmitted is a complex signal,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?x = x_i + jx_q" border="0" alt="" align="absmiddle" />.</p>
<p>At the output of I-Q modulation transmitter is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\begin{eqnarray}y &amp; = &amp; \Re\{xe^{j2\pi f_c t} \}\\ &amp; = &amp; x_i cos(2\pi f_c t) - x_qsin(2\pi f_c t)\end{eqnarray}" border="0" alt="" align="absmiddle" /></p>
<p><img class="alignnone" title="IQ modulation and demodulation" src="http://www.dsplog.com/db-install/wp-content/uploads/2009/02/iq_modulation_transmit_receive.png" alt="" width="400" height="208" /></p>
<p><strong>Figure: I-Q modulation Transmitter and receiver</strong></p>
<p>At the transmitter, the information <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?x_i" border="0" alt="" align="absmiddle" /> is sent on <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?cos(2\pi f_ct)" border="0" alt="" width="88" height="26" align="absmiddle" /> and <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?x_q" border="0" alt="" align="absmiddle" /> is sent on <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?sin(2\pi f_ct)" border="0" alt="" align="absmiddle" />.</p>
<p>At the receiver, we multiply the signal <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?y" border="0" alt="" align="absmiddle" /> with <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?cos(2\pi f_ct)" border="0" alt="" align="absmiddle" /> and <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?-sin(2\pi f_ct)" border="0" alt="" align="absmiddle" /> followed by low pass filtering (LPF) to extract, <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\hat{x}_i" border="0" alt="" align="absmiddle" /> and <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\hat{x}_q" border="0" alt="" align="absmiddle" /> respectively.</p>
<p>From trigonmetric identies,<br />
<img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\int_0^Tcos(2\pi f_ct)cos(2\pi f_ct) = \frac{1}{2}\left[1 + cos(4\pi f_c t) \right]" border="0" alt="" align="absmiddle" />,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\int_0^Tsin(2\pi f_ct)sin(2\pi f_ct) = \frac{1}{2}\left[1 - cos(4\pi f_c t) \right]" border="0" alt="" align="absmiddle" />,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\int_0^Tcos(2\pi f_ct)sin(2\pi f_ct) = 0" border="0" alt="" align="absmiddle" />.</p>
<p>The math for extracting the information at the receiver is as follows:</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\begin{eqnarray}\hat{x}_i &amp; = &amp;\int_0^Tycos(2\pi f_c t) \\ &amp; = &amp; \int_0^T \left[x_i cos(2\pi f_c t) - x_qsin(2\pi f_c t)\right] cos(2\pi f_c t)\\ &amp; = &amp; \frac{x_i}{2}\end{eqnarray}" border="0" alt="" align="absmiddle" />.</p>
<p>Similarly for the Q-arm,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\begin{eqnarray}\hat{x}_q &amp; = &amp;\int_0^Ty( -sin(2\pi f_c t)) \\ &amp; = &amp; \int_0^T \left[x_i cos(2\pi f_c t) - x_qsin(2\pi f_c t)\right]  (-sin(2\pi f_c t))\\ &amp;=&amp; \frac{x_q}{2}\end{eqnarray}" border="0" alt="" align="absmiddle" />.</p>
<p>Ignoring the scaling factor of 1/2, we are able to recover both  <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?x_i" border="0" alt="" align="absmiddle" /> and <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?x_q" border="0" alt="" align="absmiddle" />.</p>
<h2>Phase imbalance in IQ modulation</h2>
<p>In an ideal I-Q modulator, the phase difference between the signals used for modulating the I arm and Q arm is 90degrees, resulting in using  <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?cos(2\pi f_ct)" border="0" alt="" width="88" height="26" align="absmiddle" /> and <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?sin(2\pi f_ct)" border="0" alt="" align="absmiddle" /> for sending <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?x_i" border="0" alt="" align="absmiddle" /> and <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?x_q" border="0" alt="" align="absmiddle" />.</p>
<p>When there is <strong>phase imbalance</strong>, the phase difference might not be exactly 90 degrees. We can consider that <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?cos(2\pi f_ct)" border="0" alt="" width="88" height="26" align="absmiddle" /> is used for sending <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?x_i" border="0" alt="" align="absmiddle" /> and <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?sin(2\pi f_ct + \phi)" border="0" alt="" align="absmiddle" /> for sending <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?x_q" border="0" alt="" align="absmiddle" />.</p>
<h2>Amplitude imbalance in IQ modulation</h2>
<p>When there is amplitude imbalance, there is small variation in the amplitude of thse sine and cosine arms in the modulator. This can be modelled as using <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?cos(2\pi f_ct)" border="0" alt="" width="88" height="26" align="absmiddle" /> for sending <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?x_i" border="0" alt="" align="absmiddle" /> and using <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?(1+\alpha)sin(2\pi f_ct)" border="0" alt="" align="absmiddle" /> for sending <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?x_q" border="0" alt="" align="absmiddle" />, where <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\alpha" border="0" alt="" align="absmiddle" /> is constant lying between 0 and 1.</p>
<p>The transmit signal including the effect of phase and amplitude imbalance is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\begin{eqnarray}y &amp; = &amp; x_i cos(2\pi f_c t) - x_q(1+\alpha)sin(2\pi f_c t + \phi)\end{eqnarray}" border="0" alt="" align="absmiddle" />.</p>
<h2>Received signal with IQ imbalance in transmitter</h2>
<p>Assuming that we have ideal IQ demodulator ie. at the receiver, we multiply the signal <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?y" border="0" alt="" align="absmiddle" /> with <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?cos(2\pi f_ct)" border="0" alt="" align="absmiddle" /> and <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?-sin(2\pi f_ct)" border="0" alt="" align="absmiddle" /> followed by low pass filtering (LPF) to extract, <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\hat{x}_i" border="0" alt="" align="absmiddle" /> and <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\hat{x}_q" border="0" alt="" align="absmiddle" /> respectively.</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\begin{eqnarray}\hat{x}_i &amp; = &amp;\int_0^Tycos(2\pi f_c t) \\ &amp; = &amp; \int_0^T \left[x_i cos(2\pi f_c t) - x_q(1+\alpha)sin(2\pi f_c t+\phi)\right] cos(2\pi f_c t)\\ &amp; = &amp; \frac{1}{2}\left[x_i- x_q(1+\alpha)sin(\phi)\right]\end{eqnarray}" border="0" alt="" align="absmiddle" />.</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\begin{eqnarray}\hat{x}_q &amp; = &amp;\int_0^Ty (-sin(2\pi f_c t)) \\ &amp; = &amp; \int_0^T \left[x_i cos(2\pi f_c t) - x_q(1+\alpha)sin(2\pi f_c t+\phi)\right] (-sin(2\pi f_c t))\\ &amp;=&amp; \frac{1}{2}\left[ x_q(1+\alpha)cos(\phi)\right]\end{eqnarray}" border="0" alt="" align="absmiddle" />.</p>
<p>As can be observed from the above equations, the desired signal is distorted due to the presence of IQ imbalance.</p>
<h2>Effect on spectrum due to I-Q imbalance</h2>
<p>To understand the effect of I-Q imbalance on the transmit signal, let us consider that the transmitted signal is <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?e^{2\pi f_m t}" border="0" alt="" align="absmiddle" /> i.e,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?x_i = cos(2\pi f_m t)" border="0" alt="" align="absmiddle" /> and<br />
<img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?x_q = sin(2\pi f_m t)" border="0" alt="" align="absmiddle" /></p>
<p>From the post on <a title="negative frequency on dsplog.com" href="http://www.dsplog.com/2008/08/08/negative-frequency/">negative frequency</a>, we know that such signal has a frequency component at <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?f_m" border="0" alt="" align="absmiddle" /> and NO frequency component at <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?-f_m" border="0" alt="" align="absmiddle" />.</p>
<p>In the presence of I-Q imbalance at the transmitter, the received signal is,</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\hat{x}_i = cos(2\pi f_m t) - sin(2\pi f_m t)(1+\alpha)sin(\phi)" border="0" alt="" align="absmiddle" /> and</p>
<p><img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\hat{x}_q = sin(2\pi f_m t) (1+\alpha) cos(\phi)" border="0" alt="" align="absmiddle" />.</p>
<p>Click here to download <a href="http://www.dsplog.com/db-install/wp-content/uploads/2009/03/script_transmit_iq_imbalance.m">Matlab/Octave script for plotting receive spectrum with transmit IQ imbalance</a></p>
<p><img class="alignnone" title="Spectrum with transmit IQ imbalance" src="http://www.dsplog.com/db-install/wp-content/uploads/2009/03/spectrum_transmit_iq_imbalance.png" alt="" width="448" height="336" /></p>
<p><strong>Figure: Spectrum of received signal in the presence of IQ imbalance at the transmitter</strong></p>
<p>It is reasonably intuituve to see that the received signal has frequency components at <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?f_m" border="0" alt="" align="absmiddle" /> and also at <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?-f_m" border="0" alt="" align="absmiddle" />. The component at <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?-f_m" border="0" alt="" align="absmiddle" /> was introduced due to I-Q imbalance.</p>
<p>Related posts:<ol>
<li><a href='http://www.dsplog.com/2008/01/19/simulating-minimum-shift-keying-transmitter/' rel='bookmark' title='Simulating Minimum Shift Keying Transmitter'>Simulating Minimum Shift Keying Transmitter</a></li>
<li><a href='http://www.dsplog.com/2009/06/16/msk-transmitter-receiver/' rel='bookmark' title='MSK transmitter and receiver'>MSK transmitter and receiver</a></li>
<li><a href='http://www.dsplog.com/2008/02/17/cylcic-prefix-in-orthogonal-frequency-division-multiplexing/' rel='bookmark' title='Cylcic prefix in Orthogonal Frequency Division Multiplexing'>Cylcic prefix in Orthogonal Frequency Division Multiplexing</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.dsplog.com/2009/03/08/iq-imbalance-in-transmitter/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Convolutional code</title>
		<link>http://www.dsplog.com/2009/01/04/convolutional-code/</link>
		<comments>http://www.dsplog.com/2009/01/04/convolutional-code/#comments</comments>
		<pubDate>Sun, 04 Jan 2009 06:30:39 +0000</pubDate>
		<dc:creator>Krishna Sankar</dc:creator>
				<category><![CDATA[Transmitter]]></category>
		<category><![CDATA[convolution]]></category>

		<guid isPermaLink="false">http://www.dsplog.com/?p=376</guid>
		<description><![CDATA[Coding is a technique where redundancy is added to original bit sequence to increase the reliability of the communication. In this article, lets discuss a simple binary convolutional coding scheme at the transmitter and the associated Viterbi (maximum likelihood) decoding scheme at the receiver. Update: For some reason, the blog is unable to display the [...]
Related posts:<ol>
<li><a href='http://www.dsplog.com/2009/07/27/viterbi-with-finite-survivor-state-memory/' rel='bookmark' title='Viterbi with finite survivor state memory'>Viterbi with finite survivor state memory</a></li>
<li><a href='http://www.dsplog.com/2009/01/04/viterbi/' rel='bookmark' title='Viterbi decoder'>Viterbi decoder</a></li>
<li><a href='http://www.dsplog.com/2009/08/21/matlab-or-c-for-viterbi-decoder/' rel='bookmark' title='Matlab or C for Viterbi Decoder?'>Matlab or C for Viterbi Decoder?</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>Coding is a technique where redundancy is added to original bit sequence to increase the reliability of the communication. In this article, lets discuss a simple <strong>binary convolutional coding</strong> scheme at  the transmitter and the associated <strong>Viterbi (maximum likelihood) decoding</strong> scheme at the receiver.</p>
<p>Update: <em>For  some reason, the blog is unable to display the article which discuss both Convolutional coding and Viterbi decoding. As a work around, the article was broken upto into two posts. This post descrbes a simple Binary Convolutional Coding scheme. </em>For details on the Viterbi decoding algorithm, please refer to the post &#8211; <a title="viterbi decoder in dsplog.com" href="http://www.dsplog.com/2009/01/04/viterbi/">Viterbi decoder.</a></p>
<p><em></em><strong>Chapter 8, Table 8.2-1 of <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FDigital-Communications-John-Proakis%2Fdp%2F0072321113&amp;tag=dl04-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Digital Communications by John Proakis</a></strong> lists the various rate 1/2 convolutional coding schemes. The simplest among them has constraint length <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?K=3" border="0" alt="" align="absmiddle" /> with generator polynomial <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\left[ 7, 5\right]_8" border="0" alt="" align="absmiddle" />. There are three parameters which define the convolotional code:</p>
<p><span id="more-376"></span><br />
(a) <strong>Rate</strong> : Ratio of the number of input bits to the number of output bits. In this example, rate is 1/2 which means there are two output bits for each input bit.</p>
<p>(b) <strong>Constraint length</strong> : The number of delay elements in the convolutional coding. In this example, with <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?K=3" border="0" alt="" align="absmiddle" /> there are two delay elements.</p>
<p>(c) <strong>Generator polynomial</strong> : Wiring of the input sequence with the delay elements to form the output. In this example, generator polynomial is <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\left[ 7, 5\right]_8 = \left[111,101\right]_2" border="0" alt="" align="absmiddle" />. The output from the <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi? 7_8 = 111_2" border="0" alt="" align="absmiddle" /> arm uses the XOR of the current input, previous input and the previous to previous input. The output from the <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi? 5_8 = 101_2" border="0" alt="" align="absmiddle" />uses the XOR of the current input and the previous to previous input.</p>
<p><div id="attachment_305" class="wp-caption alignnone" style="width: 299px">
	<img class="size-full wp-image-305" title="Rate 1/2 Convolutional code" src="http://www.dsplog.com/db-install/wp-content/uploads/2008/12/convolutional_code.png" alt="Rate 1/2 Convolutional code" width="299" height="200" /></dt>
</dl>
</div>
<p><strong>Figure 1: Convolutional code with Rate 1/2, K=3, Generator Polynomial [7,5] octal </strong></p>
<p><strong></strong> From the <strong>Figure 1</strong>, it can be seen that the operation on each arm is like a FIR filtering (aka convolution) with modulo-2 sum at the end (instead of a normal sum). Hence the name <strong>Convolutional code</strong>. <img src='http://www.dsplog.com/db-install/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>State transition</h2>
<p>For understanding the Viterbi way of decoding the convolutional coded sequence, lets  understand the relation between the input and output bits and the state transition.</p>
<table border="1" cellspacing="0" frame="below" rules="groups">
<colgroup></colgroup>
<colgroup>
<col width="103"></col>
</colgroup>
<colgroup>
<col width="97"></col>
</colgroup>
<tbody>
<tr>
<td width="86" height="18" align="center"><strong> </strong></td>
<td width="103" align="center"><strong>if ip = 0</strong></td>
<td width="97" align="center"><strong>if ip = 1</strong></td>
</tr>
</tbody>
<tbody>
<tr>
<td height="18" align="center"><strong>current state</strong></td>
<td align="center"><strong>next state (op)</strong></td>
<td align="center"><strong>next state (op)</strong></td>
</tr>
</tbody>
<tbody>
<tr>
<td height="18" align="center">00</td>
<td align="center">00 (00)</td>
<td align="center">10 (11)</td>
</tr>
</tbody>
<tbody>
<tr>
<td height="18" align="center">01</td>
<td align="center">00 (11)</td>
<td align="center">10 (00)</td>
</tr>
</tbody>
<tbody>
<tr>
<td height="18" align="center">10</td>
<td align="center">01 (10)</td>
<td align="center">11 (01)</td>
</tr>
</tbody>
<tbody>
<tr>
<td height="18" align="center">11</td>
<td align="center">01 (01)</td>
<td align="center">11 (10)</td>
</tr>
</tbody>
</table>
<p><strong>Table 1: State transition table and the output values</strong></p>
<div class="mceTemp">
<dl id="attachment_310" class="wp-caption alignnone" style="width: 350px;">
<dt class="wp-caption-dt"><img class="size-full wp-image-310" title="State transition for K=3, rate = 1/2 convolutional code" src="http://www.dsplog.com/db-install/wp-content/uploads/2009/01/state_transition_convolutional_code.png" alt="State transition for K=3, rate = 1/2 convolutional code" width="340" height="255" />
	<p class="wp-caption-text">State transition for K=3, rate = 1/2 convolutional code</p>
</div><strong>Figure 2: State transition for K=3, rate = 1/2 convolutional code</strong> <img style="border: medium none ! important; margin: 0px ! important;" src="https://www.assoc-amazon.com/e/ir?t=dl04-20&amp;l=ur2&amp;o=1" border="0" alt="" width="1" height="1" /></p>
<p>For details on the Viterbi decoding algorithm, please refer to the post &#8211; <a title="viterbi decoder in dsplog.com" href="http://www.dsplog.com/2009/01/04/viterbi/">Viterbi decoder.</a></p>
<h2>References</h2>
<p><a title="Chip Fleming - Convlutional code with Viterbi decoding" href="http://home.netcom.com/~chip.f/Viterbi.html">Tutorial on Convolutional Coding with Viterbi Decoding</a> &#8211; Mr. Chip Fleming</p>
<p><a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FDigital-Communications-John-Proakis%2Fdp%2F0072321113&amp;tag=dl04-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Digital Communications by John Proakis</a></p>
<p>Related posts:<ol>
<li><a href='http://www.dsplog.com/2009/07/27/viterbi-with-finite-survivor-state-memory/' rel='bookmark' title='Viterbi with finite survivor state memory'>Viterbi with finite survivor state memory</a></li>
<li><a href='http://www.dsplog.com/2009/01/04/viterbi/' rel='bookmark' title='Viterbi decoder'>Viterbi decoder</a></li>
<li><a href='http://www.dsplog.com/2009/08/21/matlab-or-c-for-viterbi-decoder/' rel='bookmark' title='Matlab or C for Viterbi Decoder?'>Matlab or C for Viterbi Decoder?</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.dsplog.com/2009/01/04/convolutional-code/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Trying out PAPR reduction for OFDM by multiplication with j</title>
		<link>http://www.dsplog.com/2008/07/02/ofdm-papr-reduction-multiplication-by-j/</link>
		<comments>http://www.dsplog.com/2008/07/02/ofdm-papr-reduction-multiplication-by-j/#comments</comments>
		<pubDate>Wed, 02 Jul 2008 01:08:41 +0000</pubDate>
		<dc:creator>Krishna Sankar</dc:creator>
				<category><![CDATA[Transmitter]]></category>
		<category><![CDATA[CDF]]></category>
		<category><![CDATA[OFDM]]></category>
		<category><![CDATA[PAPR]]></category>

		<guid isPermaLink="false">http://www.dsplog.com/?p=190</guid>
		<description><![CDATA[In this post, we will explore a probable way of reducing PAPR (peak to average power ratio) in OFDM by changing the phase of some of the subcarriers. This is in response to the comment to post on Peak to Average power ratio for OFDM, where Mr. Elibom suggested to reduce the PAPR by cyclically [...]
Related posts:<ol>
<li><a href='http://www.dsplog.com/2008/02/24/peak-to-average-power-ratio-for-ofdm/' rel='bookmark' title='Peak to Average Power Ratio for OFDM'>Peak to Average Power Ratio for OFDM</a></li>
<li><a href='http://www.dsplog.com/2008/06/10/ofdm-bpsk-bit-error/' rel='bookmark' title='BPSK BER with OFDM modulation'>BPSK BER with OFDM modulation</a></li>
<li><a href='http://www.dsplog.com/2008/08/26/ofdm-rayleigh-channel-ber-bpsk/' rel='bookmark' title='BER for BPSK in OFDM with Rayleigh multipath channel'>BER for BPSK in OFDM with Rayleigh multipath channel</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>In this post, we will explore a probable way of <strong>reducing PAPR (peak to average power ratio) in OFDM</strong> by changing the phase of some of the subcarriers. This is in response to the <a title="Comment on PAPR for OFDM" href="http://www.dsplog.com/2008/02/24/peak-to-average-power-ratio-for-ofdm/#comment-591" target="_self">comment to post on Peak to Average power ratio for OFDM</a>, where Mr. Elibom suggested to reduce the PAPR by cyclically rotate some of the subcarriers<span style="text-decoration: line-through;"> and using</span>.</p>
<p>Further, the presentation in the IEEE TGN,   <a title="IEEE TGN article on PAPR in HT-LTF" href="https://mentor.ieee.org/802.11/file/06/11-06-1595-01-000n-papr-in-ht-ltf.ppt">PAPR in HT-LTF (11-06/1595r1)</a>, mentions that in 40MHz mode where a 128pt FFT is used, PAPR of HT-LTF (High Throughput Long Training Field) can be reduced by  multiplying the upper 20MHz subcarriers by j. Using <span style="text-decoration: line-through;">quick</span> Matlab simulations, we will try to validate that claim for HT-LTF and further check the PAPR for a general random BPSK and QPSK modulation.</p>
<p><span id="more-190"></span></p>
<h2>PAPR in HT-LTF</h2>
<address>The HT-LTF sequence for the TG-N draft specification is described in page 35 of the <a title="IEEE TGN Joint Proposal PHY specification" href="https://mentor.ieee.org/802.11/file/05/11-05-1102-04-000n-joint-proposal-phy-specification.doc">Joint Proposal PHY specification document (11-05/1102r4)</a>. Note: The specification has evolved considerably over the past 2.5 years (and is not yet publically available), but for discussion on HT-LTF this document should suffice. </address>
<p>The peak to average power ratio for a signal <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?x%28t%29" border="0" alt="" align="middle" /> is defined as<br />
<img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?papr%20=%20%5Cfrac%7B%5Cmax%5Cleft%5Bx%28t%29x%5E*%28t%29%5Cright%5D%7D%7BE%5Cleft%5Bx%28t%29x%5E*%28t%29%5Cright%5D%7D" border="0" alt="" align="middle" />, where<br />
<img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?%28%29%5E*" border="0" alt="" align="middle" /> corresponds to the conjugate operator.</p>
<p>Expressing in deciBels,<br />
<img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?papr_%7BdB%7D%20=%2010%5Clog_%7B10%7D%28papr%29" border="0" alt="" align="middle" />.</p>
<p><code><strong>Matlab/Octave script for computing PAPR in HT-LTF</strong><br />
close all; clear all;<br />
nFFT = 128; nDSC = 114;<br />
% The 128pt HT-LTF sequence for 40MHz as defined in 11-06/1595r4<br />
htLTF = [ zeros(1,6) 1 1 -1 -1 1 1 -1 1 -1 1 1 1 1 1 1 -1 -1 1 1 -1 1 -1 1 1 1 1 1 ...<br />
1 -1 -1 1 1 -1 1 -1 1 -1 -1 -1 -1 -1 1 1 -1 -1 1 -1 1 -1 1 1 1 1 -1 -1 -1 1 0 ...<br />
0 0 -1 1 1 -1 1 1 -1 -1 1 1 -1 1 -1 1 1 1 1 1 1 -1 -1 1 1 -1 1 -1 1 1 1 1 1 ...<br />
1 -1 -1 1 1 -1 1 -1 1 -1 -1 -1 -1 -1 1 1 -1 -1 1 -1 1 -1 1 1 1 1 zeros(1,5)];<br />
</code></p>
<p><code><br />
x1F = htLTF; % no rotation<br />
x2F = [htLTF(1:64) j*htLTF(65:128)]; % with 90degree rotation<br />
</code></p>
<p><code><br />
% Taking iFFT, time domain<br />
x1t = (nFFT/sqrt(nDSC))*ifft(fftshift(x1F.')).'; % no rotation<br />
x2t = (nFFT/sqrt(nDSC))*ifft(fftshift(x2F.')).'; % with rotation<br />
</code></p>
<p><code><br />
% computing the peak to average power ratio for symbol without rotation<br />
meanSquareValue1 = sum(x1t.*conj(x1t),2)/nFFT;<br />
peakValue1 = max(x1t.*conj(x1t),[],2);<br />
paprSymbol1 = peakValue1./meanSquareValue1;<br />
paprSymbol1dB = 10*log10(paprSymbol1)<br />
% computing the peak to average power ratio for symbol with 90 degree rotation<br />
meanSquareValue2 = sum(x2t.*conj(x2t),2)/nFFT;<br />
peakValue2 = max(x2t.*conj(x2t),[],2);<br />
paprSymbol2 = peakValue2./meanSquareValue2;<br />
paprSymbol2dB = 10*log10(paprSymbol2)</code></p>
<p>As claimed in slide7 of power point presentation <a title="IEEE TGN article on PAPR in HTLTF" href="https://mentor.ieee.org/802.11/file/06/11-06-1595-01-000n-papr-in-ht-ltf.ppt">PAPR In HT-LTF (11-06/1595r1)</a>, the PAPR with</p>
<p>(a) No rotation is 5.6317dB and</p>
<p>(b) With 90 degree rotation is 3.4066dB.</p>
<p>So, around <strong>2.2dB reduction in PAPR </strong>is achieved. <img src='http://www.dsplog.com/db-install/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>PAPR for random BPSK and QPSK</h2>
<p>Armed with the above result, I tried to simulate the PAPR for with random BPSK (and QPSK) modulation on a 128pt FFT with and without rotating the upper 20MHz subcarriers by j.</p>
<p>Click here to download the <a href="http://www.dsplog.com/db-install/wp-content/uploads/2008/07/script_papr_ofdm_tgn_j_rotation.m">Matlab/Octave script for simulating PAPR for BPSK/QPSK modulation OFDM with j rotation</a></p>
<p>The results from the simulations is shown below.</p>
<p><a href="http://www.dsplog.com/db-install/wp-content/uploads/2008/07/papr_ofdm_tgn_j_rotation_bpsk_qpsk.png"><img class="alignnone size-full wp-image-192" title="OFDM PAPR for BPSK/QPSK with j rotation" src="http://www.dsplog.com/db-install/wp-content/uploads/2008/07/papr_ofdm_tgn_j_rotation_bpsk_qpsk.png" alt="OFDM PAPR for BPSK/QPSK with j rotation" width="448" height="336" /></a></p>
<p><strong>Figure: OFDM PAPR for BPSK/QPSK with j rotation</strong></p>
<p><strong>Observations</strong></p>
<p>1. For random BPSK sequence, the multiplication by j resulted in increase of PAPR by around 0.5dB.</p>
<p>2. For random QPSK sequence, the PAPR with and without multiplication by j is almost the same.</p>
<p>Based on the above simulation results, may I conclude that there is <strong>no noticable reduction in PAPR by multiplying upper 20MHz subcarriers by j</strong>. There might be some special cases (like HT-LTF sequence), where the multiplication by j reduces PAPR. However for <strong>random BPSK/QPSK sequence</strong>, there is <strong>no improvement</strong>. <img src='http://www.dsplog.com/db-install/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>Related posts:<ol>
<li><a href='http://www.dsplog.com/2008/02/24/peak-to-average-power-ratio-for-ofdm/' rel='bookmark' title='Peak to Average Power Ratio for OFDM'>Peak to Average Power Ratio for OFDM</a></li>
<li><a href='http://www.dsplog.com/2008/06/10/ofdm-bpsk-bit-error/' rel='bookmark' title='BPSK BER with OFDM modulation'>BPSK BER with OFDM modulation</a></li>
<li><a href='http://www.dsplog.com/2008/08/26/ofdm-rayleigh-channel-ber-bpsk/' rel='bookmark' title='BER for BPSK in OFDM with Rayleigh multipath channel'>BER for BPSK in OFDM with Rayleigh multipath channel</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.dsplog.com/2008/07/02/ofdm-papr-reduction-multiplication-by-j/feed/</wfw:commentRss>
		<slash:comments>42</slash:comments>
		</item>
		<item>
		<title>Binary to Gray code for 16QAM</title>
		<link>http://www.dsplog.com/2008/06/01/binary-to-gray-code-for-16qam/</link>
		<comments>http://www.dsplog.com/2008/06/01/binary-to-gray-code-for-16qam/#comments</comments>
		<pubDate>Sun, 01 Jun 2008 01:28:08 +0000</pubDate>
		<dc:creator>Krishna Sankar</dc:creator>
				<category><![CDATA[Transmitter]]></category>
		<category><![CDATA[Gray]]></category>
		<category><![CDATA[QAM]]></category>

		<guid isPermaLink="false">http://www.dsplog.com/?p=161</guid>
		<description><![CDATA[In the previous post on Binary to Gray code conversion for PSK, I had claimed that &#8220;for a general M-QAM modulation the binary to Gray code conversion is bit more complicated&#8220;. However following a closer look, I realize that this is not so complicated. The QAM scenario can be treated as independent PAM modulation on [...]
Related posts:<ol>
<li><a href='http://www.dsplog.com/2008/06/05/16qam-bit-error-gray-mapping/' rel='bookmark' title='16QAM Bit Error Rate (BER) with Gray mapping'>16QAM Bit Error Rate (BER) with Gray mapping</a></li>
<li><a href='http://www.dsplog.com/2008/05/11/binary-to-gray-code-conversion-psk-pam/' rel='bookmark' title='Binary to Gray code conversion for PSK and PAM'>Binary to Gray code conversion for PSK and PAM</a></li>
<li><a href='http://www.dsplog.com/2008/05/18/bit-error-rate-for-16psk-modulation-using-gray-mapping/' rel='bookmark' title='Bit error rate for 16PSK modulation using Gray mapping'>Bit error rate for 16PSK modulation using Gray mapping</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>In the previous post on Binary to Gray code conversion for PSK, I had claimed that &#8220;<em>for a general M-QAM modulation the binary to Gray code conversion is bit more complicated</em>&#8220;. However following a closer look, I realize that this is not so complicated. <img src='http://www.dsplog.com/db-install/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>The QAM scenario can be treated as independent PAM modulation on I arm and Q-arm respectively. <strong>For example, let us consider 16-QAM scenario</strong>.</p>
<p><span id="more-161"></span>Each constellation point can represent <img src="http://www.dsplog.com/cgi-bin/mimetex.cgi?\log_2(16)=4" border="0" alt="" align="absmiddle" />bits, with two bits on the I axis and two on the Q axis. For 16-QAM, the values taken by the I and Q axes are {-3, -1, +1, +3}. The two bits on the I and Q arm can be Gray coded as shown in the table below</p>
<table border="1" cellspacing="0" frame="box" rules="groups">
<colgroup>
<col width="86"></col>
</colgroup>
<colgroup>
<col width="86"></col>
</colgroup>
<colgroup>
<col width="86"></col>
</colgroup>
<colgroup>
<col width="86"></col>
</colgroup>
<tbody>
<tr>
<td width="86" height="18" align="center"><strong>b0b1</strong></td>
<td width="86" align="center"><strong>I</strong></td>
<td width="86" align="center"><strong>b2b3</strong></td>
<td width="86" align="center"><strong>Q</strong></td>
</tr>
</tbody>
<tbody>
<tr>
<td height="18" align="center">00</td>
<td align="center">-3</td>
<td align="center">00</td>
<td align="center">-3</td>
</tr>
<tr>
<td height="18" align="center">01</td>
<td align="center">-1</td>
<td align="center">01</td>
<td align="center">-1</td>
</tr>
<tr>
<td height="18" align="center">11</td>
<td align="center">+1</td>
<td align="center">11</td>
<td align="center">+1</td>
</tr>
<tr>
<td height="18" align="center">10</td>
<td align="center">+3</td>
<td align="center">10</td>
<td align="center">+3</td>
</tr>
</tbody>
</table>
<p><strong>Table: Gray coded constellation mapping for 16-QAM</strong></p>
<p>The constellation diagram with the bit mapping is shown below.</p>
<p><img class="alignnone size-full wp-image-162" title="16QAM modulation with Gray coded mapping" src="http://www.dsplog.com/db-install/wp-content/uploads/2008/05/16qam_gray_mapping.png" alt="16QAM modulation with Gray coded mapping" width="448" height="336" /></p>
<p><strong>Figure: 16QAM constellation with Gray coded mapping</strong></p>
<p>As can be observed from the figure above, the adjacent constellation symbols differ by only one bit. As simple as that. <img src='http://www.dsplog.com/db-install/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>Simulation model for Binary to Gray coded mapping for 16-QAM</h2>
<p><code><br />
% Matlab/Octave code for converting bits into 16-QAM constellation</code></p>
<p><code>clear all<br />
M = 16; </code><code> % number of constellation points</code><br />
<code> k = log2(M); % number of bits in each constellation<br />
% defining the real and imaginary PAM constellation<br />
% for 16-QAM<br />
alphaRe = [-(2*sqrt(M)/2-1):2:-1 1:2:2*sqrt(M)/2-1];<br />
alphaIm = [-(2*sqrt(M)/2-1):2:-1 1:2:2*sqrt(M)/2-1];<br />
% input - decimal equivalent of all combinations with b0b1b2b3<br />
ip = [0:15];<br />
ipBin = dec2bin(ip.'); % decimal to binary<br />
% taking b0b1 for real<br />
ipDecRe = bin2dec(ipBin(:,[1:k/2]));<br />
ipGrayDecRe = bitxor(ipDecRe,floor(ipDecRe/2));<br />
% taking b2b3 for imaginary<br />
ipDecIm = bin2dec(ipBin(:,[k/2+1:k]));<br />
ipGrayDecIm = bitxor(ipDecIm,floor(ipDecIm/2));<br />
% mapping the Gray coded symbols into constellation<br />
modRe = alphaRe(ipGrayDecRe+1);<br />
modIm = alphaIm(ipGrayDecIm+1);<br />
% complex constellation<br />
mod = modRe + j*modIm;</code></p>
<p><strong>Note:</strong></p>
<p>The above code snippet works only for 4QAM and 16QAM.</p>
<p>Related posts:<ol>
<li><a href='http://www.dsplog.com/2008/06/05/16qam-bit-error-gray-mapping/' rel='bookmark' title='16QAM Bit Error Rate (BER) with Gray mapping'>16QAM Bit Error Rate (BER) with Gray mapping</a></li>
<li><a href='http://www.dsplog.com/2008/05/11/binary-to-gray-code-conversion-psk-pam/' rel='bookmark' title='Binary to Gray code conversion for PSK and PAM'>Binary to Gray code conversion for PSK and PAM</a></li>
<li><a href='http://www.dsplog.com/2008/05/18/bit-error-rate-for-16psk-modulation-using-gray-mapping/' rel='bookmark' title='Bit error rate for 16PSK modulation using Gray mapping'>Bit error rate for 16PSK modulation using Gray mapping</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.dsplog.com/2008/06/01/binary-to-gray-code-for-16qam/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Served from: www.dsplog.com @ 2012-02-05 03:05:51 -->
