<?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.4944">
	<name xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/">DMT: Mirror/IFFT, De-Mirror/FFT</name>
	<metadata xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/">
  <md:version xmlns:bib="http://bibtexml.sf.net/">1.4</md:version>
  <md:created xmlns:bib="http://bibtexml.sf.net/">2003/12/10 23:49:44 US/Central</md:created>
  <md:revised xmlns:bib="http://bibtexml.sf.net/">2003/12/18 11:07:15.424 US/Central</md:revised>
  <md:authorlist xmlns:bib="http://bibtexml.sf.net/">
    <md:author xmlns:bib="http://bibtexml.sf.net/" id="egarza">
      <md:firstname xmlns:bib="http://bibtexml.sf.net/">Cosme</md:firstname>
      <md:othername xmlns:bib="http://bibtexml.sf.net/">Eric</md:othername>
      <md:surname xmlns:bib="http://bibtexml.sf.net/">Garza</md:surname>
      <md:email xmlns:bib="http://bibtexml.sf.net/">egarza@rice.edu</md:email>
    </md:author>
  </md:authorlist>

  <md:maintainerlist xmlns:bib="http://bibtexml.sf.net/">
    <md:maintainer xmlns:bib="http://bibtexml.sf.net/" id="egarza">
      <md:firstname xmlns:bib="http://bibtexml.sf.net/">Cosme</md:firstname>
      <md:othername xmlns:bib="http://bibtexml.sf.net/">Eric</md:othername>
      <md:surname xmlns:bib="http://bibtexml.sf.net/">Garza</md:surname>
      <md:email xmlns:bib="http://bibtexml.sf.net/">egarza@rice.edu</md:email>
    </md:maintainer>
  </md:maintainerlist>
  
  <md:keywordlist xmlns:bib="http://bibtexml.sf.net/">
    <md:keyword xmlns:bib="http://bibtexml.sf.net/">mirror</md:keyword>
  </md:keywordlist>

  <md:abstract xmlns:bib="http://bibtexml.sf.net/">Explains the processes of mirroring and the IFFT in our DMT project.</md:abstract>
</metadata>
	<content xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/">
		<section xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/" id="sec1">
			<name xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/">Mirror</name>
			<para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/" id="mir1">Like serial/parallel conversion, mirroring is simple both in principle and implementation, but is essential to DMT.  We need to eventually transmit a real-valued signal, but after constellation mapping, the blocks are all complex-valued.  Mirroring ensures that the transmitted signal is real-valued by using the fact that the IFFT of a conjugate-symmetric vector is real; i.e., mirroring gives each block conjugate symmetry.  In mirroring, each block is flipped around, conjugated and tacked onto the end of the original block.  There are a few finer points, however.  If the block is length <emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/">M</emphasis> before mirroring, the (<emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/">M</emphasis>+1)th element of the mirrored block takes any real value (we set it to zero) while the (<emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/">M</emphasis>+2)th through 2<emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/">M</emphasis>th elements take the 1st through (M-1)th elements (flipped) of the original block.  Also, the first element in any block cannot be complex valued; it must be artificially set to some real value.  This is because the first point in any block corresponds to a frequency of zero after after the IFFT; if this element is complex, the resulting IFFT vector will have a complex DC offset and thus will also be complex.  Although this would be a source of error, we assumed that the receiver knew the correct first elements of each block, eliminating this error.  We felt we were justified in this regard because our main goal was to implement a DMT system resilient to <emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/">channel</emphasis> error (We could also have coded it so that the first few bits in each block were assigned real-valued constellation points, but this way was easier).          <figure xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/" orient="vertical" id="fig1">
					<name xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/">Mirrored block</name>
					<media xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/" type="image/jpg" src="mirrored.jpg"/>
					<caption xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/">This is one block (originally length 128) of constellation points after mirroring (magnitude only).  The mirrored portion is shown in blue.</caption>
				</figure></para>
		</section>
		<section xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/" id="sec2">
			<name xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/">IFFT</name>
			<para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/" id="mir2">  The <link xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/" src="/content/m10250/latest">IFFT</link> basically provides the modulation for DMT.  As hinted at in the S/P module, the complex constellation points in each block (now mirrored) are interpreted as the spectral coefficients for a time-domain signal; the IFFT gives us this signal.  By ensuring that our block length remains a power of 2 through the mapping and mirroring process, we make sure that the IFFT is most computationally efficient.  We simply used the IFFT function built into MATLAB in our system.  <figure xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/" orient="horizontal" id="fig2">
					<name xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/">IFFT of one block</name>
					<media xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/" type="image/jpg" src="tdmirror.jpg"/>
					<caption xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/">This is the IFFT of the previous figure.  It is real-valued and the same length as the mirrored block. </caption>
				</figure></para>
		</section>
		<section xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/" id="sec3">
			<name xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/">FFT/De-Mirror</name>
			<para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/" id="mir3">After going through the channel, the blocks undergo an inverse of the transmission process.  Once the received time-domain blocks are separated, an FFT returns the spectral coefficients of each block, which are "noisy" versions of the post-mirroring values.  This can be looked at as demodulating in a way; the FFT essentially multiplies the sinusoids by in the time-domain waveform by their conjugates.  De-mirroring is straight forward; we want to get rid of the conjugate-symmetric part of each block so the last <emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/">M</emphasis> values (for a block with pre-mirroring length <emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/">M</emphasis>) are simply thrown away.  Again, the FFT algorithm was built into MATLAB and the de-mirroring code was trivial.    </para>
			<para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/" id="mir4">Our related MATLAB functions: <code xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/" type="inline"><link xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/" src="/content/m11721/latest/mirror.m">mirror.m</link></code>, <code xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/" type="inline"><link xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/" src="/content/m11721/latest/demirror.m">demirror.m</link></code></para>
			<para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/" id="mir5"><link xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/" src="/content/m11710/latest">Home</link>  |  Previous: <link xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/" src="/content/m11721/latest">Implementation</link>   |   Next: <link xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/" src="/content/m11762/latest">Cyclic Prefix</link></para>
		</section>
	</content>
</document>
