数字电视地面广播系统中3780点IFFT算法的逻辑优化设计

更新时间:2024-03-10 作者:用户投稿原创标记本站原创 点赞:30226 浏览:134780

【摘 要】本论文主要针对数字电视地面广播系统国标中的多载波调制技术,实现其中3780点IFFT算法的逻辑设计及实现.针对目前该算法的逻辑设计存在误码率较高的问题,分析定点制、浮点制和块浮点制数据的特点,本论文提出了四种优化方案,并完成了各种方案的逻辑设计.

【关 键 词】IFFT;溢出;定点;浮点;块浮点;FPGA

Abstract:Themaintaskofthispaperistopletelogicdesignandimplementationof3780-pointIFFTalgorithmofOFDMinthenationalstandardfordigitaltelevisionterrestrialbroadcastingsystem.Toslovethehighererrorrateofthelogicforthecurrentdesign,analyzingthedatacharacteristicsinfixed-pointformat、blockfloating-pointformatandfloating-pointformat,thispaperpresentouroptimizationprogram,andpletedthedesignoftheprogramlogic.

Keywords:IFFT;overflow;Fixed-point;Floating-point;BlockFloating-point

数字电视地面广播系统是广播电视体系中的重要组成部分.它与卫星数字电视广播系统和有线数字电视广播系统以及其它辅助系统一起相互协同提供全面的受众覆盖,是我国广播电视综合覆盖网中重要的部分.

1.数字电视广播系统概述

目前,己为国际电信联盟接纳的数字电视地面广播传输标准有三种:第一种是以美国为首的ATSC(AdvancedTelevisionSystemCommittee)标准;第二种是以欧洲为中心DVB-T(DigitalVideoBroadcastingTerrestrial)标准;第三种是日本推出的ISDB-T(IntegratedServiceDigitalBroadcastingTerrestrial)标准.我国于2006年8月公布了满足光电应用要求的数字电视地面广播传输融合方案——GB20600-2006《数字电视地面广播传输系统帧结构、信道编码和调制》,并在2007年8月开始强制实施,拉开了我国数字电视地面广播的新篇章.

数字电视地面广播传输系统主要是由信道编/解码和调制/解调两部分技术所构成.该系统的前向纠错编码部分可分为两种模式:电视模式和多媒体模式;而信道调制部分也可分为两种模式:多载波调制模式和单载波调制模式.数字电视地面广播传输系统发送端完成从输入数据码流到地面电视信道传输信号的转换.输入数据码流经过扰码器(随机化)、前向纠错编码(FEC),然后进行从比特流到符号流的星座映射,再进行交织后形成基本数据块.基本数据块与系统信息组合(复用)后,经过帧体数据处理形成帧体.而帧体与相应的帧头(PN序列)复接为信号帧(组帧),经过基带后处理转换为基带输出信号(8MHz带宽内).

2.IFFT算法原理

在数字电视地面广播标准中规定的多载波数目是3780,即将QAM映射后的星座符号调制到3780个有效的子载波上.下面详细讲解3780点IFFT算法的推导过程及其Matlab仿真验证结果.

2.13780点IFFT公式推导

在数字电视广播系统中经过IFFT的OFDM符号表示为:

N等于3780等于r1*r2*r3*r4*r5*r6*r7等于3*3*3*2*2*5*7

由式1可知,IFFT可通过FFT的共轭变换得到,所以IFFT和FFT的实现原理是相同的.

2.2Matlab验证结果及分析

使用Matlab对该3780点IFFT算法进行验证.经过该3780点IFFT算法计算的结果为f1,直接调用Matlab里的IFFT函数计算的结果为f2,二者之间的最大误差为:e等于max(abs(f1-f2))等于2.0097e-14.由以上结果可知,该3780点IFFT算法理论上是正确的.f1和f2的波形图如图1所示.

3.IFFT算法的FPGA设计及实现

本论文所采用的FPGA开发工具包括:ModelsimSE6.6和QuartusII9.0.选用的FPGA芯片是ALTERA公司CycloneIII系列的EP3C80U484C8芯片,包括81264个LE、2745Kbits的RAM总容量、488个9bits×9bits嵌入式乘法器、4个PLL等.本章主要介绍该IFFT算法的基本逻辑设计思想及其现有的逻辑实现方法,并针对现有的逻辑设计存在的问题提出优化的逻辑设计方案,完成各种优化方案的逻辑代码编写、综合、仿真及后期的板级验证.

3.1逻辑设计基本思路

由公式1可知,可以通过计算法输入数据的共轭FFT得到其IFFT计算结果,即先将输入数据去共轭,求其3780点FFT,计算完成后将结果取共轭并除以即为3780点IFFT的计算结果,在本设计中没有在最后除以3780,而是在对7点、5点、2点和3点的I矩阵量化的过程中分别除以、、、.

本设计以WFTA算法为逻辑实现基础,WFTA是一种计算小N的DFT算法,该算法可以计算N等于2,3,4,5,7,8,9,16八种长度的DFT,其核心思想是通过矩阵的降阶,减少DFT的加减及乘除法的次数.以WFTA算法为基础的3780点FFT算法结构图如图2所示.

3.2优化的逻辑设计方案针对目前的逻辑设计方法存在较频繁的数据溢出的问题,本论文提出了几种可以优化此问题的方案.方案一:在现有的定点运算基础上,对溢出数据进行溢出控制,上溢时输出最大值,下溢时输出最小值;方案二:将7位输入数据扩展为32位数据进行处理,最后截取拼接成22位数据输出;方案三:将输入的数据转换成32位的单精度浮点数进行处理,最后再转化为22位定点数输出;方案四:自定义一种25bits的浮点数,最后转化为22位定点数输出.

3.2.1方案一逻辑设计方法

分别在ACC模块、multa模块和multb模块加入溢出控制语句:当上溢时输出最大值,下溢时输出最小值.其逻辑资源消耗情况如图3.1所示.

由图3.1可知,这三个模块均有较频繁的数据溢出,而数据溢出可能导致较高的数据误码率.

3.2.2方案二逻辑设计方法

将7位输入数据扩展为32位定点数据:2位符号位+20位整数位+10位小数位,其它数据处理过程同3.2.1,最后将32位数据截取成22位输出.其逻辑资源消耗情况如图3.3所示.

存在问题:板级验证无数据.

解决方法:因所有的数据是有符号的二进制补码数,所以过程中使用的乘法器应该是有符号的.将IP核的乘法器改成signed后,功能正常有数据.

板级验证:结果正确,平均功率39%以上,达到了性能指标.

3.2.3方案三逻辑设计方法

将输入的7位定点数转换成32位单精度浮点数:1位符号位+8位指数+23位尾数,最后再将32位浮点数结果转换成22位定点数输出,中间的数据处理全部都是浮点数运算.

浮点数累加器可以自己写也可以直接调用ALTERA的IP核,由于IP核里的代码输出至少有5个时钟的延时,不符合本论文中累加器的设计要求,所以采用自己设计的累加器代码,与主程序共用一个时钟,不占用额外的时钟.浮点数乘法器直接调用IP核.其逻辑资源消耗情况如图3.4所示.

存在问题:由图3.4可知,此方案占用的逻辑资源太多,且运算速度较慢,在目前的芯片上无法验证.

3.2.4方案四逻辑设计方法

针对方案三存在的消耗的逻辑资源过多的问题,自定义了一种25bits的浮点数:1位符号位+8位指数+16位尾数,最后再将25位浮点数结果转换成22位定点数输出,中间的数据处理全部都是浮点数运算.

将7位定点数转换成25位浮点数的方法与将25位浮点数转换成22位定点数的方法同方案三.25位浮点数累加器和乘法器均需重新设计,无法调用IP核.

自写作浮点数累加器的设计步骤如下:

1)对阶处理:比较两个指数大小,将指数较小的浮点数的尾数右移,使得两个尾数具有相同的指数;

2)将对阶后的两个尾数相加;

3)对相加后的结果规格化处理:对相加后的结果进行小数点定位处理,将加法结果转换为内部自写作浮点数格式.

自写作浮点数乘法器的设计步骤如下:

1)符号位相异或:相同为0,相异为1;


2)指数位相加;

3)尾数相乘;

4)规格化处理:将结果转换成自写作浮点数格式.其逻辑资源消耗情况如图3.5.

存在问题:由图3.5可知,此方案占用的逻辑资源依旧较多,运算速度也较慢,也无法在目前的芯片上验证.

4.结论

针对数字电视地面广播系统中的多载波调制技术,完成3780点IFFT算法的理论推导及分析过程,针对现有的逻辑设计存在误码率较高的缺陷,经分析及仿真和板级验证可得知:误码率较高可能是数据溢出造成的.

数据信号处理系统可分为定点制、浮点制和块浮点制,根据各种数据处理方法的优缺点,结合本论文IFFT算法的特性,提出了四种优化的逻辑设计方案,并完成了四种方案的逻辑设计和仿真,评估了各种方案的逻辑资源消耗情况.