搜档网
当前位置:搜档网 › 一种基于WLAN的OFDM频偏估计算法的FPGA实现_刘伟

一种基于WLAN的OFDM频偏估计算法的FPGA实现_刘伟

一种基于WLAN的OFDM频偏估计算法的FPGA实现_刘伟
一种基于WLAN的OFDM频偏估计算法的FPGA实现_刘伟

一种基于WLAN 的OFDM 频偏估计算法的FPGA 实现

刘 伟,李 颖,魏急波

(国防科技大学电子科学与工程学院,湖南省长沙市410073)

=摘 要> 频偏估计是正交频分复用(OFD M)系统中的关键技术之一。文中分析了基于无线局域网(WLAN)的OFD M 系统载波频偏产生的原因,阐述了一种用时域自相关实现频偏估计的算法原理及可行性,提出了相应的FPGA 实现方案,并对实现过程中需要注意的一些问题做了说明。该方案基于IEEE 802.11a 协议中的物理层帧结构,首先利用5至6个短符号进行复数自相关运算,然后将相关结果通过CORDIC 算法求得它的幅角,最后换算成归一化频偏。

关键词:正交频分复用(OFDM),无线局域网(WLAN),频偏估计,现场可编程门阵列(FPGA),坐标旋转数字计算机(C ORDIC)

中图分类号:TN919.72

收稿日期:2004-04-30;修回日期:2004-08-05

0 引 言

正交频分复用(OFDM)技术具有抗多径、频谱利用率高等特点,在宽带无线多媒体通信领域受到广泛的关注。数字视频广播(DVB)、ESTI 标准的数字音频广播(DAB)、非对称数字用户环路(ADSL)均将OFDM 技术纳入标准,无线局域网(WLAN)标准IEEE 802.11a 、HIPERLAN/2也将OFDM 技术作为其物理层标准。然而,OFDM 系统对频率偏移非常敏感,这是因为,频偏会破坏子载波间的正交性,引入子信道间干扰(ICI),从而导致各子信道不能正确解调。因此,频偏估计算法的设计与实现是OFD M 系统中的一个重要问题。

本文在阐述OFDM 系统原理的基础上,介绍了一种用时域自相关法实现频偏估计的算法,提出了算法的现场可编程门阵列(FPGA)实现方案。该方案采用自顶向下层次化设计,叙述了各个模块的结构和功能,给出了仿真波形,最后分析了占用FPGA 资源情况和时序特性。采用电子设计自动化(EDA)开发工具Xi-l inx I SE5.2进行代码设计、逻辑综合,并对设计进行仿真,最后下载到FPGA 中,验证了该方案设计的正确性。

1 算法原理

OFDM 系统同步算法是建立在OFD M 帧结构的基础上的。首先简要介绍WLAN 协议IEEE 802.11a 中物理层协议数据单元(PPDU)帧格式。如图1所示,PPDU 的导频由短序列和长序列组成。其中短序列由

10个相同的短符号t1,t2,,,t10组成,每个短符号包含16个时域采样点。频偏估计在短序列期间利用短

符号完成。

图1 OFDM 物理层帧格式

对于参考文献[1]提出的算法,我们采用时域自相

关法利用短符号进行频偏估计与校正。定义归一化频偏为E =f c /$f (其中f c 为绝对频偏,$f 为子载波间隔),则E 的估计式为:

^E =

12P #N

N p

#arg (E k

r(k )r

*

(k -N p ))(1)

式中:r (k )为接收到的短符号;N p 为一个短符号长度;N 为FF T 点数。

I EEE 802.11a 协议中规定N p =16,N =64,则式(1)变换为:

^

E =2

P

#arg (E k

r(k )r *(k -N p ))(2)

可见,相对频偏E 的估计范围是|E |<(2/P )P =2,协议中子载波间隔$f =312.5kHz,因此,绝对频偏的估计范围是(-625kHz,625kHz)。频偏估计完成后,用估计结果去校正后续数据。考虑到W LAN 信道的慢时变性,可以假设每个PPDU 内频偏是固定的,因此,每个PPDU 内只需进行一次频偏估计。文献[1]的分析表明,当归一化频偏不大于1%时,对系统误码率性能的影响可以忽略。仿真结果表明,采用上述算法并利用5个短符号进行频偏估计,其精度(估计误差的标准差)可以达到0.1%,满足性能要求。

#

21#第30卷第9期2004年9月 电子工程师ELEC TRONIC E NGINEER Vol.30No.9 Sep.2004

根据IEEE 802.11a 协议,WLAN 物理层无线传输工作在5G Hz 的频率上,而信号处理部分却在基带完成,实现这一过程需要对信号进行上变频和下变频。用于上、下变频的本地晶振频率难免存在一定的偏差,一般晶振的频率准确度在10-5量级,由此带来的频偏约为?50kHz,考虑到上下两次变频,频偏大约在?100kHz 范围内,这是产生频偏的一个主要原因。此外,无线传输在移动环境下的多普勒效应也会产生频偏,考虑到WLAN 的信道环境,这种情况可以忽略不计。本文所采用的算法,能够纠正的频偏范围是(-625kHz,625kHz),W LAN 环境的上述频偏在这个范围内。

2 频偏算法的FPGA 实现

图2是用FPGA

实现该算法的顶层模块结构图。

图2 顶层模块结构

整个算法模块主要由复数自相关和坐标旋转数字

计算机(C ORDIC )))coordinate rotational digital c omput -er)两个子模块组成。I_data 与Q_data 分别代表接收信号的I 路(实部)和Q 路(虚部)信号,start 信号高电平时数据有效,复序列完成自相关运算后输出一个复数,信号i_x 和q_x 分别是它的实部和虚部,同时,rdy_nd 出现一个高脉冲,提示输出数据有效,使能C ORDIC 子模块;在CORDIC 子模块中求出上述复数的幅角,从端口P_out 输出,P_out 数据有效时信号ready 出现高电平;最后,幅角与常数2/P 相乘,得到归一化频偏^E ,输出前^E 和ready 信号都经过一级D 触发器作同步处理,以消除组合逻辑的延时和/毛刺0的影响。

下面着重介绍复数序列的自相关模块和CORDIC 算法模块的设计。

2.1 复数自相关运算的实现

复数自相关运算表达式为:+=

E k r (k)r

*

(k -N p )=

E k

[I (k)+

j Q (k )][I (k -N p )-j Q(k -N p )]=

E k

{[I (k )I (k -

N p )+Q (k )Q (k -N p )]+

j [Q (k )I (k -N p )-I (k)Q(k -N p )]}=

(I 1+I 2)+j (Q 1-Q 2)

(3)

由此可见,一个复数自相关器可用4个实数相关器实现,其中2个自相关器,2个为互相关器。每一个实数相关器又可由延时器、乘法器、加法器以及必要的计数器和寄存器组成。如图3所示,复数自相关器可分为延时、控制和复数乘法累加3个功能模块。其中:复数乘法累加用4个实数乘法累加器(MAC)实现;控制模块产生两个信号FD 和ND,用来控制每一个MAC 的工作,4个MAC 并行处理,整个过程在输入时钟CLK

同步下进行。

图3 复数自相关器结构

每一个MAC 主要由乘法器、加法器和寄存器组

成,它实现的功能可表示为P =E n

k =1A (k )B (k ),它把2个实序列对应的点相乘,然后把所有的积累加起来。A 、B 两个序列一个是I 路或Q 路序列,另一个是I 路或Q 路延时16个时钟周期之后的序列,这样就完成了I 、Q 两路数据的自相关或互相关运算。仿真结果如图4所示。Data_in 和Data _out 其实都有I 、Q 两路;FD(first data)表示每1次乘法累加运算第一个数的位置,FD 每出现一个高脉冲,就开始一次新的乘法累加运算;ND (ne w data)如果是高电平,那么此时CLK 上升沿对应的数据将会参与到本次运算中,ND 的长度一般取5到6个短符号长度;D_out 输出是一个复数,分别用mac_I 和mac _Q 来表示它们的实部和虚部,后续处理求出这个复数的幅角,

就可以估计出频偏。

图4 复数相关器仿真波形

在设计复数自相关器时需注意以下几个问题:a)乘法器的选择:乘法器的构建尽量使用Multi_18@18专用乘法器资源,与用Slices 搭建的乘法器相

#

22##通信技术# 电子工程师 2004年9月

比,它具有高速度、低功耗的特点,可提高运算性能,而且属于专用资源,节省了可配置逻辑模块(C LB)资源。Virte xIIc2v1000系列的FPGA 提供了40个专用乘法器。

b)补码运算的特点及溢出问题:这里所有运算都是补码的运算,补码的运算有其许多优点:

[X ]补+[Y]补=[X +Y]补

(4)[X ]补-[Y]补=[X -Y]补=[X +(-Y)]补= [X ]补+[-Y]补

(5)

补码的和等于和的补码,当真值用补码表示时,补码加法的规律和无符号数的加法规律完全一样,因此就简化了加法器的设计,符号的进位丢弃。在补码中,减法统一于加法,关键是如何从[Y]补求出[-Y]补,然后做加法。

从[Y ]补求[-Y ]补的方法是:符号位连同数值位一起取反加1,VHDL 语言直接用一条语句/B<=NOT a +10就可以实现。

关于补码运算的溢出问题,两个符号相同的数相加才有可能产生溢出。设X 的符号为X f ,Y 的符号为Y f ,运算结果的符号为S f ,则溢出逻辑表达式V =X f Y f S f + X f Y f S f ,V =0时无溢出,V =1时有溢出。亦即,两个符号相同的数相加,其运算结果,符号相反就产生溢出现象。实际上,不可能每次相加或相乘运算都来判断是否溢出,而要根据参与运算的二进制数的位数来决定结果用多少位表示才能不溢出。两个m 位的二进制补码相加,结果用m +1位表示,两个m 位的二进制补码相乘,结果用2m 位表示,都可以保证不溢出。

c)系统中有加法器、乘法器等组合逻辑(如图5所示):像这种既有组合逻辑又有同步逻辑的电路,一定要使得任意两个同步元件之间的总延时小于一个时钟周期,而且还需考虑同步元件的建立时间,即满足:

T CKO +T l og ic +T net +T setup

为时钟周期。

图5 同步元件之间有组合逻辑

为了满足式(6)的要求,一方面,在设计过程中要

尽量保证同步元件之间的组合逻辑延时不要太大,如果某条路径上的组合逻辑功能复杂,不可避免延时很大的话,那么就在中间加上若干个D 触发器,用同步

元件把大的组合逻辑分成若干个小块,使每一块的组合逻辑延时仍然可以满足要求;另一方面,可以通过附加约束,确保综合、实现的结果满足时序要求。

此外,最后结果不要由组合逻辑直接输出,如图3所示,I 1+I 2和Q 1-Q 2的结果是加法器得到的,输出

之前经过一个时钟延触发的寄存器,这样可以保证输出数据与时钟同步。图2中顶层输出信号在输出前经过一个同步处理,也是出于这方面的考虑。2.2 COR DIC 算法求复数幅角及FPGA 实现CORDIC 算法可以实现矢量的旋转,并把旋转的角度计算出来。利用这一特点可以求复数的幅角。如果矢量(X,Y )旋转角度H 后得到一个新的矢量(X c ,Y c ),那么它们的关系为:

X c =(cos H )X -(sin H )Y Y c =(cos H )Y +(sin H )X

(7)

CORDIC 算法把旋转分成若干次来完成,每次只旋转一个小角度A i arctan 2-i

。其中:i 表示第i 次旋转;A i =?1,+1表示逆时针旋转,-1表示顺时针旋转。这些小角度累加起来才是最后旋转的角度H 。设x i 、y i 、H i 分别是第i 次旋转之后得到的矢量的实部、虚部和转过的总弧度,由式(7)可以推得:

x i +1=(x i -A i y i 2-i )cos(arctan 2-i

)

y i +1=(y i +A i x i 2-i

)cos(arctan 2-i

)

H i+1=H i +A i arctan 2

-i

(8)

式中:A i =?1。

实现时为了简单起见,每次从x i 、y i ,递推到x i +1、y i +1时,往往引入一个迭代因子1/cos(arctan 2-i

),那

么迭代算法就简化成:

x i+1=x i -A i y i 2-i

y i+1=y i +A i x i 2-i H i+1=H i +A i arctan 2

-i

(9)

式中:A i =?1。

这样,求x i +1、y i +1的硬件实现只要用简单的移位加减操作就可以了。注意到由于迭代因子的引入,最

后得到的矢量(X c ,Y c )在幅度上与原矢量存在误差,根据需要可以在幅度上作一个补偿,新的矢量(X c ,

Y c )的模乘以0n

i=1cos(arctan 2

-i

)(n 是迭代的次数),就

可以消除这个误差。

初始值设定x 0=X 、y 0=Y ,为原矢量的位置,H 0=0,矢量旋转的方向由A i 控制。当y i -1\0时,令A i =-1,顺时针方向旋转;当y i -1<0时,令A i =+1,逆时针方向旋转。经过n 次迭代后,最终Y 分量会趋近于0,矢量会旋转到实轴的正半轴上,此时转过的总弧度

#

23#第30卷第9期 刘 伟,等:一种基于WLAN 的OFDM 频偏估计算法的FPGA 实现 #通信技术#

H n 一定是原矢量幅角的相反数,因此,所求复数的幅角H =-H n 。

笔者建议采用FPGA 集成开发环境Xilinx ISE 中提供的IP Core 实现C ORDIC 算法。如图6所示,它首先对输入数据作预处理,把不是第一象限的矢量用简单的方法粗旋转到第一象限,然后再进入CORDIC 模块,这样可以降低C ORDIC 模块的处理复杂度,最后在粗旋转恢复阶段把粗旋转的角度考虑进去,得到的就是复数矢量的整个幅角。CORDIC 模块主要由移位加

法器组成。

图6 求复数幅角原理

最后需要说明的是:C ORDIC 算法所占FPGA 资源与处理延时与数据宽度有直接关系,所以在设计时要

综合考虑系统开销和精度要求,从而决定数据位宽;得到频偏以后,要生成相应的频率控制字,反馈控制数字下变频器,以修正频偏的影响。读者可以根据各自系统设计要求和硬件平台的具体情况来考虑这些问题。

3 结束语

一个完整的载波同步系统的工作状态分为两个阶段,即捕获阶段和跟踪阶段。捕获阶段修正了频偏以后,仍然难免存在一定的误差,这个频率上的残差会对信号在相位偏移上构成一个累积效应,这样的相位偏移的消除就要在跟踪阶段完成。限于篇幅,这里仅仅讨论了捕获阶段频偏估计的实现。

算法设计充分考虑了FPGA 实现的可行性,乘法器尽量采用专用资源,数据宽度满足精度要求即可,求复数幅角的核心部分用移位加法器就可以实现。本系统中选用Xilinx VirtexIIc2v1000系列的FPGA,实现该算法只用了1/3的可配置逻辑单元,能够承受的最高工作频率可达54MHz,完全满足IEEE 802.11a 中基带处理速率的要求。

参 考 文 献

[1]Moose P H.A T echnique for Orthogonal Frequency Division Mult-i

plexing Frequency Offset Correction.IEEE Trans on Communica -tion,1994,42,(10):2908~2914

[2]Proakis J G.数字通信.第3版.张力军,译.北京:电子工

业出版社,2001

[3]王 诚,薛小刚,钟信潮.FPGA/CPLD 设计工具Xli nx

ISE5.x 使用详解.北京:人民邮电出版社,2003

FPGA Realization of a Frequency Offset Estimation Algorithm

for OFDM Systems Based on WLAN

Liu Wei,Li Ying,Wei Jibo

(National University of Defence Technology,C hangsha 410073,China)

=Abstract > Frequency offset estimation is one of the ke y tec hniques in OFD M syste ms.The causes of the carrier frequency offse t in OFDM systems based on W LAN are analyzed and principle and feasibility of the algorithm which estimates frequency offset by means of sel-f correlation in time domain are discussed,and the corresponding design realized in FPGA is presented.Furthermore,it e xplains some problems which are of concern during the de -sign.Basing on the physical layer frame format defined in IEEE 802.11a protocol,this design firstly calculates the comple x numbers .sel-f correlation using 5or 6short symbols,then gets the argument of the result utilizing CORDIC algorithm,and finally converts it into normalized frequency offset.

Keywords:OFDM,WLAN,frequency -offset estimation,FPGA,C ORDIC

#

24##通信技术# 电子工程师 2004年9月

fodm频率偏移估计算法分析--本科毕业设计

OFDM频率偏移估计算法分析 摘要 作为一种特殊的多载波调制技术,正交频分复用(OFDM,Orthogonal Frequency Division Multiplexing)因其高频谱利用率、高数据传输速率以及良好的抗多径干扰性能,广泛地应用于数字音视频广播、无线局域网等高速数据传输系统中。OFDM通信系统具备所有这些优势的前提是收发两端子载波均要保持良好的正交性,然而,在实际应用中,晶振的非理想因素以及移动通信中多径信道产生的多普勒频移将会造成OFDM系统发射机与接收机载波中心频率的偏移(CFO,Carrier Frequency Offset),而这将严重破坏子载波之间的正交性,因此OFDM系统接收机必须对载波频偏加以估计并对接收信号进行相应补偿以保证解调数据的准确性。通常,将这一操作称为载波频率同步,也可简称为频偏估计。由于OFDM系统对CFO非常敏感,微小的CFO就能造成系统误码性能的大幅下降,因此,频率同步技术是OFDM 系统的关键技术之一。 本论文首先回顾了OFDM技术发展的历史,然后从基本的OFDM系统的原理出发,阐述了OFDM系统中的同步问题。接着详细阐述了定时同步偏差和载波频率偏差对系统性能的影响。最后,对现有的频率同步技术(即,盲同步算法和非盲同步算法)进行了介绍且重点介绍了三种具有代表性的载波频偏估计算法:子载波间干扰(ICI,Intercarrier interference)自消除方法,高阶子载波间干扰(ICI)自消除方法和频率偏移盲估计方法,并通过仿真比较分析了它们在加性高斯白噪声信道和频率选择性信道下的估计性能。 关键词:正交频分复用;载波频率偏移;子载波间干扰;盲载波频偏估计;自消除

ofdm基本原理总结

OFDM 基本原理概述 设OFDM 信号的符号周期为T ,当N 个子载波的频率之间的最小间 N 表示子信道的个数,T 表示OFDM 符号宽度,i d (i =0,1,…,N-1)是分配给每个子信道的数据符号,0f 是第0个子载波载波频率,则从t=s t 开始的OFDM 符号可以表示为 100exp 2()(),()0,N i s s s i i d j f t t t t t T s t T π-=??? +-≤≤+???=????? ∑其它 它的等效基带信号是 1 ()exp 2(),N i s s s i i s t d j t t t t t T T π-=?? =-≤≤+????∑ 式中实部和虚部分别对应于OFDM 符号的同相和正交分量,是集中可以分别与相应子载波 的余弦分量和正弦分量相乘,构成最终的子信道信号和合成的OFDM 符号。

信号解调,接收第k 路子载波信号 k d 与第k 路解调载波exp[2()]s j t t T π--相乘,得到的结果在符号持续时间T 内进行积分,即可获得相应的发送信号k d 1^ 0101exp 2()exp 2()1exp 2()s s s s N t T k s i s t i N t T i s t i k k i d j t t d j t t dt T T T i k d j t t dt T T d πππ-+=-+=????=---???????? -??=-????=∑?∑? OFDM 复等效基带信号可以采用离散傅立叶逆变化(IFFT)方法来实现。令s t =0,t=/kT N (k=0,1,….,N-1), 即对s(t)以 T/N 的速率进行抽样可以得到 1 2()(/)exp N i i ki s k s kT N d j N π-=?? == ???∑ 01k N ≤≤- 式中s(k)即为i d 的IDFT 运算。接收端为恢复出原始的数据符号i d ,可以对s(k)进行DFT 运算,得到1 2()exp N i i ki d s k j N π-=? ? = - ?? ? ∑ 01i N ≤≤- OFDM 文章,时间连续系统模型时,发射机发射的第K 个载波波形时,

相关主题