公开/公告号CN108123907A
专利类型发明专利
公开/公告日2018-06-05
原文格式PDF
申请/专利权人 浙江天则通信技术有限公司;
申请/专利号CN201711202036.8
申请日2017-11-24
分类号
代理机构杭州浙科专利事务所(普通合伙);
代理人杜立
地址 310000 浙江省杭州市滨江区南环路3760号保亿创艺大厦807
入库时间 2023-06-19 05:36:53
法律状态公告日
法律状态信息
法律状态
2020-08-25
授权
授权
2018-06-29
实质审查的生效 IPC(主分类):H04L25/03 申请日:20171124
实质审查的生效
2018-06-05
公开
公开
技术领域
本发明属于通信领域,具体是一种用于单载波频域均衡信道的低复杂度均衡方法。
背景技术
在时变信道中,由于多径影响导致了严重的码间干扰(ISI),使得信号在传输过程中出现严重失真。因此需要采用均衡器来消除信道的时间和频域的选择性,从而抵消码间干扰。均衡是通过接收机的均衡器产生于信道相反的特性来实现对信号特性的均衡。目前是多采用的均衡算法为迫零均衡(ZF)和最小均方差误差均衡(MMSE)两种。
在实际接收机设计中我们经常采用的是基于最小均方差误差均衡(MMSE:MinimumMean Square Error)算法的均衡器。其中在实际用单载波频域均衡的FPGA实现时,均衡部分涉及到如下因子:
其中公式中的
在实际接收机实现均衡器的过程中假设数据位宽为1+8比特。其中1是符号位。8位数据位。则
常规做法:将1/218的数据存入FPGA的存储器中,则这个存储器RAM需要的位宽为18比特,存储器RAM的深度需要218比特,对于Cyclone>
512块M9K的资源对于FPGA芯片的Cyclone IV是无法接受的。故我们在实际设计中设计了一种新的实现方法来实现这个
发明内容
为了解决现有技术中存在的上述技术问题,本发明提供了一种用于单载波频域均衡信道的低复杂度均衡方法,通过如下算法确定均衡因子的X[17:00]:
对于输入18比特的X[17:00]首先进行条件判断,
如果输入的X[17:0]等于0,则直接输出结果为0;
如果输入的高8比特等于0,则直接通过查找一张1024x10s ROM表即可;
当X[17:10]=1,flag==0,先将X[17:00]左移3比特,然后再查找256x8s ROM表;
当X[17:10]=2,flag==1,先将X[17:00]左移2比特,然后再查找256x8sROM表;
当X[17:10]=3,4,5,flag==2,先将X[17:00]左移1比特,然后再查找256x8sROM表;
当X[17:10]>=6,flag==3,直接查找256x8sROM表;
其中,1024x10s ROM表:ROM的深度1024比特,位宽为10比特;
256x8s ROM表:ROM的深度256比特,位宽为8比特;
flag:2比特,对应X[17:10]的值的4种情况;
进一步的,1024x10s ROM表地址从0到1023,查询地址等于X[09:00],对应ROM表存储的无符号值为1024/(地址+1),然后取四舍五入。
进一步的,256x8s ROM表为地址从0到255,地址等于X[17:10],对应的无符号值为256/(地址+1),然后取四舍五入,将ROM表读取后的值一方面先对其进行平方操作,然后再乘以X[09:00],得到的结果再向右移18比特,另一方面将ROM表读取的值经过延迟与前面右移18比特得到的值对齐,然后相减,相减之后由于前面当X[17:10]<6的时候先经过了移位,故在最后输出结果的时候通过flag标志信号再移位对应的比特数,最终的输出就是对均衡因子X取倒数的近似值。
本发明的用于单载波频域均衡信道的低复杂度均衡方法将原有方法的一张512个M9K表变为2张M9K,在满足精度一定的条件下大大节约了FPGA的存储器资源,使其在工程上更容易实现。
附图说明
图1是用MATLAB仿真实际输出与理论值误差示意图;
图2是用MATLAB仿真最大误差所在范围示意图;
图3是优化后的实际输出与理论值误差示意图;
图4是优化后的最大误差所在范围示意图;
图5是均衡因子的具体实现框图。
具体实施方式
下面结合附图对本发明作进一步说明。
本发明的原理如下:
根据泰勒公式:
f(X)=f(X0)+f'(X0)(X-X0)+f”(X0)(X-X0)2/2+o(X-X0)3
令
即:
由于假设数据位宽为1+8比特,所以均衡因子X为位宽为1+17,由于均衡因子X实际上不一定是整数。故将因子X转化为整数部分和小数部分。其中令X0表示因子X的整数部分,位宽为8比特。令d0表示小数部分,位宽为10比特。
X0=X[17:10];d0=X[9:0]*2-10
情况1:当X0等于0,d0等于0,则:结果输出为0。
情况2:当X0等于0,d0不等于0,则:
即可以用一张位宽为10比特,深度为1024的ROM表直接查询即可。查询地址等于输入X的低10比特的值。实际输出值与理论值输出一样。
情况3:X0大于0,则:将X0和d0带入上面的二阶展开式中:
两边同时乘以28:
由以上公式可以得到原本用位宽为18比特,深度为218比特的ROM表,可以用位宽为8比特,深度为256比特的ROM表即可代替。且乘以2-18的操作只需要将结果截位18比特即可。最终的结果是对原结果扩大了218。
结合了上面的3中情况。
由原来的一张512个M9K表变为2张M9K。在满足精度一定的条件下大大节约了FPGA的存储器资源,使其在工程上更容易实现。
MATLAB精度误差分析:
满足泰勒展开式的其中一个条件是o(X-X0)n是(X-X0)n的高阶无穷小,也即X-X0≈0,故X0>>d0。
用MATLAB仿真通过对均衡因子X从1到218,将理论计算值扩大218,然后与实际采用上述算法通过查找表得出的实际值,作差分析精度误差。
从图1和图2的仿真的结果可以看出:实际输出值和理论值在放大218之后的相差最大也就120左右。且从图2可以误差范围主要发生在当因子X取值为1024到5000多。也即X0等于1,2,3,4,5的时候,此时由于X0并不是远远大于d0。所以由泰勒公式算出来误差相对比较大一些。为了进一步缩小误差。提高精度。我们对上述情况又进行了优化设计。
当X0大于等于6或者X0等于0的时候:我们采用上面的公式直接查表计算。
当X0等于1:我们先将X的值扩大8倍,然后按上面的公式直接查表计算
当X0等于2:我们先将X的值扩大4倍,然后按上面的公式直接查表计算
当X0等于3,4,5:我们先将X的值扩大2倍,然后按上面的公式直接查表计算
上述X的值扩大几倍。由于计算其倒数。故最终结果还要其扩大几倍使其结果保持不变。
通过上面的优化设计进过MATLAB分析。优化值与理论值的误差图如图3和图4所示。
从图3、图4可以看到优化后明显误差值又缩小了。理论值和实际值在放大218之后最大误差在±8左右。精度达到了8/218=10-5。
工程实现过程:
如图5所示,在FPGA工程具体实现单载波频域均衡(SC-FDE)信道均衡算法中,均衡因子的具体实现框图如图5所示:
参数定义:
X[17:0]:均衡因子。
1024x10s ROM表:ROM的深度1024比特,位宽为10比特。
256x8s ROM表:ROM的深度256比特,位宽为8比特。
flag:2比特,对应X[17:10]的值的4种情况。
具体实现过程:对于输入18比特的X[17:00]首先进行条件判断,如果输入的X[17:0]等于0,则直接输出结果为0。如果输入的高8比特等于0则直接通过查找一张1024x10sROM表即可。地址从0到1023,查询地址等于X[09:00],对应ROM表存储的无符号值为1024/(地址+1),然后取四舍五入。如果输入的X[17:10]高8比特大于0则根据X[17:10]的值分为4种情况。
当X[17:10]=1,flag==0,先将X[17:00]左移3比特,然后再查找256x8s ROM表;
当X[17:10]=2,flag==1,先将X[17:00]左移2比特,然后再查找256x8sROM表;
当X[17:10]=3,4,5,flag==2,先将X[17:00]左移1比特,然后再查找256x8sROM表;
当X[17:10]>=6,flag==3,直接查找256x8sROM表。
256x8s ROM表为深度256比特,位宽为8位。地址从0到255。地址等于X[17:10],对应的无符号值为256/(地址+1),然后取四舍五入。将ROM表读取后的值一方面先对其进行平方操作,然后再乘以X[09:00],得到的结果再向右移18比特。另一方面将ROM表读取的值经过延迟与前面右移18比特得到的值对齐。然后相减。相减之后由于前面当X[17:10]<6的时候先经过了移位,故在最后输出结果的时候通过flag标志信号再移位对应的比特数。此时最终的输出就是对均衡因子X取倒数的近似值。
机译: 一种补偿器,用于补偿由移动无线电通信装置中的移动通信设备的移动引起的信道的变化条件,以及一种使用均衡器补偿信道的变化条件的方法。
机译: 用于OFDM的自适应信道均衡器-一种使用数字通信系统的方法
机译: 一种用于在无线电传输信道30中测量群延迟时间的特性曲线的音高的方法和装置及其在均衡器的自动选择中的应用