MIMO结构设置
多天线结构是现代无线系统中的强制性需求,这些系统包括WLAN,WiMAX和3GPP LTE系统。在多输入输出(MIMO)系统中进行OFDM调制的一个很直接的操作就是复制数据通道,包括用于每一根天线的FFT核。
一种资源更友好的解决方案是共享每条天线的FFT核。为实现MIMO中的FFT复用,FFT核的频率至少要比基带数据传输速率快n倍,这里的n为天线的根数。当结合MIMO、TDD和FDD时,同一个FFT核能在两维上被共享,代价是需要pre-FFT数据缓冲。
图6描述的是TDD模式下一种双天线MIMO发射器的基本配置。FFT核被两条天线以及发送和接收器复用。循环前缀的插入和移除控制单元必须能够用于发射和接收。由于时钟频率的差异,每根天线的post-FFT数据处理需要一个双缓冲器。
图6:双天线MIMO TDD系统中OFDM调制解调的FFT核共享。
OFDM调制实例
下面的OFDM调制和解调在Altera Stratix III FPGA上进行,FFT和存储缓冲器使用MegaCore函数。这个例子打算用于采用FFT复用的系统,为了实现共享,这里,FFT核的时钟率要比基带信号快很多。该设计旨在实现可重配置结构的OFDM系统,它的FFT size和循环前缀的大小在执行中可变。Pre-FFT数据通过一个单缓冲器改变速率,Pre-FFT位反转数据通过一对缓冲器改变速率和次序。所有的控制模块支持TDD操作并被发射器和接收器共享。该应用实例可以很容易扩展到MIMO、TDD或者两者结合的系统中,例如图6中的系统以及图5介绍的FDD系统。
功能描述:这个设计实例包含两部分:OFDM调制和OFDM解调。前者包含IFFT和循环前缀的位反转插入,后者包含循环前缀的移除模块和改变数据速率的缓冲器。图7为这两者的高级集成。你可以把它看作是图3中的单天线TDD系统的一种扩展。附加的pre-FFT缓冲器使设计更容易地扩展到具有FFT复用的MIMO或FDD系统。
图7:OFDM调制解调设计架构举例。
Post-FFT处理:OFDM调制过程中的CP插入包含4个功能子模块:
1. 使用双时钟双端口RAM的双缓冲器
2. 位反转的存储写模块
3. 循环前缀插入的内存读取模块
4. 时钟同步模块
在发射数据通道中,位反转的IFFT输出数据在循环前缀插入模块被读入。一个控制单元分析数据地址并把它写入相应的存储单元。在一个完整的IFFT数据包被写入后,与循环前缀相应的最后几个样本以自然顺序读出。与此同时,如果有容量,来自下一个IFFT包的数据会被写入另一个缓冲器。如果两个缓冲器都有数据需要读取,会有一个延迟信号经过Avalon Streaming接口背压送到IFFT核。经过OFDM调制后的数据通常是连续的。而其后的模块,如IF调制解调器和天线,不应该施加背压。
在接收数据通道中,post-FFT处理限制了位反转和速率改变。位反转的FFT输出数据会被写入到正确的内存地址,就像之前所做的一样。一旦一个完整的数据包被写入了缓冲器,它将会按正常顺序依次读出。要特别注意避免过度的背压。由于读时钟频率通常慢于写时钟,故需要一个双缓冲器。图8讲述了post-FFT的数据处理。控制信号指明两个时钟域的缓存器状态,并通过同步逻辑进行同步。
图8:循环前缀插入操作前后的数据包比较。
如前面所讨论,如果FFT为了资源共享采用不同速率的时钟,则需要pre-FFT数据缓冲器。在接收通道上,每当输入数据开始写入单缓冲器时,循环前缀移除模块开始记数。当整个数据包都被写入这个单缓冲器时,记数值开始从0地址被读出。
对于固定的FFT size,由于读时钟频率并不比写时钟慢,用一个单缓冲器就够了。但如果FFT size是变化的,一个单缓冲器恐怕就不够了。举个特殊的例子,假设两个时钟工作在同一频率。在这种情况下,当新的数据被写入内存,上一个数据包中的数据会从同一个存储地址被读出。如果上一个数据包的FFT/IFFT size更大,那么当前包的写操作会早在上一个数据包读操作完成前结束。这样的话,为了阻止写入过多的数据,就必须延迟上行数据流模块的运行直到上一个大数据包的读操作完成。
所幸的是,这种背压只会在FFT size由大变小时才会被施加。在实际的系统中,FFT size不太可能频繁的改变。如果它只在帧边界改变,由于帧符号之间是静止区,就永远不会施加背压。此外,为了避免使用背压,读信号和FFT核可以采用更高速率的时钟, |