WARP Project Forums - Wireless Open-Access Research Platform

You are not logged in.

#1 2009-Mar-23 03:26:40

michael1
Member
Registered: 2009-Mar-23
Posts: 4

Ofdm

Hello,

I'm just starting to work with WARP and have a few questions concerning the OFDM implementation. One OFDM frame consists of 80 samples. These are composed of 64 subcarriers and 16 samples cyclic prefix. From the 64 subcarriers only 48 carry data symbols. What are he other 16 subcarriers for?
One OFDM frame consists of 48 data symbols, but of 80 samples. Where is the difference between symbol and sample?
In the current OFDM reference design, no channel coding is implemented. Instead a simple CRC is used just for payload error checking, right? Is it also used for error correction? The MAC header is also protected by a simple CRC.
What is the maximum data packet size that can be handled? The buffers for receiving and sending are only 2Kb, I think, is this the limit?
How is the PLCP implemented and what are the parameters used? How long is the PLCP?
The OFDM implentation does not use serial / parallel conversion. Why not and how is it bypassed?


Michael

Last edited by michael1 (2009-Mar-23 09:01:09)

Offline

 

#2 2009-Mar-23 09:23:28

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: Ofdm

We borrowed the subcarrier mapping from the 802.11a spec. 48 contain data, 4 contain pilot tones (deterministic BPSK symbols) and 12 are empty. The empty ones include DC (subcarrier 0) and the 11 highest frequency subcarriers. This mapping has the side benefit of loading an integral number of bytes per OFDM symbol (for QPSK, for example, 48 subcarriers * 2 bits/subcarrier -> 12 bytes). I think the 802.11a standard also used the empty subcarriers to meet adjacent channel power requirements.

The latest reference design does not have FEC. But we do have a PHY model which includes a K=7 convolutional code. See /ResearchApps/PHY/MIMO_OFDM/ConvCoded in the repository. We're planning to release a reference design built around this model at some point. In the meantime, you can look at the OFDM project from the MAC labs in our last workshop, which used the coded PHY.

In both versions of the PHY, the header is protected by a 16-bit CRC and the full packet (including header) is protected by a 32-bit CRC.

The OFDM reference design limits packet sizes to an Ethernet MTU, since it acts as just a wired-wireless bridge. The PHY itself can handle up to 16KByte packets (this is pretty arbitrary and could be extended in the PHY model). The packet buffer logic can switch between two modes- the first (the default) uses 2KB sub-buffers, the second uses 16KB sub-buffers.

Offline

 

#3 2009-Mar-23 09:47:59

michael1
Member
Registered: 2009-Mar-23
Posts: 4

Re: Ofdm

Thanks, this explains a few things.

- How is the PLCP implemented? The MAC header used, consisting of 24 Bytes, seems to be a combination between PLCP and MAC, as it contains both informations for these layers. Is this right? That would mean, that it is not possible to distinguish between PLCP and MAC.

- How could the serial / parallel conversion be avoided in the implementation? And why?

Michael

Offline

 

#4 2009-Mar-23 10:51:41

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: Ofdm

The packet header contains both PHY and MAC fields. The PHY only cares about three fields : the packet length (in bytes), the full-rate modulation scheme and (only in the coded PHY) the coding rate. MAC and PHY functions are fairly well separated between the top-level MAC (csmamac.c in the refernce design), warpmac.c and warpphy.c, even though we didn't strictly adhere to the MAC/PLCP/PMD definitions in the 802.11 spec.

The PHY uses Xilinx's FFT core, which has serial I/O (one complex sample per clock cycle). You can read more about its internal architecture in the FFT core datasheet (right-click on the block, choose Help, scroll to the bottom and click the link for the PDF datasheet).

Offline

 

#5 2009-Sep-14 05:14:31

warpsinu
Member
Registered: 2009-Jun-24
Posts: 30

Re: Ofdm

In which hardware module is it ensured that the 11 highest frequency subcarriers dont carry data ?

Offline

 

#6 2009-Sep-14 09:52:15

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: Ofdm

There are three modules involved:
a) Channel training symbol values
b) Modulator (Tx)
c) Demodulation (Rx)

(a) is stored in a ROM whose contents are defined at build-time by the ofdm_tx_mimo_init.m script (MATLAB variable 'train'). If you want to enable additional subcarriers, you will need to add non-zero values to the training symbol for those subcarriers. If you want to disable subcarriers, you can leave the training symbol as-is.

(b) and (c) are configured from software. The 'warpphy_set_modulation' function in warpphy.c sets the default subcarrier mapping. The variable 'modMasks' defines which subcarriers contain data. In simulation, the MATLAB variable 'subcarrier_masks' (also defined in ofdm_tx_mimo_init.m) plays the same role.

Offline

 

Board footer