<< Chapter < Page Chapter >> Page >
Explains the processes of mirroring and the IFFT in our DMT project.

Mirror

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 M before mirroring, the ( M +1)th element of the mirrored block takes any real value (we set it to zero) while the ( M +2)th through 2 M 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 channel 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).

Mirrored block

This is one block (originally length 128) of constellation points after mirroring (magnitude only). The mirrored portion is shown in blue.

Ifft

The IFFT 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.

Ifft of one block

This is the IFFT of the previous figure. It is real-valued and the same length as the mirrored block.

Fft/de-mirror

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 M values (for a block with pre-mirroring length M ) are simply thrown away. Again, the FFT algorithm was built into MATLAB and the de-mirroring code was trivial.

Our related MATLAB functions: mirror.m , demirror.m

Home | Previous: Implementation | Next: Cyclic Prefix

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Ece 301 projects fall 2003. OpenStax CNX. Jan 22, 2004 Download for free at http://cnx.org/content/col10223/1.5
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Ece 301 projects fall 2003' conversation and receive update notifications?

Ask