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

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

3天内不再提示

数字信号数据截位误差抑制方法

FPGA设计论坛 来源:CSDN技术社区 作者:撕裂的牛仔裤 2022-06-10 16:47 次阅读

FPGA数据在进行乘加过程中会面临这数据位宽变大的问题,然而硬件资源是有限的,需要对数据最终位宽进行设计,这就会面临着位宽的选择和如何截位的问题。

对多位数据进行截位处理,是一个从高量化精度向低量化精度的转换过程,由于量化位数的减少,产生截位误差,导致运算结果在时域上出现直流分量,频域出现由谐波失真造成的尖峰,降低了信号的无杂散动态范围。

比如:模拟信号经过16位ADC量化后变为数字信号,且数据类型为整型,且均采用补码形式表示如按照16 bit 量化,则15 =0000 0000 0000 1111;而-15=1111 1111 11110001。直接截位法是对数据直接截掉低位。以2 bit 截位为例,则15 截位后为0000 0000 0000 11=3,而-15 截位后为1111 1111 111100=-4。可以看出,在FPGA 中采用直接截位法对数据进行截位,截位是按照向下取整的方式进行的,由截位导致的近似方式对正数和负数来言是不同的,即15/(22)=3.75≈3,而-15/(22)=-3.75≈-4,因此截位后的信号会整体向下偏移,导致出现直流偏置,频谱上表现为在0 频出现误差尖峰。对截位后的信号,再进行变频等处理,就会将尖峰搬移到其他的频率。如果出现多次截位,则将增加误差尖峰的个数,影响信号产生和信号处理的效果。因此在对信号处理要求较高的场合,采用直接截位法是不合适的。

常见的截位方式有:1、负数直接截位后+1,就是所有数都按绝对值取floor

2、Truncate:直接截位,就是正数取floor,负数按绝对值取ceil

3、Rounding:舍入截位,就是所有数按绝对值取四舍五入

这三种截位方式都是可以的,其中舍入截位精度相对较高。而(《数字信号截位影响分析》-- 焦庆君,解剑)这篇论文中的数据截位误差抑制方法就是用的四舍五入的思想,通过加上或者减去一个数来实现的,实现方法比较简单,我个人也是用这种方法来进行数据的截位的。具体实现方式是:①判断数据的符号;② 如果符号为正,则将数据加上2^ (n-1);③ 如果符号为负,则将数据加上2^(n-1)-1;④ 截掉数据的低n 位。

在一些数字信号处理的IP核中数据的截位也是可选的,一般选择近似截位。

然而上述的几种方法截位误差基本上是可以满足绝大多数需求,然而对特殊的要求时以上几种方式难以满足时,就需要对截位误差进行特殊的设计。笔者根据自身项目的调试经验,总结出来一个经过实际测试有效的方法。这个方法成为误差传递。这里设置进位上线为0.75,向下截位下线为0.25.如下图所示

d56fe146-e87a-11ec-ba43-dac502259ad0.png

1、 若数据大于设置的则数据直接置1,如图中B点,如果小于下线,则直接置0,如图中A点。这里的上线和下线是可以根据实际的需求进行调整的,但调整的原则是数据超出上下限的点的个数应当是一直的,并且上下限内的数据应当关于上下限中点对称的。

2、 如果数据在上线和下线之间,则把数据直接截位,截下的数据与下一个数据相加后再进行直接截位,这样依次进行下去即可。即若L1+L2+L3=LS>1,则把数据点E置1,然后把LS-1=LD作为新的误差传递下去,若LD+L4+L5>1则把G点置1,产生新的误差继续传递下去,如果LD+L4+L5<1,则继续加入新的数据,判断LD+L4+L5+L6是否大于1,直至产生大于1的那个点进行近卫,然后继续把新产生的误差进行传递。

通过误差传递的方式在数据量相对大一些的情况下,使得信号的原始值与截位后数据的值在时域上做差产生的差值是0,在频域上也没有引入低频信息。这种方式在实际的应用测试中很好用,因此就简单的写了出来,严格的证明毕竟麻烦,需要很大的篇幅来写,这里就不详细写了,但是这个结果是通过MATLAB仿真和实际的应用测试验证的,是能直接用的。

在实际系统中存在着加和乘的运算,这样就导致数据位宽发生变化,有时候为了保证数据的精度不进行截位,但硬件资源有限,适当的截位对最终结果影响较小,因此合理的位宽设计既要满足精度要求也要满足资源要求。

一个典型的例子就是有限脉冲响应(FIR)滤波器的设计就会面临上面的问题。

d58ed6f0-e87a-11ec-ba43-dac502259ad0.png

假设滤波器系数位[15、17、-88、103、75、75、103、-88、17、15],输入数据位宽位N,而输出位宽最佳是如何设计呢?要想数据全精度的运算,针对上面的滤波器系数位宽应该为N+8(系数最大值103的有符号二进制位宽)+4(系数个数的二进制值)。然而在实际运算中通常先得到系数绝对值的和596,而596至少需要10位二进制数表示,因此实际位宽设计为N+10。但是在系数较多或者运算次数较多的系统中,要求输入位宽为N而输出位宽为N+1时,就需要进行截位处理。合理的截位能提升系统的实际运行性能,最佳的截位是定点的运算达到浮点运算的效果。

原文标题:FPGA数字信号截位分析和位宽设计

文章出处:【微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红

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

    关注

    1600

    文章

    21280

    浏览量

    592848
  • 滤波器
    +关注

    关注

    158

    文章

    7314

    浏览量

    174718
  • 数字信号
    +关注

    关注

    2

    文章

    792

    浏览量

    47193

原文标题:FPGA数字信号截位分析和位宽设计

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FPGA数字信号处理实现原理及方法

    FPGA数字信号处理实现原理及方法
    发表于 08-15 19:00

    FPGA数字信号处理实现原理及方法

    FPGA数字信号处理实现原理及方法
    发表于 08-19 13:37

    数字信号和模拟信号的区别详解

      数字信号和模拟信号的区别详解  很多人就不懂模拟信号数字信号的区别,数字信号和模拟
    发表于 06-05 16:54

    请问AFE5801 AD转换后数字信号是用有符号数还是无符号数表示?

    请问AFE5801 AD转换后数字信号是用有符号数还是无符号数表示的啊?
    发表于 05-24 08:04

    数字信号处理MATLAB版资料分享

    技术来处理模拟信号叫傲数字信号处理。或者简单地说,数字信号处理就是用数字方法信号进行变换和处
    发表于 09-28 06:34

    数字信号处理与噪音抑制(英文)

    数字信号处理与噪音抑制(英文)
    发表于 05-25 23:33 53次下载

    数字信号处理pdf

    数字信号处理:是作者在其全国第一部信号处理著作《信号数字处理的数学原理》(1979年7月)及其第二版(1993年11月)的基础上,并集20余年的教学实践经验,经过修订、补充编
    发表于 10-30 11:34 1559次下载
    <b class='flag-5'>数字信号</b>处理pdf

    数字信号的纠错原因及解决方法

    数字信号的纠错原因及解决方法 数字信号在传输的过程中,由于干扰或通道特性变坏等原因,都有可能使得传输的数字信号出错(误码),因此纠
    发表于 02-06 18:02 1241次阅读

    数字信号处理与噪音抑制

    数字信号处理与噪音抑制 有需要的朋友下来看看
    发表于 12-30 15:31 3次下载

    ADSP-21990:混合信号数字信号处理器数据

    ADSP-21990:混合信号数字信号处理器数据
    发表于 05-07 15:22 10次下载
    ADSP-21990:混合<b class='flag-5'>信号数字信号</b>处理器<b class='flag-5'>数据</b>表

    ADSP-21991:混合信号数字信号处理器数据

    ADSP-21991:混合信号数字信号处理器数据
    发表于 05-13 13:00 6次下载
    ADSP-21991:混合<b class='flag-5'>信号数字信号</b>处理器<b class='flag-5'>数据</b>表

    ADMCF341DashDSPADMCF341:带增强型模拟前端的™28引线闪存混合信号数字信号处理器数据

    ADMCF341DashDSPADMCF341:带增强型模拟前端的™28引线闪存混合信号数字信号处理器数据
    发表于 05-25 10:19 15次下载
    ADMCF341DashDSPADMCF341:带增强型模拟前端的™28引线闪存混合<b class='flag-5'>信号数字信号</b>处理器<b class='flag-5'>数据</b>表

    ADSP-21992:带CAN数据表的混合信号数字信号处理器

    ADSP-21992:带CAN数据表的混合信号数字信号处理器
    发表于 05-27 21:08 7次下载
    ADSP-21992:带CAN<b class='flag-5'>数据</b>表的混合<b class='flag-5'>信号数字信号</b>处理器

    了解用于分析高速数字信号数据眼图方法

    了解用于分析高速数字信号数据眼图方法
    发表于 11-15 20:28 2次下载
    了解用于分析高速<b class='flag-5'>数字信号</b>的<b class='flag-5'>数据</b>眼图<b class='flag-5'>方法</b>

    数字信号电缆测试的重要性 数字信号电缆测试的方法和技术

    数字信号电缆测试的重要性 数字信号电缆测试的方法和技术 数字信号电缆测试的重要性: 随着现代通信技术的发展,数字信号电缆在各种领域中扮演着重
    的头像 发表于 02-01 15:48 172次阅读