本发明属于通信领域,具体是一种用于单载波频域均衡信道的低复杂度均衡方法。

背景技术:

在时变信道中,由于多径影响导致了严重的码间干扰(ISI),使得信号在传输过程中出现严重失真。因此需要采用均衡器来消除信道的时间和频域的选择性,从而抵消码间干扰。均衡是通过接收机的均衡器产生于信道相反的特性来实现对信号特性的均衡。目前是多采用的均衡算法为迫零均衡(ZF)和最小均方差误差均衡(MMSE)两种。

在实际接收机设计中我们经常采用的是基于最小均方差误差均衡(MMSE:Minimum Mean Square Error)算法的均衡器。其中在实际用单载波频域均衡的FPGA实现时,均衡部分涉及到如下因子:

其中公式中的表示的是噪声功率的估计,表示信道估计的计算值,而H1表示的是的函数对于上述公式也可以等效为的求解,其中

在实际接收机实现均衡器的过程中假设数据位宽为1+8比特。其中1是符号位。8位数据位。则的位宽为1+17比特。而对于常规法求解一个218的倒数所需要的存储器资源无疑是很大的。

常规做法:将1/218的数据存入FPGA的存储器中,则这个存储器RAM需要的位宽为18比特,存储器RAM的深度需要218比特,对于Cyclone IV或者Cyclone V型号的存储器M9K或者M10K需要的个数:

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

令在X0点进行泰勒展开(二阶展开式)可得到下列公式

即:

由于假设数据位宽为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改为只需

由原来的一张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则直接通过查找一张1024x10s ROM表即可。地址从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取倒数的近似值。

单载波频域均衡matlab,一种用于单载波频域均衡信道的低复杂度均衡方法与流程...相关推荐

  1. matlab计算fft旋转因子表,一种用于FFT中旋转因子乘运算的操作数地址生成方法与流程...

    本发明属于计算机技术领域,涉及一种用于FFT中旋转因子乘运算的操作数地址生成方法. 背景技术: 离散傅里叶变换(DFT)是数理方程.线性系统分析.信号处理与仿真等领域中的一种常见方法,特别是快速傅里叶 ...

  2. group lasso matlab,一种利用肠道微生物菌群评价生猪个体蛋白营养状态的方法与流程...

    本发明涉及一种评价生猪个体蛋白营养状态的方法,特别涉及一种利用肠道微生物菌群评价生猪个体蛋白营养状态的方法. 背景技术: 近年来,饲料原料的紧缺,人畜争粮状况加剧:超过营养需求的饲料供应也会加重畜禽养 ...

  3. 超材料 s参数反演 matlab,一种基于改进K‑K算法的超材料电磁参数反演方法与流程...

    本发明属于测试技术领域,具体涉及一种基于改进K-K算法的超材料电磁参数的反演方法. 背景技术: 超材料是一种新型的人工材料,对电磁波具有独特的物理特性,比如负折射率.负电磁参数等,这些独特的物理特性使 ...

  4. Achuan读论文:PARE:一种用于单语言和多语言远程监督关系抽取的简单而又强大的基线

    目录 PARE:一种用于单语言和多语言远程监督关系抽取的简单而又强大的基线 摘要 1. 介绍 2. 相关工作 3. 段落注意力关系抽取 PARE:一种用于单语言和多语言远程监督关系抽取的简单而又强大的 ...

  5. 一种用于解决银行代理产品交易热点账户的系统及方法

    一种用于解决银行代理产品交易热点账户的系统及方法  摘要 本发明公开了一种用于解决银行代理产品交易热点账户的系统,该系统包括业务受理终端.系统主机.前置处理装置和第三方单位系统,其中:业务受理终端通过 ...

  6. 【paper 1】2022 一种用于脑内出血血肿体积检测的鲁棒性深度学习分割方法-英文

    A Robust Deep Learning Segmentation Method for Hematoma Volumetric Detection in Intracerebral Hemorr ...

  7. 蓄冷罐布水器仿真matlab,用于蓄冷罐的布水器及开孔与安装方法与流程

    本发明涉及一种蓄冷罐,更具体的说,涉及一种用于蓄冷罐的布水器及布水器的开孔与安装方法. 背景技术: 蓄冷罐作为一种水蓄冷的大型储水容器,广泛应用于数据中心领域,作为数据中心的后备冷源.蓄冷罐的使用是在 ...

  8. android 模拟器识别,一种基于符号的识别Android应用运行在模拟器中的方法与流程...

    本发明涉及一种基于符号的识别android应用运行在模拟器中的方法. 背景技术: 很多的移动应用都会使用一种基于lbs的地理围栏的技术(如移动打卡),某些用户为了突破这种围栏的限制,将移动应用运行在模 ...

  9. 01两状态随机游动模拟matlab,一种用于血糖检测的三维耳垂模型的建立方法与流程...

    本发明属于fdtd和cpml算法建模,dla分形.模拟.微波无创检测技术领域. 背景技术: 当前,糖尿病作为一种全球性的疾病发病率不断增长.而诸多无创和微创的方法都未免给患者带来身体上的痛苦和精神的压 ...

最新文章

  1. SQL中的in与not in、exists与not exists的区别以及性能分析
  2. Nginx 代理转发阿里云OSS上传的实现代码
  3. 云原生背景下故障演练体系建设的思考与实践—云原生混沌工程系列之指南篇
  4. 【Python基础】Python之collections库-Counter
  5. linux传输文件无密码,Linux下scp无密码上传 下载 文件 目录
  6. chrome浏览器被reimage pair 劫持怎么处理
  7. 会计电算化的重要物质基础计算机和,湖北工业大学工程技术学院会计电算化管理办法...
  8. 解决报错: No candidates found for method call XXXX (方法没有调用者)
  9. 地图大数据来了!中国人口吸引力城市TOP 10
  10. 量子化学计算机理,几种化学反应机理的量子化学理论计算
  11. VIM插件——vimplus安装(centos 7)
  12. VS2013打开项目出现未找到与约束contractname 匹配的导出的错误
  13. 【数学建模】传染病SIR模型
  14. python正则去空格_python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解...
  15. Python3快速入门—7.枚举
  16. 计算机联机玩游戏的操作方法,win10系统电脑联机玩罗马复兴的设置方法
  17. 树莓派pxe网络启动官方文档(译文)
  18. matlab数组 xp,windowsxp系统将matlab数据导入excel的方法
  19. Galgames Hgames下载中心,无毒
  20. android聊天气泡

热门文章

  1. 一分钟带你了解全链路测试!
  2. 5-双摇杆机构运动分析
  3. lyapunov优化
  4. python打开文件的语法_python27语法Python文件打开方式实例详解【a、a+、r+、w+区别】...
  5. Javascript的单线程与多线程
  6. 太极链老了,及四个统计服务比较
  7. 基于vivado的IP设计与管理
  8. Android中的AES加密-下
  9. 杰理蓝牙芯片AC6950的使用-按键功能设置
  10. First_Mobile(xman)