Week 10 – Designing the MIMO-OFDM Receiver

After finishing the MIMO-OFDM transmitter last week, I approached the receiver this week and thought a lot about its structure. Before I want to propose a structure for the MIMO-OFDM receiver, let us first have a look at the current SISO-OFDM receiver:

siso_ofdm_rx
Figure 1: SISO-OFDM RX

Structured by functionality, the receiver has the following architecture:

  • Measure fine frequency and timing offset with a Schmidl & Cox synchronizer.
  • Fine frequency correction by modulating the signal with the measured frequency offset.
  • Division of data into synchronization + header symbols and payload symbols.
  • OFDM Demod of sync + header symbols by an FFT.
  • Estimation of channel and coarse frequency offset. Dump sync symbols and tag estimations to the stream.
  • Equalization of the stream with channel estimation and pilot symbols on some carriers.
  • Serialization of complex modulation symbols from OFDM sub-carriers. The pilot symbols are dumped.
  • Demodulation and parsing of the header info.
  • Message with payload length is sent back to the Header/Payload Demux block.
  • OFDM Demod, equalization, serialization, symbol demodulation and CRC of payload data. (This payload demodulation branch equals the header demodulation branch except for the channel estimation which is not applied again at the payload branch.)

The design goals for the MIMO-OFDM receiver are, next to functionality and performance, to minimize the number of blocks that have to be specially written for the MIMO-OFDM receiver. We want to reuse as many blocks as possible because this keeps the OFDM module tight and we save time writing new blocks.

Figure 2 shows my plan of the MIMO-OFDM receiver:

mimo_ofdm_rx
Figure 2: MIMO-OFDM RX
  • Sum up all received signals to measure synchronization parameters:
    • Measure fine frequency and timing offset with a Schmidl & Cox synchronizer of the summed up signal.
    • Fine frequency correction of the sum signal by modulating the signal with the measured frequency offset.
    • OMFD demod (FFT) and coarse frequency estimation (channel estimation) of the summed up signal. We use the SISO channel estimator block here to estimate the integer frequency offset which is tagged to the stream. The generated SISO estimation is irrelevant for us.
  • Fine frequency correction of each individual signal by modulating the respective signal with the measured frequency offset of the summed up signal.
  • Dump synchronization symbols of each individual stream. We don’t need it anymore, because the synchronization parameters are estimated already and the channel estimation has separate pilot symbols for the MIMO scheme. We also have to apply the time synchronization by dumping/passing samples controlled by the trigger signal of the Schmidl & Cox synchronization. This block is not implemented yet and also doesn’t appear in the flowgraph of figure 2. [1]
  • OFDM demod (FFT) of each signal.
  • Tag each signal with the integer frequency offset estimation by adding the tag from the summed up signal to every other signal with the tag sharer block.
  • MIMO channel estimation. This new block estimates the MIMO channel matrix with the help of pilot symbols, which are located on some OFDM sub-carriers. The pilot symbols are Walsh sequences which guarantees the orthogonality between the signals. The result is a MxN channel matrix estimation which is valid for the sub-carrier where the pilot symbols are located. The MIMO channel estimation for the sub-carriers without pilot symbols (but data symbols) is generated by a linear interpolation over the sub-carriers. The estimated CSI is tagged to the stream in form of a 3-dimensional matrix with the dimensions: FFT_length (=number of sub-carriers), M (=number of transmit antennas), N (=number of receiving antennas). [2]
  • Serialization of complex modulation symbols from OFDM sub-carriers. The pilot symbols are dumped. This is applied to each antenna signal separately.
  • MIMO decoding. The MIMO decoder block reduces itself to one of the implemented MIMO decoder algorithms.
  • Division of data into header symbols and payload symbols (The sync symbols were already dumped.
  • Demodulation and parsing of the header info.
  • Message with payload length is sent back to the Header/Payload Demux block.
  • Symbol demodulation and CRC of payload data.

The following tasks have to be accomplished before the MIMO-OFDM receiver can be realized:

  • Write block for sync symbol dumping and time sync. (Details see [1])
  • Implement MIMO-OFDM channel estimator. I already began to implement this block. Some details and qa tests are still missing.
  • Adjust MIMO algorithm blocks to new CSI formatting (3-dimensional channel matrix, see [2])

Outlook

I want to finish the mentioned work next week. After that I have another week to test the receiver and correct errors / improve it. The last week of GSoC is reserved for code wrap up and documentation.

Advertisements

1 thought on “Week 10 – Designing the MIMO-OFDM Receiver”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s