# GNURadio关于OFDM的模块

GNURadio默认提供的OFDM调制解调模块见下面的列表。

- OFDM Carrier Allocator / OFDM载波分配器
- 由复数值创建频域的OFDM符号，添加导频。
- This block turns a stream of complex, scalar modulation symbols into vectors which are the input for an IFFT in an OFDM transmitter. It also supports the possibility of placing pilot symbols onto the carriers.
- The carriers can be allocated freely, if a carrier is not allocated, it is set to zero. This allows doing OFDMA-style carrier allocations.

- OFDM Channel Estimation / OFDM信道估计
- Estimate channel and coarse frequency offset for OFDM from preambles
- Input: OFDM symbols (in frequency domain). The first one (or two) symbols are expected to be synchronisation symbols, which are used to estimate the coarse freq offset and the initial equalizer taps (these symbols are removed from the stream). The following
`n_data_symbols`

are passed through unmodified (the actual equalisation must be done elsewhere). Output: The data symbols, without the synchronisation symbols. The first data symbol passed through has two tags: 'ofdm_sync_carr_offset' (integer), the coarse frequency offset as number of carriers, and 'ofdm_sync_eq_taps' (complex vector). Any tags attached to the synchronisation symbols are attached to the first data symbol. All other tags are propagated as expected.

- OFDM Cyclic Prefixer / OFDM循环前缀
- Adds a cyclic prefix and performs pulse shaping on OFDM symbols.
- Input: OFDM symbols (in the time domain, i.e. after the IFFT). Optionally, entire frames can be processed. In this case,
`len_tag_key`

must be specified which holds the key of the tag that denotes how many OFDM symbols are in a frame. Output: A stream of (scalar) complex symbols, which include the cyclic prefix and the pulse shaping. Note: If complete frames are processed, and`rolloff_len`

is greater than zero, the final OFDM symbol is followed by the delay line of the pulse shaping. - The pulse shape is a raised cosine in the time domain.

- OFDM Demod / OFDM解调
- OFDM Frame Acquisition / OFDM帧采集
- take a vector of complex constellation points in from an FFT and performs a correlation and equalization.

- OFDM Frame Equalizer / OFDM帧均衡器
- OFDM frame equalizer.
- Performs equalization in one or two dimensions on a tagged OFDM frame.
- This does two things: First, it removes the coarse carrier offset. If a tag is found on the first item with the key 'ofdm_sync_carr_offset', this is interpreted as the coarse frequency offset in number of carriers. Next, it performs equalization in one or two dimensions on a tagged OFDM frame. The actual equalization is done by a ofdm_frame_equalizer object, outside of the block.

- OFDM Insert Preamble / OFDM插入前同步码
- insert "pre-modulated" preamble symbols before each payload.

- OFDM Mod / OFDM调制
- OFDM Receiver / OFDM接收机
- OFDM Sampler / OFDM 采样器
- OFDM Serializer / OFDM 序列化
- Serializes complex modulations symbols from OFDM sub-carriers.

- OFDM Sync PN /
- Schmidl & Cox OFDM synch.
- OFDM Transmitter / OFDM 发射机

下图是ofdm_loopback.grc，实现了一个简单的OFDM回环。

更详细的示例可以参见/usr/local/share/gnuradio/examples/digital/ofdm/里的其它框图。

## 参考文献

[1] http://gnuradio.org/redmine/attachments/download/134/gr_ofdm.ppt