FFT-OFDM在ARM平台上的实现与性能优化研究*
2019-09-04陈海波窦昱钦
陈海波,张 峰,窦昱钦
(西安工业大学电子信息工程,陕西 西安 710032)
0 引 言
OFDM(Orthogonal Frequency Division Multiplexing),是一种多载波调制(Multi Carrier Modulation,MCM)技术[1],能够实现数据高速,也是目前具有低实现复杂度、广泛应用的多载波传输方案。由于其良好的抗多径干扰及抗噪声能力,常常在易受外部干扰的传输介质和无线电引信探测体制中使用。并且OFDM的频谱利用率高,适于FFT(Fast Fourier Transformation)实现,所以近年来在多种通信领域中得到成功应用。虽然OFDM具有上述优点,但其运算量大,实现效率低,因而通常的OFDM系统都是基于DSP(Demand Side Platform),FPGA(Field Programmable Gate Array)等平台实现,但这些平台存在着成本高,功耗大等缺陷。针对这些问题,论文在对OFDM的实现技术和效率进行研究的基础上,把高性能,高灵活性,低功耗的嵌入式平台引入到OFDM通信系统的实现中,给出了设计方案和关键模块的程序实现方法。同时对系统进行了大量测试,表明系统具有工作稳定,抗干扰性能良好的特点。
1 OFDM通信系统及可靠性保障措施
1.1 OFDM通信系统
OFDM调制信号是由调制后的子载波合成的,其生成的一般原理可以用式(1)表示为:
在式(1)中,0≤t≤T,T表示OFDM调制信号的持续时间;j表示第子i个载波中携带的信息;fi表示第i个子信道对应的载波频率,N代表子载波数。对式(1)进行离散化处理,令t=n·T,有:
式(2)中本质上即为离散傅里反叶变换(Inverse Discrete Fourier Transform,IDFT)的公式,因而OFDM的调制过程可由IDFT的快速算法IFFT(Inverse Fast Fourier Transform)实现,相应的OFDM解调过程由DFT的快速算法FFT实现。故以FFT为基础的OFDM通信系统的组成如图1所示。
图1 OFDM系统框图
如图1发送端先将接收到的待传输数据进行符号映射,通过串并转换之后做IFFT处理以形成OFDM符号,然后加载同步,最后做DA(Digital to Analog)输出,由耦合单元耦合到信道中去。接收端与发送端相反,首先AD采集发送端的模拟信号,并通过同步方法确定FFT窗的起始位置后做FFT处理,将信号再次变到频域,然后做并串转换和符号解映射最后将解调出来的数字信号发送出去[2]。在整个系统中,子载波分配,帧结构设计,FFT的高效实现以及精确同步是本系统的核心,对本系统的效率和可靠性具有显著的影响。
1.2 OFDM符号结构设计
按式(1)由传输数据经多载波合成得到的OFDM调制信号一般为复信号,传输较为麻烦,且在接收端需进行相关检测。所以为保证OFDM的调制信号为实信号,避免接收端的相关检测,减少系统的复杂性,需对帧结构进行合理的设计[3]。
由于任一复数序列x(n)可进行虚实分解,即:
式(3)中:
对式(4)的x(n)进行DFT变换,可得:
从式(5)可以看出,为使基带OFDM调制信号实数化,即需要xo(k)为零。对应X(k)=X*(N-k),即将IFFT之前的N/2个信息数据与该N/2个信息数据的共轭倒序信息数据共同组成长度为N的具有共轭对称特性的信息数据,再进行N点IFFT变换时,即可保证OFDM信号为实信号。
结合上式的推导,论文所设计的OFDM符号结构如图2所示,由图2可以看出一个OFDM符号结构由N个子载波组成,其中有效子载波m个,并且整个OFDM符号帧关于中心对称,且满足m1—m2位置上是m个有效子载波,m3—m4位置是由m1—m2位置对称过来的,且满足m1+m4=m2+m3。帧结构设计的原理表示如式(2)所示。
图2 OFDM符号帧结构设计
1.3 可靠性措施
在OFDM系统设计时应考虑码间干扰和信道间干扰,为了消除符号间干扰(Inter Symbol Interference,ISI),应在符号间插入保护间隔,这样虽然消除了符号间干扰,由于破坏了子载波间的正交性,导致了子载波之间的干扰(Inter Carrier Interference,ICI)。因此,这种方法在OFDM系统中不能采用。为了既可以消除符号间干扰(ISl),又可以消除子载波之间的干扰(ICI),通常保护间隔是由循环前缀来充当[4]。当循环前缀的长度大于或等于信道冲击响应长度时,可以有效地消除ISI和ICI。最基本的方法就是将OFDM数据帧尾部的30个采样点作为循环前缀平移复制到OFDM的头部,通过插入循环前缀提高系统的可靠性。其数据块结构如图3所示。
图3 插入循环前缀的数据块
1.4 ROBO处理
为减少符号干扰以及进一步提升系统稳定性,对信号进行鲁棒编码操作,编码原理如下:
经过IFFT变化后信号为一串数据流,将串行数据转换为并行传输,即转换为N行的数据矩阵,每行用来表示1个子载波上的数据信息,假设并行矩阵为S,用S(p,q)表示矩阵中每个元素,矩阵大小为:P*Q,其中P=N,表示子载波个数;当调制方式为DQPSK时,Q=2*S,其中S表示OFDM符号个数,调制方式为BQPSK时,Q=S。
假设每个OFDM符号进行4次时域鲁棒编码后,并行传输的数据矩阵变为U矩阵,矩阵大小为:P*M,M为Q的4倍。时域鲁棒的计算公式为:
发送端对信号经过时域分段重构编码后,需在接收端选取可靠的译码方式来保证时域分段重构编码的性能,往往接收端译码的好坏决定了通信系统的性能。为使接收端译码错误概率最小,需选取最优译码方式进行译码操作,最大似然译码准则依靠接收端出现概率最大的信息判断发送端信息,有效的保证了译码的准确性[5]。
2 硬件选型及硬件平台设计方案
2.1 处理器选型
由于OFDM系统中的FFT运算量很大,对处理器的运算能力有很高的要求。所以一般的OFDM系统都是以FPGA,DSP处理器为核心进行设计的,但这些芯片大都存在着成本高,功耗大的问题。综合考虑成本,灵活性等因素,论文采用低成本,低功耗,高灵活性的STM32F407作为OFDM通信系统的实现平台。STM32F407是由ST公司推出的基于Cortex-M4内核的高性能微控制器。该控制器集成了单周期DSP指令和FPU(Floating Point Unit),且主频高达168 MHz,这使得STM32F407不仅具有强大的控制功能,也具有实时信号处理的能力。STM32F407包含有2个DAC(Digital to Analog Converter)通道,3个ADC(Analog to Digital Converter)通道,ADC的采样频率可达2.4 MHz,满足OFDM系统的数模转换的需要,适合OFDM系统的平台实现。
2.2 硬件电路设计
图4中是发射机的电路原理设计图,发射机首先通信用UART方式接收通信终端设备发送的二进制比特码流,并将数据存储到ROM(Read Only Memory)中,待满足一帧信号时,进行QPSK(Quadrature Phase Shift Keying)调制和子载波分配,然后做IFFT处理,将IFFT的输出结果控制在0~4 096(0~4 096是由STM32F4的DAC量化等级所决定的)之间,随后在每一个OFDM符号前加载同步信号,之后进行DA输出和RC低通滤波处理,形成OFDM待传输信号。处理器的时钟电路通过并联外接32 MHz石英晶振和两只10 pF电容构成。接收机电路原理图与发射机相似,为相逆处理过程[6]。原理图如图4所示。
图4 发射机电路的设计
3 OFDM系统程序实现及性能优化
3.1 基于FFT与IFFT的OFDM调制解调
OFDM作为一种高效的调制解调技术,其基本原理为:信道被分为若干具有正交性的子信道,将高速传输的串行数据流转化为并行的低速数据流,并调制到这些正交的子信道上[7]。
假设N表示子信道的个数,T表示OFDM符号的持续时间。N路子信道码元的分别调制到N个子载波频率{f0,f1,f2,…,fn-1},f0为第0个子载波的载波频率,则第n个子载波的载波频率fn为:
在OFDM系统中,OFDM符号可以表示为表达式(1)。
在接收端,利用OFDM符号子载波的正交性对接收到的数据进行解调,分离出调制在各子载波上的数据信号:
由于各个子载波是正交的,因此,当n≠m,其积分就为0,当n=m时,可解得:
由式(9)可以看出,发送信号d(m)与解调出的信号d´(m)只有一个常数之差,即原始信号可从各个子信道中恢复出来,从而实现信号的调制与解调。
3.2 FFT的定点化处理
在实现中存储数据的存储器是有限字长的,在误差允许情况下采用固定字长的定点量化方法来实现FFT[8]。嵌入式ARM(Advanced RISC Machine)内核不支持浮点运算,即使集成了DSP指令和FPU的处理器芯片在进行浮点运算时,也存在功耗大,计算效率不高等问题[9]。因此论文首先设置了浮点格式与Q0-Q31定点格式的程序转换。转换方法如下:
x转换为Xk:
Xk转换为x:
其中,x表示浮点数,Xk表示转换后的定点数,k为移位次数。由于ARM中移位操作可以作为四则运算指令的一部分,并且不占用额外的指令周期,因此大大提高了格式转换效率。在FFT的程序运算中,还需要加,减和乘法运算,运算表达式为;
加减:
乘法:
在式(12)和(13)中,Ad,Bm,Cn为定点化后的Qd,Qm,Qn格式。在程序运算中,必须设置合理的定点格式以防止溢出。由于嵌入式平台中DA/AD转换器量化等级一般为12位,因此可以在程序中将AD采集的结果设为Q0格式参与计算,且计算的中间结果也用Q0格式来保存。而正余弦值的范围在(-1,1)之间,同时以查表法来实现,即提前将正余弦的值以Q12格式存入ROM中。最后规定每经过两级级蝶形运算,都要将结果右移一位,这样既保证了精度,又防止FFT在进行蝶形运算时数据的溢出。
3.3 OFDM符号同步的实现
同步确定是应用于接收机上的[9],在本系统的传输过程中,接收机采用DMA(Direct Memory Access)控制器来实现外设与存储器的数据传输,不需要CPU干预,优化了CPU的运行效率。可由于DMA是一直工作的,也就是说每次DMA传输的数据并不能直接做OFDM解调,所以首先要对DMA进行合理的配置,然后针对DMA传输的数据不同的情况作峰值检测处理。论文通过大量实验最后将DMA配置为传输N个数据产生一次传输完成中断,由于本系统的每一个OFDM符号为N个子载波并带有一小段时间的峰值电平,这样可以保证最多两次DMA传输的数据有一个完整的OFDM符号,并且每次将没有处理完的DMA数据保存起来,等待下次DMA的数据一起处理。这样的处理方法在程序中的实现是通过一个有限状态机的方式,状态机设计如图5所示。
图5 接收模块实现状态机
状态机的功能描述:
S0状态:等待DMA完成一组数据采集,同时将SYN置1,然后判断cun[]是否有值,如果有就进入状态S4,如果没有就判断FST是否为1,是则进入状态S1,否则进入状态S2。
S1状态:找寻DMA传输过来数据的FFT窗起始点位置WZ,并判断WZ是否大于0,如果大于0进入状态S2,等于0则回到状态S0。
S3状态:将cun[]的数据[WZ:N]位的值赋给数组fftintput[0:WZ]位,然后进入状态S2。
S2状态:首先判断FST是否为0,如果是则将caiji[]的[WZ:N]位的值赋给fftintput[0:WZ]位,并将SYN置0,之后回到S0状态。如果不是则将caiji[]的[0:N-WZ]位的值赋给fftintput[WZ:N]位,并将SYN,WZ置0,FIN置1,然后进入状态S5。
S4状态:处理cun[]的数据,找寻FFT窗起始点的位置WZ,并判断WZ是否大于0,如果大于0进入状态S3,等于0则进入状态S1,同时另FST=0。
S5状态:将DMA传输过来的数据存到cun[],并令CUN=N,SYN=0。进入S6状态。
S6状态:对数组fftintput[]做解调工作,并令SYN=0,FIN=0。
4 系统测试与数据分析
4.1 测试方案说明
本次测试方案如图6所示,采用两台PC机作为OFDM系统的通信端,PC(Personal Computer)机用UART方式和嵌入式ARM平台通信,并使用两个平台分别作为OFDM系统的发射机和接收机。相关参数按电力线载波通信的G3标准设置,子载波位36,FFT点数位256,前端调制采用QPSK。最后采用电力线作为通信测试信道。
图6 测试方案
4.2 功能测试
待硬件平台搭建完毕后,就可以进行数据收发试验了。测试数据由串口助手发送,串口助手连续发送由0000到1111依次递增的数据,且这些数据由通信终端A发送给发射机,发射机将数据调制后发送给接收机。接收机将采集的数据解调后,通过串口助手显示。通过数据收发实验结果对比可知,接收的数据和发送的数据相同,验证了本文所设计的OFDM系统的合理性和可行性。
表1 状态机变量描述
4.3 可靠性测试
为验证通信系统的可靠性,论文将设计的OFDM通信系统基于实测电力线信道进行不同信噪比环境下的误码率测试,每个信噪比进行1 000帧数据测试。通过大量实验得出的误码率曲线如图7所示。
由图7比较可得系统经过可靠性算法大幅提升可靠性,在信噪比从-5 dB开始呈下降趋势,且在信噪比为-2 dB时误码率可达10-4。表明论文所设计的FFT-OFDM系统满足一般的通信可靠性需求。
图7 有循环前缀与无循环前缀
4.4 效率测试
表2是定点与浮点的运行时间和通信速率的对比。FFT运行效率测试方法是通过ARM外设定时器进行测试,通过FFT程序运行前后分别读取其计数值,最后将计数值转化为FFT的运行时间。通信速率是输出一个OFDM符号所需时间进行计算。可以看出定点FFT比浮点快65%左右,最高速率可达57 kbit/s。
表2 系统效率测试
5 结 语
论文在ARM上完成了FFT-OFDM通信系统,采用定点化的分裂基FFT实现OFDM的高效通信,并引入状态机解决符号同步问题,所设计的系统基于STM32F4处理器平台进行了实现、测试及性能优化。通过论文的研究及系统的实现表明:
(1)利用DFT对称性对帧结构进行合理设计,能够避免接收端的相关检测,减少系统实现的复杂性。
(2)采用定点FFT,可大大提高FFT的运算效率,即提高OFDM系统的效率。
(3)将状态机编程思想引入到系统中,解决了符号同步中对于已接收部分和未接收部分的数据接收进度匹配及状态不同的问题。
论文设计的基于嵌入式平台的OFDM通信系统具有高灵活性,低功耗,低成本的特点,且对开发自主知识产权的OFDM芯片具有一定的借鉴意义。