无线系统中自适应数字调制、STBC编码和FFT/IFFT模块的FPGA实现方法

FPGA/ASIC技术

205人已加入

描述

 

针对自适应MIMO-OFDM无线基带传输系统,提出了一种并行复用的基4-FFT/IFFT算法的FPGA实现方法,并对其中的自适应数字调制、STBC编码和FFT/IFFT模块进行了FPGA实现研究和仿真。仿真结果表明,该方法实现了模块的功能,且性能良好,具有一定的应用价值。

0 引言

OFDM(Orthogonal Frequency-Division Multiplexing)技术由于其频谱利用率高和抗频率选择性衰落的优点,已经成为无线通信系统中最受欢迎的调制技术。多输入多输出(Multi Input Multi Output,MIMO)技术采用多根天线实现信号在空域和时域的多重复用,在不增加带宽和天线发送功率的情况下,可以成倍地提高频谱利用率,还能在一定程度上对抗多径衰落。基于以上这些优点,MIMO技术已成为进一步提升OFDM系统性能的关键技术。目前,MIMO-OFDM技术已广泛运用到高速无线通信系统中,比如:LTE、WLAN、WiMAX、微波通信以及未来的5G通信等[1]。

自适应调制技术利用无线链路的反馈息,动态地对发射功率、编码方式、调制阶数、载波分配等进行调整,使系统在适应时变信道的同时,尽可能地优化吞吐量、误比特率和发射功率[2]。将自适应调制技术应用于MIMO-OFDM系统中,可以优化系统的资源分配,进一步提升系统的性能,具有很好的应用前景[3]。

FPGA具有开发周期短、可并行处理、设计灵活、低成本等优点,用FPGA来验证和实现,是一种很好的开发无线通信系统的方法。

本文设计了一个自适应MIMO-OFDM无线基带传输系统,介绍了系统的关键技术,并对其中的自适应数字调制、STBC编码和FFT/IFFT模块进行了FPGA设计和仿真,分析了仿真结果。

1 系统模型

一个基本的自适应MIMO-OFDM无线基带传输系统如图1所示。信源经过信道编码和交织后被送入数字调制模块,此模块根据接收端反馈回的信道信息选择合适的调制方案。被调制的信号送入STBC编码模块,经过Alamouti空时编码后生成两路正交的码流,再经过串并转换后进入IFFT模块进行OFDM调制。解调端的处理是调制的逆过程,需要注意的是在解调端需要引入信道估计模块,用于采集信道信息以实现系统的同步和发射端的自适应调制。

FPGA

 

2 FPGA设计

2.1 自适应数字调制模块

本文采用信噪比参数来衡量信道信息,不同的信噪比取值对应于不同的调制方式。利用信噪比作为参数来配置自适应调制的关键在于确定好每种调制编码模式的判决门限。这就需要通过大量的实验测量在不同信噪比条件下,选择何种调制编码模式能使系统的性能达到最优,以找到不同的参数与调制编码模式的映射关系。信噪比与调制方式的映射关系如表1所示。

FPGA

 

自适应调制顶层模块接收到对应的SNR参数后,根据表1的映射规则,选择对应的调制子模块,使其使能端有效以启动此模块。随后,将子模块的数据输入端口连接到顶层模块的信号输入接口,以使外部信源数据输入到子模块,实现对应的调制处理。其实现框图如图2所示。

FPGA
 

 

2.2 STBC编码模块

STBC编码模块接收到来自上一个模块的数据,将数据两个一组保存下来。Alamouti编码模块经过相应的逻辑处理生成两个数据的共轭形式,再将原数据和其共轭形式一起保存到下一级寄存器,最后分成两路数据输出。其设计原理如图3所示。

FPGA

 

2.3 FFT/IFFT模块

本文采用基4-FFT/IFFT算法来实现64点OFDM调制解调。常见的的FFT实现方法有流水线和并行阵列方法。此两种方法各自有其优缺点。流水线以牺牲时间来换取逻辑资源花费的减少,这种方法占用的逻辑资源少,但是延时很高。并行阵列方法每一级之间也是采用流水线的设计思想,只不过每一级采用多个蝶形并行运算,只消耗一个蝶形运算时间,这样就极大地节省了运算时间,减少了延时,但是会消耗大量的逻辑资源。本文采用这两种方法折中的方法——并行复用法。64点基4-FFT以4点蝶形运算为基本单元,如图4所示。

FPGA

输入数据按二进制倒位序4点为一组,送入蝶形单元。值得注意的是,图中的乘以-j只需要交换实部和虚部后,再取虚部的相反数即可实现。因此以上蝶形单元不需要使用乘法器,这就节省了逻辑资源的使用。输出的数据是倒位序,需要经过整序以输出正常排序的数据。64点的FFT需要log464=3级运算,每一级需要64/4=16次蝶形运算。本文的设计总共包含16个蝶形运算单元,每一级处理数据时,同时启动16个蝶形单元并行运算,这样完成整级的运算就只需要1个蝶形运算时间单元。除了最后一级的运算,其余每级运算的输出都要乘以相应的旋转因子。因此在设计之初,可以将所有会用到的旋转因子事先保存下来。图5为FFT模块的基本架构。

FPGA

 

串/并模块由一个深度为64的RAM实现,将输入数据经过倒序后4个一组并行输出。每一组数据输入到蝶形运算模块中对应的蝶形单元,模块的16个蝶形运算单元接收到数据后同时启动蝶形运算,只需要一个运算时间单元就能完成一级运算。每一级的输出受控制模块控制,如果为最后一级,则不需要乘以旋转因子,经过整序后就可以直接输出。如果不是最后一级的输出,那输出后的数据还要乘上对应的旋转因子,然后经过相应的整序后,输出数据被重新送到蝶形运算单元作为输入执行下一级的运算。直到最后一级的运算完成并输出后,蝶形运算单元才会等待下一组64点数据的到来,接收并作为新的输入,执行新一轮运算。模块每一级的运算重复利用这16个碟形运算单元,实现了并行复用的思想。运算全程受控制模块控制,采用状态机控制每一级的运行状态,状态图如图6所示。

FPGA

 

3 仿真测试

本次设计采用Xilinx全新的FPGA开发软件Vivado作为开发工具,硬件描述语言使用Verilog语言。为了便于时序控制,设计采用同步时序逻辑,系统时钟设置为50 MHz。仿真工具采用Vivado集成的仿真工具。

3.1 自适应数字调制

设置不同的参数,自适应调制能实现阶数不同的调制。图7~图8分别展示了16QAM、64QAM的调制结果。

FPGA


FPGA

 

图中的IM_RE和DM_IM分别表示I、Q两路信号,用带符号8位二进制数表示,保留6位小数,图中以十进制显示。DM_INDEX表示数据的序号。

3.2 STBC编码

图9展示了16QAM调制信号经STBC编码后的仿真结果。

FPGA

 

图中RE_OUT0、IM_OUT0和RE_OUT1、IM_OUT1分别表示经过STBC编码后的两路相互正交的信号,STBC_ORDER表示数据序号。

3.3 FFT/IFFT

IFFT的运算结构和FFT相同,只需将数据做简单的共轭处理,就可以利用FFT的运算模块计算IFFT。数据经过STBC编码处理后,再做IFFT变换以实现OFDM调制。FFT实现了IFFT解调,因此输出数据因等于STBC编码的输出。图10~图11分别展示了IFFT、FFT的仿真结果。

FPGA


FPGA

 

通过对比图11和图9可以看出,图11的仿真结果并不完全等于图9,这是由于系统采用的是二进制定点数运算,存在误差。不过从图中可以看出,误差在可接受的范围内。因此,可以认为FFT/IFFT模块正确地实现了调制和解调。

该系统采用Vivado集成的综合工具综合和布局布线,在Xilinx ZYNQ7020上实现,其资源消耗情况如表2所示。

FPGA

 

4 结语

本文针对自适应MIMO-OFDM无线基带传输系统的关键技术,研究了基带传输系统的FPGA实现,并对其中的自适应数字调制、STBC编码和FFT/IFFT模块进行了FPGA设计与仿真。针对FFT/IFFT模块的设计,在延时和逻辑资源占有上折中,提出了一种并行复用方法,结合基4FFT/IFFT算法来实现设计。仿真结果表明,自适应数字调制能动态地调整调制方式,STBC编码实现了信号的分集,提高了信号的可靠性。FFT/IFFT模块能正确实现OFDM调制和解调,并在延时和逻辑占有率上取得了平衡,具有一定的应用价值。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分