新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 插值查找表:实现DSP功能的简便方法

插值查找表:实现DSP功能的简便方法

作者:DanieleBagni 赛灵思公司DSP专家兼现场应用工程师时间:2010-03-02来源:电子产品世界收藏

  线性化非线性传感器

本文引用地址:http://www.eepw.com.cn/article/106456.htm

  目前许多企业在工业控制系统中使用“智能传感器”,以满足低占用空间、低功耗、高性能、最低成本以及最短开发时间等要求。通用智能传感器可视为一个由传感器及其信号控制线路、模数转换器(ADC)、带或不带嵌入式处理器的相关子系统组成的功能组件,所有这些功能块都集成在的同一器件上,如图4所示。

  智能传感器的目的是将物理量(如电机中的电流)转化为数字电路能够处理的数字信号。构建这类传感器所采用的技术及组件的某些特性通常会导致诸如失调、增益和非线性等误差,进而导致总体传递函数呈非线性。

  一般来说,客户会校正他们产品中运行的子系统所出现的上述误差。如果y=f(x)是来自传感器和ADC级联的数字输出信号,那么必须执行其反函数g(y)=f-1(y)来补偿非线性函数,这样总体输出z即为:

  这是直线方程,其斜率为m,纵截距为b。

  最简单的线性化方法是LUT法,采用存储在ROM中的传感器校准点。不过,对16位的ADC来说,ROM显得过大了,且需要64个BRAM单元。而内插LUT则不然,是一个良好的解决方案。

  举例来说,我们假定非线性传递函数是一条抛物线。下一MATLAB分段码说明了如何生成最终直线的m和b参数,以及如何计算g(y)(即f(x)的反函数)。图5用三种颜色显示了三条不同曲线。请注意在计算f(x)的反函数g(y)过程中会丢失一些值。这是因为有几个y值相同的点对应着不同的x点。因此,需要对g(y)进行平滑化,填补所有缺失的点。为精确起见,我没有把这部分运算包括在MATLAB分段码中,见代码清单。

  我采用非常类似于图3的设计,在SystemGeneratorforDSP中运行基于定点周期的仿真,在非线性传感器的总体输出范围内得到了92.48dB的信噪比。

合成孔径雷达相关文章:合成孔径雷达原理


关键词: Xilinx DSP 插值查找表

评论


相关推荐

技术专区

关闭