0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

简述LTE系统中FPGA速率匹配算法的仿真及实现

电子工程师 来源:电子技术应用 作者:刘 辉,陈小亭,李 2021-04-28 09:42 次阅读

摘要: 速率匹配是LTE系统中重要的组成部分。在详细分析3GPP协议中Turbo编码速率匹配算法的基础上,给出了一种基于FPGA的速率匹配实现方案。该方案通过乒乓操作以减少速率匹配的处理延时;并以Virtex-6芯片为平台,完成了仿真、综合、板级验证等工作。结果表明,基于该方案的速率匹配算法能够明显地缩小处理延迟。

LTE(长期演进)是3.9G的全球标准,采用OFDM和MIMO技术作为其无线网络演进的唯一标准,极大地提高了系统的带宽[1]。而速率匹配是LTE系统中重要的组成部分,因此速率匹配设计的优劣,决定整个系统性能的好坏[2]。LTE系统中,速率匹配是指传输信道上的比特被打孔或者被重发,以匹配物理信道的承载能力。

当输入的比特数目超过物理信道的承载能力时,就要对输入的序列进行打孔;而当输入的比特数目不满足物理信道的承载能力时,就要对输入的序列进行重发。根据编码方式的不同,速率匹配又可分为卷积编码和Turbo编码的速率匹配。FPGA在数字信号处理方面性能优越,利用FPGA做乒乓操作能够明显地提高数据的处理速度[3]。

1 速率匹配算法

1.1 速率匹配的整体流程

在LTE系统中,基于Turbo编码的速率匹配过程如图1所示。该过程主要包括子块交织、比特收集、比特选择和修剪[4]。

1330754049151.gif

1330552027347.gif

2.2 乒乓前控制模块的FPGA实现

数据经过Turbo编码器后分3路暂存在3个RAM中。当速率匹配模块中的使能信号Rate_Match_En拉高时,所有的模块开始工作。如果乒乓前控制模块的启动信号Control_Start为高电平并且接收到的码块个数是偶数,则子块交织A模块的启动信号Interleavera_Start拉高,此时子块交织A就会读取外部RAM中的数据,进行子块交织;否则子块交织B模块的启动信号Interleaverb_Start拉高,子块交织B会从外部RAM中读取数据,进行子块交织。从而实现了乒乓操作。

2.3 子块交织的FPGA实现

以子块交织A模块为例。当子块交织A的启动信号拉高时,子块交织A模块会从外部RAM中读取数据。首先读取第1路数据。第1路数据读取完毕后立即读取第2路数据和第3路数据。第2路数据放在偶数位置,第3路数据放在奇数位置。在Turbo编码模块中,输出的数据已经加入了填充比特。

为了区别填充比特和数据信息,输入数据的位宽占2 bit,填充比特用3来表示。子块交织输出的数据仍然占2 bit的位宽,只有在比特修剪模块后,数据才按照1 bit的位宽表示。在子块交织的FPGA实现过程中,将外部RAM模拟成一个交织矩阵。交织矩阵的每一个元素对应RAM的每一个地址,每一个元素的具体内容对应于RAM的每一个数据。

在程序中,第1路数据与第2路数据的交织方法一样,用变量F_Matrix_Column、S_Matrix_Column、T_Matrix_Column表示3个交织矩阵的列;用变量F_Matrix_Row、S_Matrix_Row、T_Matrix_Row表示3个交织矩阵的行。以读取第1路数据为例,因为是行写入列读出,所以行变量F_Matrix_Row每个时钟要自加1,直到行变量取到RTCsubblock-1时归零,同时列变量F_Matrix_Column按照表1所示进行列交织。

1331744189803.gif

按表2进行交织以后,将RAM交织矩阵中最后一列的第1个地址中的数据放到该列的最后一个地址中,将剩下的数依次向上移一个地址即可。

2.4 乒乓后控制模块的FPGA实现

在子块交织A和子块交织B开始工作时,乒乓后控制模块也已经开始工作。当子块交织A的启动信号Interleavera_Start拉高时,乒乓后控制模块会将子块交织A输入的数据传输给比特修剪模块;反之,则会将子块交织B输入的数据传输给比特修剪模块。

2.5 比特修剪模块的FPGA实现

在比特修剪模块中,一个码块的数据进行子块交织后会缓存在一个RAM中。此方法可以阻止在输入数据少于输出数据需要重发操作时由于数据丢失而引起的传输错误。本程序中进行了乒乓操作,但由于输入数据速率小于输出数据的速率,所以乒乓操作不能做到无缝隙地进行,输入的码块之间会有一定的间隔。

而为了将码块之间的间隔限制在最小范围,将表示速率匹配输出序列长度的变量E和表示取数起始位置的变量Ko输出给Turbo编码模块,可使码块之间的间隔限制在最小。在比特修剪时,设置一个计数器变量counter,初始值设置为零。当RAM中缓存的数据大于Ko时,可以从RAM中读取数据,若该数据是填充比特,则跳过,计数器counter不变;否则,计数器counter自加1,同时输出数据。直到计数器counter的值等于E时,读取数据完毕。等待下一个码块子块交织后输入的数据。

3 FPGA实现结果分析

图3和图4分别是PUSCH信道子块交织的ModelSim仿真图形和FPGA实现图。本程序的时钟频率是200 MHz。Virtex-6芯片做为测试平台。程序中DataOf-Interleaverb和DataOfInterleaverb是PUSCH信道子块交织的输出数据和标志位,A_Matrix_Row和A_Matrix_Column分别表示交织矩阵的行和列, A_addrb是RAM交织矩阵的地址。

由于交织矩阵的列数有32个,所以每次输出数据的地址就要加32,以实现列读出。变量A_Matrix_Row取到矩阵的最后一行后,又重新取下一列的第一行,直到32列全部取完为止。从PUSCH信道交织的仿真图和FPGA实现图可以看出,仿真结果与FPGA实现结果一致,因此FPGA能够准确地实现PUSCH信道的子块交织功能。

图5和图6分别是PUSCH信道比特修剪的ModelSim仿真图形和FPGA实现图。从图形中可知,仿真结果与板级验证的结果一致,FPGA能够稳定、准确地实现比特修剪的功能。

1332013915326.gif

子块交织和比特修剪的Verilog[5]程序已经通过了Xilinx ISE 13.4[6]的编译、仿真、板级验证和联机测试。结果表明,运用FPGA来实现速率匹配算法能够满足LTE系统对速率匹配的速度要求,同时也能够充分发挥FPGA并行操作的优越性。在此基础上,引用乒乓操作的方法,在不消耗更多资源的情况下,进一步缩短了速率匹配的处理时间,为整体系统的快速运行提供了基本的速度保障。由于该算法的FPGA实现在联机测试中,性能稳定,故已在TD_LTE射频一致性项目中得到应用。

参考文献

[1] 陈发堂,李小文,王丹,等。移动通信接收机设计理论与实现[M]。北京:科学出版社,2011.

[2] Ma Chixiang,Lin Ping.Efficient implementation of rate matching for LTE Turbo codes[C].The 2nd International Conference on Future Computer and Communication(ICFCC 2010),2010:704-708.

[3] 曹华,邓彬。使用Verilog实现基于FPGA的SDRAM控制器[J]。今日电子,2005,10(1):11-14.

[4] 3GPP TS 36.212 v9.1.0.3rd generation partner-ship project;technical specification group radio access network;evolved universal terrestrial radio access(E-UTRA);rate matching (Release 9)[S].2010.

[5] 夏宇闻.Verilog数字系统设计教程(第2版)[M]。北京:北京航空航天大学出版社,2008.

[6] XilinxInc.Foundation series user guide[EB/OL]。(2010-01-03)。

编辑:jq

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

    关注

    6

    文章

    349

    浏览量

    57001
  • LTE
    LTE
    +关注

    关注

    15

    文章

    1358

    浏览量

    177858
  • MIMO
    +关注

    关注

    12

    文章

    594

    浏览量

    76824
  • 3GPP
    +关注

    关注

    4

    文章

    417

    浏览量

    45243
收藏 人收藏

    评论

    相关推荐

    手写图像模板匹配算法在OpenCV实现

    OpenCV的模板匹配是支持基于NCC相似度查找的,但是不是很好用,一个主要的原因是查找最大阈值,只能匹配一个,自己比对阈值,又导致无法正确设定阈值范围,所以问题很多。于是我重新写了纯Python版本的NCC图像模板
    的头像 发表于 11-11 10:12 231次阅读
    手写图像模板<b class='flag-5'>匹配</b><b class='flag-5'>算法</b>在OpenCV<b class='flag-5'>中</b>的<b class='flag-5'>实现</b>

    FPGA仿真黑科技\"EasyGo Vs Addon \",助力大规模电力电子系统仿真

    仿真灵活性EasyGo FPGACoder是一种基于FPGA的快速算法开发技术,能将用户基于Simulink开发的算法快速
    发表于 10-23 18:18

    如何用FPGA实现一个通信系统的发射端接收机?

    ,共同进步。 欢迎加入FPGA技术微信交流群14群! 交流问题(一) Q:用FPGA实现一个通信系统(5GHz频段,通信距离越10km)的发射端&接收机,如何规划学习路线? 完
    发表于 09-10 19:15

    为什么FPGA属于硬件,还需要搞算法

    吗?单纯搞算 法就行了吗?一脸懵求解答。 A:FPGA 属于硬件,但其功能的实现离不开算法FPGA 虽然是硬件,但它具有可编程性,要
    发表于 09-09 16:54

    FPGA-5G通信算法的基本套路

    实现变得更简单,系统性能更优。但在实际工作,其实也存在纯算法与纯实现的隔阂。主要反映为很多算法
    发表于 08-15 17:34

    基于 FPGA 的会议系统设计

    ,再送入 FPGA 处理。(3)采用 TDOA 算法,并在高速、并行的 FPGA 实现,使得
    发表于 08-01 18:40

    FPGA实现什么样的算法

    FPGA功能如此强大,请问用FPGA实现或者比较适合实现什么样的算法
    发表于 05-26 20:18

    基于 FPGA 的光纤混沌加密系统

    设计概述 1.1 设计目的 近年来,信息安全应用于生活的各个领域。在光通信系统,往往对速率 有着较高的追求。其中对光模块,光纤通信中的传输
    发表于 04-26 17:18

    【分享】基于Easygo仿真平台的三电机实时仿真测试应用

    算法效果的前期仿真评估及算法或控制器参数设计及仿真验证,可以很大程度上减少系统开发周期及成本。对多电机同步控制
    发表于 04-09 16:49

    基于多速率DA的根升余弦滤波器的FPGA实现

    性价比高于传统算法;另一方面由于对滤波器引入多相结构,使得大部分电路工作在较低频率下,减少了计算量,而且还降低了系统功耗,因此基于多速率处理技术和并行DA算法
    发表于 03-25 14:21

    fpga仿真器接口定义

    FPGA(Field-Programmable Gate Array,现场可编程门阵列)仿真器接口的定义主要依赖于仿真器的具体设计和所支持的通信协议。在FPGA的设计和
    的头像 发表于 03-15 14:01 1238次阅读

    fpga仿真是什么

    FPGA仿真是一种验证FPGA设计正确性的过程,主要用来分析设计电路逻辑关系的正确性。在FPGA设计
    的头像 发表于 03-15 13:59 1444次阅读

    【分享】EasyGo 链式SVG系统的实时仿真应用

    个关键元件,其中一共有96个开关器件,需要接收96路脉冲控制指令。整个系统的主电路部分通过模型的部署,我们将主电路部分放至在其中一块FPGA上进行1.5us的实时仿真,CPU用来做控制算法
    发表于 02-21 17:31

    FPGA实现iddr语言的双速率采集和存储?

    FPGA实现iddr语言的双速率采集和存储,有没有大佬做过
    发表于 01-15 16:19

    怎么用FPGA算法 如何在FPGA实现最大公约数算法

    FPGA算法的优点在于它们可以提供高度的定制化和灵活性,使得算法可以根据实际需求进行优化和调整。此外,FPGA还可以实现硬件加速,提供比传统
    的头像 发表于 01-15 16:03 2227次阅读