<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE document PUBLIC "-//CNX//DTD CNXML 0.5//EN" "http://cnx.rice.edu/cnxml/0.5/DTD/cnxml_mathml.dtd">
<document xmlns="http://cnx.rice.edu/cnxml" xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/" id="Module.2003-12-10.4219">
	<name>DMT: Constellation Mapping</name>
	<metadata>
  <md:version>1.3</md:version>
  <md:created>2003/12/10 23:42:19 US/Central</md:created>
  <md:revised>2003/12/17 15:13:46.013 US/Central</md:revised>
  <md:authorlist>
    <md:author id="egarza">
      <md:firstname>Cosme</md:firstname>
      <md:othername>Eric</md:othername>
      <md:surname>Garza</md:surname>
      <md:email>egarza@rice.edu</md:email>
    </md:author>
  </md:authorlist>

  <md:maintainerlist>
    <md:maintainer id="egarza">
      <md:firstname>Cosme</md:firstname>
      <md:othername>Eric</md:othername>
      <md:surname>Garza</md:surname>
      <md:email>egarza@rice.edu</md:email>
    </md:maintainer>
  </md:maintainerlist>
  
  <md:keywordlist>
    <md:keyword>constellation mapping</md:keyword>
  </md:keywordlist>

  <md:abstract>Explains what happens in constellation mapping in DMT.</md:abstract>
</metadata>
	<content>
		<section id="sec1">
			<name>Constellation Mapping</name>
			<para id="cm1">In the constellation mapping process, length <emphasis>B</emphasis> segments of the bitstreams are assigned a single complex value in a <term>constellation</term>. This is similar to quadrature ampliture modulation (QAM), because the IFFT of these complex points maps to various sinusoids with amplitudes proportional to the real part and phase shifts proportional to the complex part.  We mostly used 2-bit (4 point) and 4-bit (16 point) constellations in our system, but we also coded a function that generates a  mapping with an arbitrary number of points.  In comparison, constellations used in actual DMT systems can have as many as 240 points.  Important characteristics of these constellations include the area occupied by the points and the spacing between points.  The power neccessary to transmit the actual signal is proportional to the area, so it is key not to let the points be too far apart.  However, the channel introduces noise which results in the constellation points being recieved with error.  If the points are too close together, it is impossible to correctly match the received points with the correct value in the constellation.  We implemented constellation mapping with a home-cooked parser: it would examine every 2 or 4 bits (depending on the mapping), look up the current segment in a table and assign the next element in a new vector the corresponding constellation point.   </para>
		</section>
		<para id="delete_me">
       
    </para>
		<example id="ex1">
			<name>4-Bit Constellation Mapping</name>
			<para id="cm5"/>
		</example>
		<para id="cm3"/>
		<table id="table1">
			<name>16-Point Mapping</name>
			<tgroup align="center" cols="4">
				<colspec colnum="1" colname="spycolgen1" colwidth="*"/>
				<colspec colnum="2" colname="spycolgen2" colwidth="*"/>
				<colspec colnum="3" colname="spycolgen3" colwidth="*"/>
				<colspec colnum="4" colname="spycolgen4" colwidth="*"/>
				<tbody valign="middle">
					<row valign="middle">
						<entry align="center">Bit Sequence</entry>
						<entry>Value</entry>
						<entry>Bit Sequence</entry>
						<entry>Value</entry>
					</row>
					<row>
						<entry valign="middle">0000</entry>
						<entry>.354+.354j</entry>
						<entry>1000</entry>
						<entry>1</entry>
					</row>
					<row>
						<entry valign="middle">0001</entry>
						<entry>.707</entry>
						<entry>1001</entry>
						<entry>.707+.707j</entry>
					</row>
					<row>
						<entry valign="middle">0010</entry>
						<entry>.707j</entry>
						<entry>1010</entry>
						<entry>j</entry>
					</row>
					<row>
						<entry>0011</entry>
						<entry>-.354+.354j</entry>
						<entry>1011</entry>
						<entry>-.707+.707j</entry>
					</row>
					<row>
						<entry>0100</entry>
						<entry>-.707j</entry>
						<entry>1100</entry>
						<entry>-1</entry>
					</row>
					<row>
						<entry>0101</entry>
						<entry>.354-.354j</entry>
						<entry>1101</entry>
						<entry>-.707-.707j</entry>
					</row>
					<row>
						<entry>0110</entry>
						<entry>-.354-.354j</entry>
						<entry>1110</entry>
						<entry>-j</entry>
					</row>
					<row>
						<entry>0111</entry>
						<entry>-.707</entry>
						<entry>1111</entry>
						<entry>.707-.707j</entry>
					</row>
				</tbody>
			</tgroup>
		</table>
		<para id="cm2"/>
		<para id="cm4"/>
		<figure orient="vertical" id="fig1">
			<name>16-Point Constellation</name>
			<media type="image/jpg" src="constmap1.jpg"/>
			<caption>This is the 16-point constellation we used.  It is an approximation of the V.29 16-QAM constellation (4 amplitudes, 8 phases).</caption>
		</figure>
		<para id="cm6">Our related MATLAB functions: <code type="inline"><link src="/content/m11721/latest/constmap.m">constmap.m</link></code>, <code type="inline"><link src="/content/m11721/latest/deconstmap.m">deconstmap.m</link></code></para>
		<para id="cm7"><link src="/content/m11710/latest">Home</link>  |  Previous: <link src="/content/m11721/latest">Implementation</link>   |   Next: <link src="/content/m11725/latest">Mirror/IFFT, De-Mirror/FFT</link></para>
	</content>
</document>
