通信技术基础 -- 变换技术  -- OFDM
    如何理解LTE中OFDMA的处理过程     作者 LTE学习大使孙宇彤(微信关注

 页码1    发表日期11-05-02

  LTE中下行采用OFDMA,其处理过程参考书上写得都很清楚,需要经过如下过程:

  数据源-- 信道编码--QAM调制--串并转换--IFFT--CP--并串转换--载波

  但是这个过程如何理解呢?例如:
  1. 为什么IFFT前需要进行QAM调制?
  2. IFFT后为什么需要并串转换?
  3. 并串转换后符号率为什么没有提高?

  以下将围绕上述问题仔细分析一下OFDMA的处理过程。


 页码2    发表日期11-05-02    已修改11-12-14

   1.数据源-- 信道编码
  这一步骤很明确,与其他通信技术的处理方式如WCDMA很类似,最后得到一个数据块,可以认为是由许多比特(0与1)按特定顺序构成的,也就是信息。

  2.信道编码---QAM调制
  这一步骤也很明确,就是对数据块中的数据进行调制,每若干个数据比特转换为一个调制符号,这样就得到一个调制符号块。
  QAM调制的目的是充分利用载波的不同幅度,使得载波的带宽上能承载更多的比特。
  WCDMA中也有这个过程,HSPA+可以采用4QAM(QPSK)、16QAM或64QAM来调制,分别是2、4、6个数据比特转换为一个调制符号。采用64QAM后的传输效率是4QAM的300%。
  LTE的调制方法与HSPA+一致,因此从调制的效率上看,LTE与HSPA+是相当的。

  3.QAM调制--串并转换
   这一步骤也很明确,就是将调制符号块分割,分送不同的路径。LTE中1路符号变成72、180、300、600、900乃至1200路,最少也有72变。这么多路径,对应的就是IFFT的各个子载波。
   注意,有的书中QAM调制--串并转换的顺序是交换的,也就是先串并转换再进行QAM调制,从处理结果看是一致的,都是把IFFT所需的数据准备好。

  4.串并转换--IFFT
  为什么IFFT前需要进行QAM调制?从数学上看,QAM是一方面将信息从0、1二进制表达变成了实数表达;另外一方面同时传送两路,信息还变成复实数表达,信息量大了。  而IFFT是一种算法,可以支持复实数的运算,因此允许IFFT前进行QAM调制。
  当然,复实数的运算比较复杂,对硬件要求高,但是借助QAM,可以传送更多的信息,提高传输效率,也就是能提高有人津津乐道的带宽利用效率。

  5.IFFT--CP
  为了避免无线信道时延造成的符号间干扰,因此巧妙地OFDM引入了CP,也就是循环前缀。值得注意的是,也可以采用零前缀ZP。

  6.CP--并串转换
  IFFT输出的是OFDM符号,与WCDMA中的符号不同,LTE中的OFDM符号代表一段波形,因此才会需要利用多点采样值来组合出这个波形,而多点采样值正来自并串转换的输出。
  另外,OFDM符号代表一段波形,并串转换后还是输出一个OFDM符号,因此并串转换并不能改变OFDM符号率。换而言之,IFFT前的符号率与IFFT后的符号率都是符号,却代表不同类型的符号,因此特点是不相同的。
  CDMA技术中也有类似的地方,一个调制符号转换为一段码片,当然我们也可以把这一段码片称为一个扩频符号,但是在CDMA中强调码片这个概念,就没有提扩频符号了。

  7.并串转换--载波
  这一段就是标准的将幅度调制到载波上的过程,不过很多参考书中都没有写清楚,到底有没有用IQ调制。TS36.221中可是明明白白的写出了就是采用了IQ调制。 (附注,现在看来,不需要IQ调制了,因为OFDM已经生成波形了)

 页码3    发表日期11-05-03    已修改11-12-08

   前面描述的处理过程都是从功能上描述,类似于WCDMA中说IQ合并,只是为了更容易理解。实际设备的操作并不是如此,以下介绍我认为的设备的处理过程。

  源数据块用内存中的一段数据表示,源数据的数值用0、1二进制表示,内存中存放数据的单元数等于源数据块的比特数。

  信道编码后,数据的数值还是用0、1二进制表示,数据的单元数翻倍。

  QAM后转换为内存中的两个数据块,分别代表I路与Q路,数值也变成实数了。当然IQ数据块的单元数量比信道编码后的单元数量压缩了,但是占用内存的数量大大增加了,因为实数需要用多个比特来表示。

  串并转换是不必要的,因为IFFT算法根据IQ数据块的单元编号进行,没有必要再将内存块拆分成很多小的内存块,IFFT时直接选取某个单元的数值就行了。
  运行IFFT算法前还需要准备一个各种频率正弦波的幅值表,每种频率的正弦波至少要2048个采样点,也就是记录正弦波每(n*360/2048)°的幅值,n=1..2047,这个幅值自然也是实数。当然,现场计算也是可行的,只要DSP够快。
  IFFT算法得到的结果需要用两段内存来存储,代表I路与Q路,每段内存应该有2048个单元,存储的是实数。

  并串转换实际上采用的是DA,将每个单元的数值变成模拟量,再送到载波上,注意这里是IQ两路,需要两个DA。当然如果让一个DA分时工作也可以,只要DA的转换速度足够快。

  以上的过程只考虑了一根天线的发射,如果使用多根发射天线,也就是MIMO,所有的内存都需要相应的加倍。

  另外,实数可以用16比特表示,精读要求高就32比特,反正现在内存不贵,主要是IFFT算法的耗时会增加,对DSP的压力大。

  (附注,实数的精度与DA的要求相关,如果实数16比特,DA应该也需要16比特)

 页码4    发表日期11-12-14    已修改11-12-14

  第3页介绍的实施方法还是有一些问题,根据现在的理解,IFFT应该可以这样处理:

  首先,IFFT应该准备各种频率子载波正弦波以及余弦波的两张幅值表,每个子载波需要2048个采样点。

  IFFT运算时,先要根据IFFT的阶数,比如128、256,等等,生成工作幅值表。如果是128阶就是从幅值表中每16个采样点取一个数,得到一个工作幅值表。

  IFFT运算时,将输入的数据作为系数,分别与工作幅值表中的某个子载波(正弦波或者余弦波)相乘,也就是输入的数据作为这个子载波的幅值。

  将所有子载波的幅值相加,得到输出的波形。再用D/A将波形转换为模拟量,上变频后功放、发射。这样,实际上只需要使用一个D/A。

  这里讲的输入的数据实际上是一个实数,来源于信道编码后的数据块。数据块分组后(组的数量等于子载波数量的2倍,因为需要同时使用正弦波以及余弦波),进行进制转换,也就是把二进制的数转换为一个实数,比如011转换为0.3,111转换为0.7,如此类推,就可以得到输入的数据。

  因此,什么QAM、串并转换等等都无所谓了,最关键的是得到这个系数。

Copyright 2002-2015 @LTE学习大使