(1为该信号,为各路径频率为1HZ的载波相加后的,接受到的信号,2为本地产生的频率为1HZ的子载波,3为相乘结果。)
可以看出该信号与本地产生的1HZ载波相乘后积分的结果大于0
1.2.3.3. 去循环前缀
关于去循环前缀目前找到的资料很少,总结如下:
添加循环前缀的过程是:经过IFFT之后,会得到离散的复值数据,而循环前缀取的是后面一部分的采样点复制到前面去,而复制数据是按采样速率进行发送的。
由此图:
在发射端还需要经过数模,发送滤波和上变频。而接收端进行相反的操作,
其中关键就是所谓的“定时处理”,这一部分资料还在进一步查询之中。也可以说,OFDM解调其难点有两个,1是FFT的算法,2是这所谓的定时处理,可能定时处理很简单,但确实查不到直接跟OFDM调制对应的定时处理,现在的查询方向是往检测方面考虑?至于FFT的算法,则正在通过数字信号处理教课书学习中。
1.2.3.4. LTE-A的循环前缀
1.2.3.4.1. OFDM parameters:
Configuration Cyclic prefix length NCP,l Normal cyclic prefix Extended cyclic prefix ?f?15kHz 160 for l=0 144 for l=1,2,3,....,6 512 for l=0,1,2,...,6 1024 for l=0,1,2 ?f?15kHz ?f?7.5kHz
1.2.3.4.2. Random access preamble parameters:
Preamble format 0 1 2 3 4 * TCP 3168?Ts TSEQ 24576?Ts 24576?Ts 2?24576?Ts 2?24576?Ts 4096?Ts 21024?Ts 6240?Ts 21024?Ts 448?Ts 1.2.3.4.3. SC-FDMA parameters:
Configuration Normal Cyclic prefix Extended Cyclic prefix Cyclic prefix length 160 for l=0 144 for l=1,2...6 512 for l=0,1...5 1.2.4.传输预编码
(?)PUSCHscy(l?M?k)?1PUSCHMscM?1i?0?x(l?MPUSCHsc?i)e?j2?kPUSCHMscPUSCHk?0,...,Msc?1layerPUSCHl?0,...,MsymbMsc?1
PUSCHPUSCHRBMSC?Nsc=MRB:子载波数=上行共享信道分配资源块·每资源块子载波数; ?:层,0,1,2....??1。
(每一层有MlayersymblayerPUSCHMM个复值符号, 分成组,每一组对应一个symbscSC-FDMA符号。L就是第几个符号即第几组的标志,k代表的是子载波序号。)
将数据依次作串并转换,变成并行的MSC据),再依次送入作MSCPUSCHPUSCH点数据(一个并行单元有MSCPUSCH个数
点的DFT变换。这里指的传输预编码主要是做一个 DFT变换,
将数据变成频域数据。 输入:d(0),...,d(Msymb?1),经过复值调制后的符号序列;
输出:DFT后的Msymb点数据,以MSCPUSCH点为一个并行单元。
1.2.5.快速傅里叶变换(FFT)
加快FFT处理速度的主要技术手段通过增加处理器单元和高基算法结构使用并行计算技术。在确定基数时应该全面考虑FFT处理速度、算法、FPGA的结构特点和硬件资源的消耗等因素。例如,基2蝶形算法由一个乘法和两个加法器组成,而基4蝶形算法包含三个复杂的乘法运算,虽然基4处理器的处理速度是基2处理器的2倍,但基4蝶形算法硬件使用是基2的两倍。
1.2.5.1. 位序操作
基于DIF的FFT算法,因为在计算过程中对输入数据做奇偶分开,导致输出数据地址不再是原来顺序。按照协议,发射端OFDM调制输出的数据为正序。若采用基DIF的FFT算法,则需通过(1)位序操作(2)改良算法 来解决位序问题。具体的位序操作与FFT处理器的地址产生方式有关。下面以8点DIF基-2FFT举一简单例子:
若在控制模块中,数据的地址都是由二进制数表示,反序0,4,2,6,1,5,3,7分别由三位二进制数表示为000,100,010,110,001,101,011,111,将每个数的第2位和第0位交换,第1位保持不动,可以得到000,001,010,011,100,101,110,111,即0,1,2,3,4,5,6,7,即将反序变为正序。对于其他点数的FFT,如果数据地址由n位表示,位反转的规则为:第n-1位和第0位交换,第n-2位和第1位交换,第n-3位和第2位交换,……,依此类推就可以将反序转换为正序。
1.2.5.2. FFT地址产生
FFT运算过程中,地址产生是FFT运算模块的关键问题之一,存储器读数据和写数据都要对应相应的存储器地址。常见的地址产生方式是通过输入数据的顺序,和数据输出时的FFT级数来产生地址,下面举一个简单例子:通过计数器产生地址。
在控制模块中定义一个时钟计数器和一个级数计数器,级数计数器随级数的增加自加,在每完成一个FFT之后清零,时钟计数器随每一个时钟自加,在每完成一级FFT之后清零,通过这两个计数器的加减和移位可以产生所有需要的地址。
另外,地址产生时可配合位序操作,即若需要位序操作,可在产生时完成。
1.2.5.3. 进一步提高FFT的运算速度
1.2.5.3.1. 流水线结构
每个时钟脉冲都接受下一条处理数据的指令,只是不同的部件做不同的事情,就象生产线流水操作一样,并不是等一个或一批产品做完,再接受下一批生产命令,而是每个工序完成以后,立即接受下一批生产任务。这样提高了系统处理数据的速度。
但是这样虽然提高了系统的数率,但是由于采用了流水线结构使得不容易计算程序运行的时间。对一些时序要求很严的情况,该结构还是存有弊端的。
并且流水线结构要求与级数相等的计算器件,因此随着点数的增加它的硬件面积也增加。
1.2.5.3.2. 更高频率的内部计算时钟
如果计算点数很大又要求很高的计算速度,就要在FFT处理器内部计算使用的时钟频率高于输入数据的时钟频率,但很高的计算时钟会造成系统的不稳定。
1.2.5.3.3. 并行运算
将FFT算法分成离散的部分可并行的步骤,以增加处理单元为代价提高FFT运算速度。下面以基-2 FFT运算为例,基2=FFT蝶形运算图为:
x1(k)kx1(k)?WNx2(k)kx1(k)?WNx2(k)x2(k)WkN-1
另外8点基2FFT运算流程如图1.2.5.3.3:
x(0)x(4)x(2)x(6)x(1)x(0)WN0-1x(1)WN0WN2WN0-1-1WN01WNx(2)x(3)x(4)-1-1WN0x(5)x(3)x(7)-1WN0W0NW2N-1WN2-1-1WN3-1x(5)x(6)-1x(7)-1