FPGAOFDM系统设计方案与实现.docx

上传人:b****5 文档编号:8787500 上传时间:2023-05-15 格式:DOCX 页数:9 大小:23.02KB
下载 相关 举报
FPGAOFDM系统设计方案与实现.docx_第1页
第1页 / 共9页
FPGAOFDM系统设计方案与实现.docx_第2页
第2页 / 共9页
FPGAOFDM系统设计方案与实现.docx_第3页
第3页 / 共9页
FPGAOFDM系统设计方案与实现.docx_第4页
第4页 / 共9页
FPGAOFDM系统设计方案与实现.docx_第5页
第5页 / 共9页
FPGAOFDM系统设计方案与实现.docx_第6页
第6页 / 共9页
FPGAOFDM系统设计方案与实现.docx_第7页
第7页 / 共9页
FPGAOFDM系统设计方案与实现.docx_第8页
第8页 / 共9页
FPGAOFDM系统设计方案与实现.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

FPGAOFDM系统设计方案与实现.docx

《FPGAOFDM系统设计方案与实现.docx》由会员分享,可在线阅读,更多相关《FPGAOFDM系统设计方案与实现.docx(9页珍藏版)》请在冰点文库上搜索。

FPGAOFDM系统设计方案与实现.docx

FPGAOFDM系统设计方案与实现

封面

作者:

PanHongliang

仅供个人学习

基于FPGA的OFDM系统设计与实现

建立了一个基于FPGA的可实现流水化运行的OFDM系统的硬件平台,包括模拟前端、基于FPGA的OFDM调制器和OFDM解调器。

重点给出了OFDM调制解调器的实现构架,对FPGA实现方法进行了详细的描述,介绍了系统调试方法,并对系统进行了性能评价。

  近年来,随着数字信号处理(DSP)和超大规模集成电路(VLSI)技术的发展,正交频分复用OFDM(OrthogonalFrequencyDivisionMultiplexing)技术的应用有了长足的进步和广阔的发展前景。

IEEE802.11a中就将正交频分复用作为物理层的传输技术;欧盟在数字音频广播(DAB)、地面数字视频广播(DVB2T)、高清晰度电视(HDTV)以及2003年4月公布的无线城域网(WMAN)802.16a等研究中都使用了正交频分复用技术作为信道的传输手段。

在正交频分复用技术逐渐成熟的今天,如何降低通信系统的成本,使之更广泛地应用于数传系统中,已成为正交频分复用研究的热点。

本文基于802.16a协议的原理架构,本着小成本、高效率的设计思想,建立了一个基于FPGA的可实现流水化运行的OFDM系统的硬件平台,包括模拟前端及OFDM调制器及OFDM解调器,用来实现OFDM的远距离无线传输系统。

  1模拟前端

  模拟前端主要包括发送端DA模块、接收端AD模块和射频模块。

  发送端DA模块主要由XILINX公司的FPGA-XC2V1000芯片和数模转换芯片AD9765、滤波器和放大器构成,基带处理调制后数据在控制时钟同步下送入FPGA进行降峰均比等算法的处理,然后经过交织将其送入AD9765进行数模转换并上变频到70MHz,输出的模拟信号再经声表滤波器后放大进入下一级射频模块。

发送端DA模块硬件结构框图如图1所示。

  接收端AD模块主要由增益放大器、带通滤波、采样芯片AD9238和数字下变频器GC1012构成。

AD模块的主要功能是完成中频信号的采样和数字下变频,在FPGAXC2V1000中完成符号同步算法,其输出送OFDM解调器。

接收端AD模块硬件结构框图如图2所示。

射频模块工作在70MHz中频上,射频模块的功能是将完成调制的中频信号搬移到射频波段上,或者将空中的接收信号下变频到模拟前端所需的中频波段上。

  2OFDM调制器实现架构

  在OFDM系统中,OFDM调制器主要完成OFDM数据的调制。

图3为OFDM调制器的结构框图。

OFDM的调制器采用N=120个数据子信道,8个导频信道。

120个数据子信道都采用QPSK的信道调制,8个导频信道采用BPSK的信道调制。

为了使用基带传输,进行添零处理(添加128个0),使频带扩展1倍。

经过逆序处理后,采用256点的IFFT进行OFDM调制。

系统时钟为80MHz,用FPGA完成数据的编码和调制,最后以读时钟为500kHz的速率送往D/A。

  在FPGA中,按照具体的参数要求实现了OFDM系统中的调制功能,其工作流程为:

数据发生器(M序列产生器)发送数据,串并转换后存储在256×2位的RAM_in中,当接收够一帧数据所需要的信息量后,从RAM_in中读取数据进行QPSK映射、过采样添零,随后插入导频模块。

与此同时,IFFT模块接收QPSK映射、过采样添零和插入导频模块发送出的数据;当QPSK、添零、共轭模块处理完1个数据包的数据后,IFFT模块开始计算,进行OFDM的IFFT调制,经IFFT模块计算后的数据轮换存入RAM_ou1或者RAM_ou2;控制模块发出使能信号,先从数据输出模块中读取同步头发送,同步头发送完成后,再从RAM_ou1或者RAM_ou2中读取循环前缀和数据块;当IFFT模块计算完的数据全部送出后,控制模块判断开始处理下一包数据,处理到第10包数据,则通知外部控制器一帧数据处理完成。

  3OFDM解调器实现架构

在OFDM系统中,解调器主要是对接收A/D采样来的数据进行解调。

图4为OFDM解调器的结构框图。

  在FPGA中,按照参数要求实现:

将从A/D以500kHz的速率采样来的数据存入RAM当中,当接收到第64个帧头数据时,开始计算局部自相关函数;每接收到一个帧头数据,取出8位(最高位无效,剩余7位为巴克码),计算一次x(i)*x(i+j),并存储、判断,是否有相关最大值,如果有,则判断计数器加1,在一个帧头短前导字部分中,共有10个短前导字片,每一片为64个采样点;当接收到第640个数据后,判断累加器是否超过了门限值640×3,如果累加门限值达到1920,则认为有帧到达,整体控制模块产生使能信号,表示粗同步结束,准备接受长前导字,进行细同步和频偏估计计算,否则,将累加计数器清零,重新开始接受帧头;帧到达检测和帧同步过程完成后,再将接收到的数据存入到解帧模块的数据RAM中;当数据RAM中存满256点的数据后,整体控制模块发出读使能信号、解帧使能信号和FFT的START信号,从RAM中读取数据,送往FFT进行OFDM的解调;然后去除循环前缀,去除添加的零和导频信息;最后经过QPSK的反映射和并串转换后,还原成原始数据读出,并等下一帧数据的接收。

  4系统调试与性能分析

  采用OFDM技术的无线城域网通信系统是一个比较复杂的系统。

利用Matlab仿真完成系统可行性论证后,需要考虑如何利用FPGA完成这个算法流程,这需要考虑采用特定FPGA进行运算时有限字长以及浮点运算的特点和系统所占用的FPGA资源,以保证系统的规模不至于过大而超过特定FPGA计算的存储能力。

经过在硬件设备上的调试,最终完成采用OFDM技术的城域网无线通信系统。

通过仿真完成可行性论证后,在以Altera公司的EP1C6Q240C8芯片为基础的FPGA硬件平台上,实现了以QPSK为调制形式,以FFT/IFFT变换为主的OFDM技术的城域网无线通信系统。

  4.1IFFT模块

  发送端系统的主时钟频率设计为80MHz,整体采用同步时序逻辑。

发送端M序列的产生速率设定为80Mbps。

送往D/A的数据速率设定为500kHz。

在数据接收模块,数据收到后立刻存储,占用时间即为PC发送数据的时间。

在QPSK、添零、导频插入模块,由于没有中间存储器,从RAM读出数据,经过映射后就直接输出,整个模块需要256个时钟周期。

IFFT模块采用流水线结构的算法,计算256点IFFT需要128×8个蝶型单元,合计需要40960个时钟,加上输入输出所占用的时间,总共约需要41216个时钟周期(中间有一些状态的跳转,合计512μs)。

在数据输出模块,其输入是IFFT模块的输出,它的输出速率由D/A控制。

在FPGA中,OFDM调制器的逻辑单元的使用情况见表1,OFDM解调器的逻辑单元的使用情况见表2,IFFT的运算结果见图5。

  在表1和表2中,调制器和解调器中所含有的引脚数过多,主要原因是在这些引脚中还含有很多用于调试和测量的引脚,在整个系统调试时,可以将调试和测量用的引脚去掉,只留有数据、地址和控制引脚。

  在解调器中需要用到大量的存储单元,但考虑到Cyclone系列的存储单元有限,而逻辑单元丰富的情况,故在解调器中,在几乎耗尽EAB单元时,用逻辑单元来构造所需的存储器,可以实现正常的存储功能。

在开发工程中,主要用到的开发工具由Altera公司的QuartusII及Mathworks公司的Matlab。

  验证过程如下:

  ·Matlab随机生成一组128个复数,然后按照OFDM帧格式插入0得到256复数点的一个符号,并写入文件(如datain.dat);

  在QuartusII中生成IFFT的仿真波形文件(ifft.vwf),另存为ifft.tbl,并删除其余信号,仅保留I&Q(输入数据,24bit);

  在UltraEdit中打开ifftt.tbl、datain.dat,用datain.dat中的随机数代替ifft.tbl中的I&Q数据,保存ifft.tbl;

  在QuartusII中打开ifft.tbl,将I&Q复制到ifft.vwf中,开始运行仿真;

  ·将仿真结果另存为dataout.tbl,用Matlab读取与原数据在Matlab下的IFFT变换结果进行比较分析。

  给出一组随机数据输入,经过FPGA中的IFFT模块变换得到时域幅度如图6(实部)、图7(虚部)所示。

  而将同样的随机数经过MATLAB变换,得到的时域幅度如图8(实部)、图9(虚部)所示。

  实际测量与仿真计算的方差分析如图10(实部)、图11(虚部)所示。

两者结果基本一致。

OFDM中的FFT模块设计及其FPGA实现

2008-02-28    嵌入式在线    收藏|打印

      正交频分复用(OFDM)是一种多载波调制技术,可以有效地对抗频率选择性衰落和窄带干扰,并且有较高的频谱利用率。

      OFDM技术已经成功地应用于非对称数字用户环路(ADSL)、数字音频广播(DAB)、高清晰度电视(HDTV)、电力线载波通信(PLC)、无线局域网(WLAN)等系统中。

典型的OFDM基带收发机如图1所示,其中的多载波调制/解调由IFFT/FFT来实现。

      对于FFT处理器的实现,目前通用的方法是采用DSP、专用FFT处理芯片和FPGA。

用DSP实现FFT的处理速度较慢,不能满足某些高速信号实时处理的要求;专用的FFT处理芯片虽然速度较快,但外围电路相对复杂,不易扩展,且价格昂贵。

新一代FPGA资源丰富,易于组织流水和并行的结构,用其实现FFT,不仅可以提高处理速度,而且具有灵活性高,开发费用低的特点。

      1设计与实现

      本设计为128点FFT,采用简单实用的基2时间抽取(DIT)算法。

该模块的FFT处理共需3个过程,即外部数据倒序输入过程,FFT中间运算过程(128点的FFT运算可分解成7级运算,每级64个基2蝶形运算)和运算结果正序输出过程。

整个FFT模块内部结构简图如图2所示。

该FFT模块主要包括蝶形运算单元、控制单元和存储单元(ROM和双口RAM)。

      1.1蝶形运算单元

  

      基2时间抽取蝶形运算信号流图如图3所示。

      由上述公式可以看出,一个基2蝶形运算要进行1次复乘、2次复加。

若在一个时钟周期内完成复乘,则需要4个实数乘法器和2个实数加法器。

因为一个蝶形运算需要取两个输入数据,而只存在1次复乘,所以可以用2个时钟周期来完成1次复乘,即可以对实数乘法器进行复用,从而减少乘法器的数目同时不降低处理速度。

  

       改进后的基2蝶形运算单元充分利用了FPGA片内的寄存器,采用流水和并行的结构将复乘所需的4个实数乘法器减少到2个,其逻辑结构如图4。

从中可以看出,蝶形运算单元主要由寄存器、选择器、乘法器和加法器构成。

左边3个选择器用来选择做乘法的数据,右边2个选择器用来选择加法器的加减功能。

      该蝶形运算单元中的复乘运算是2个8比特的复数相乘得到15比特的复数。

因为输入数据和旋转因子的8比特数据实际上表征的是模值不大于“1”的复小数,所以复乘运算的输出结果用15比特表示并不会产生溢出。

2个15比特的数据进行复加运算得到16比特的结果。

为便于下一级运算,将复加运算输出的16比特数据截掉低8位(采用定点四舍五人的方法以减小误差)。

128点FFT的7级运算中每一级的数据都相当于先左移了7位(旋转因子的模值为128),而后又截掉了低8位,所以每一级都相当于做了除2运算,故此128点FFT输出结果是理论值的(1/2)7。

      1.2控制单元

  

      控制单元是整个FFT模块的核心。

主要有以下两个功能:

1)提供各个模块的运算使能。

  

      当检测到输入口的FFT_start信号后,立即开始接收数据,并反序存储到RAM中。

在128个时钟周期之后,启动各级的蝶形运算,并同时产生RAM的读写使能信号。

在第7级运算结束时,提供数据输出的标志FFT_done,并控制RAM同步正序输出数据。

      2)产生各级运算所需的地址

  

      产生FFT输入的倒序地址和输出的正序地址(正序和倒序均用同步计数器实现,正序为当前计数器的输出,倒序为当前计数器的高位与低位的对应位全部对调后的输出);各级运算的地址(按照计数器的输出,根据各级蝶形运算的规律产生。

先产生蝶形运算第一个数据的RAM地址,再产生第二个数据的RAM地址;在产生以上两个取数地址的同时,产生所对应的旋转因子的ROM取数地址)。

      1.3存储单元

  

      该FFT模块中的存储单元(ROM和双口RAM)由XilinxISE6.2i的COREGenerator工具根据FPGA的型号生成。

      本FFT设计中有2个ROM分别用来存储旋转因子,并以补码的形式将它们按照*.mif格式文件输出。

用工具例化ROM,将*.mif文件写入各自的ROM初始化文件中,完成对ROM的初始化。

  

      通常的FFT设计采用的是有2块(按实、虚部分开算是4块)RAM的“乒乓”式结构,而在处理速度要求不太高的情况下,可以采用1块(按实、虚部分开算是2块)RAM来完成,进而节省RAM资源,便于以后的ASIC开发。

在此FFT模块的设计中,有2个分别用来存储数据实部和虚部的双口RAM(端口a只写,端口b只读)。

RAM的两端口可以在读写地址不同的情况下同时工作,即在通过端口b从RAM中读取蝶形运算数据的同时,也在通过端口a往RAM中写入上几次蝶形运算的结果。

      2仿真与分析

  

      采用VerilogHDL对所设计的FFT模块进行RTL描述。

FFT处理点数为128,输入输出用8比特补码表示。

采用MoldSimSE5.8a对整个设计进行功能仿真,采用SynplifyPro7.3.3进行综合;使用Xilinx的ISE6.2i工具配置比特流下载;FPGA选用XilinxSpartanII系列中的xc2s200pq208-5。

用MoldSim进行仿真的局部时序如图5所示。

      将MATLAB的计算结果与FPGA的仿真结果进行对比,如图6所示。

可见两组结果能较好地吻合,从而验证了所设计的FFT模块的正确性。

      整个FFT模块在SpartanII的xc2s200pq208-5上共用去逻辑单元(LUTs)393,占总资源的8%,这样就为OFDM系统其他模块的设计节省了大量资源。

  

      128点FFT需要完成蝶形运算(128/2)×log2128=448次,每个蝶形运算需要2个时钟周期,蝶形运算需要7个时钟周期的延时,收发外部数据需要128×2=256个时钟周期,所以整个FFT运算共需要时钟周期448×2+7+256=1159个,在处理速度上达到了预期的目标。

      3结论

      本文中设计的FFT模块采用基2时间抽取算法,用verilogHDL对其进行了RTL描述,用MoldSim和Synplify工具进行了仿真和综合,并在XilinxSpartanIIFPGA中进行了验证。

  

      此外,FFT运算结果的精度与输入数据的位数及运算过程中的位数有关。

在定点计算中,存储器数据的位数越大,运算精度越高,使用的存储单元和逻辑单元也越多。

在OFDM系统的实际应用中,可以根据实际情况折衷选择FFT模块的精度和资源。

  

      本文所设计的FFT模块的输入、输出和旋转因子为8比特数据,采用了1块(按实、虚部分开算是2块)双口RAM和基2单蝶形流水运算的结构,达到了某些OFDM系统对FFT模块的精度和资源的要求,为OFDM系统的ASIC的开发提供了很好的依据。

版权申明

本文部分内容,包括文字、图片、以及设计等在网上搜集整理。

版权为潘宏亮个人所有

Thisarticleincludessomeparts,includingtext,pictures,anddesign.CopyrightisPanHongliang'spersonalownership.

用户可将本文的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。

除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人的书面许可,并支付报酬。

Usersmayusethecontentsorservicesofthisarticleforpersonalstudy,researchorappreciation,andothernon-commercialornon-profitpurposes,butatthesametime,theyshallabidebytheprovisionsofcopyrightlawandotherrelevantlaws,andshallnotinfringeuponthelegitimaterightsofthiswebsiteanditsrelevantobligees.Inaddition,whenanycontentorserviceofthisarticleisusedforotherpurposes,writtenpermissionandremunerationshallbeobtainedfromthepersonconcernedandtherelevantobligee.

转载或引用本文内容必须是以新闻性或资料性公共免费信息为使用目的的合理、善意引用,不得对本文内容原意进行曲解、修改,并自负版权等法律责任。

Reproductionorquotationofthecontentofthisarticlemustbereasonableandgood-faithcitationfortheuseofnewsorinformativepublicfreeinformation.Itshallnotmisinterpretormodifytheoriginalintentionofthecontentofthisarticle,andshallbearlegalliabilitysuchascopyright.

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2