首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
如何用插值查找表简便实现FPGA的DSP功能
来源:本站整理  作者:佚名  2011-03-14 21:49:02



  假定我们以Spartan-3E 1200(fg320-4)为目标器件,现使用ISE设计套件和System Generator for DSP 10.1 SP3版工具对其进行布局和布线,结果其所占用的 FPGA 资源的总体情况如下:

程序

  该设计完全流水线作业,可以在任何一个时钟周期提供新的输出。时延为10个时钟周期,最大数据速率达194.70MSPS(每秒百万采样数)。从数值精度来说,对1000或2000字ILUT而言,参考浮点结果与System Generator for DSP定点输出的量化误差之间的比值,即信噪比分别为 71.94dB或77.95dB。

  除ILUT外,我们还可应用赛灵思System Generator for DSP提供的Reference Math BLOCkset(参考数学模块组)中的CORDIC SQRT模块。在本例中,总时延为37个时钟周期,最大数据速率达115.18 MSPS,区域资源占用为940片触发器,总共有885个四输入LUT,560个占用的芯片以及两个MULT 18x18嵌入式乘法器。信噪比为40.64dB。这些结果显示CORDIC是实施定点数学运算的理想方法,但ILUT在许多方面更加出色。

  线性化非线性传感器

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

智能传感器的方框图

图4. 智能传感器的方框图

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

  一般来说,客户会校正他们产品中运行的DSP子系统所出现的上述误差。如果 y="f"(x) 是来自传感器和ADC级联的数字输出信号,那么DSP必须执行其反函数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分段码中)

程序

程序

三种颜色显示了三条不同曲线

图5.黑色抛物线表示非线性传感器传递函数f(x) 的曲线;绿色直线表示线性化DSP子系统获得的最终线性传感器传递函数曲线;蓝色抛物线则表示反函数g(y) 的曲线。

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

  斑点噪声消除

  跟踪高速运动系统的目标物体(比如导弹)是一项极富挑战性的工作,需要非常复杂的DSP算法以及诸如合成孔径雷达 (SAR) 等各种不同类型的探测介质。作为典型的相干电磁源(如激光),SAR成像器件也受斑点噪声的影响。因此,任何基于SAR的DSP链的第一级都是二维 (2D) 自适应FIR滤波器,用以降低这种噪声(但不可能完全消除)。图6显示了斑点噪声的MATLAB仿真。该噪音对左边图像的画质造成了综合性的不良影响。右边的图像是2D FIR滤波器黄金模型的输出结果。

斑点噪声对左边图像画质造成了影响

图 6. 斑点噪声对左边图像画质造成了影响,右边的是滤波后的图像

  斑点噪声是一种倍增噪声,呈指数分布,完全由其方差值σ决定。因此,广泛使用的抗斑点噪声的方法就是Frost滤波器(由发明者 V.S.Frost的名字命名而来)。V.S.Frost 在1981年发表的论文对这个现象进行了探讨。在一个3x3的矩阵中,可以用下列公式进行建模:

公式

  其中xij和yij分别代表Frost滤波器的输入和输出采样。K 是控制滤波强度的增益系数(为方便起见,我在下面假定K=1),μ1和σ分别是2D内核的平均值和方差值,Tij是中心输出像素(系数ij=22)及所有周边像素的距离矩阵。下面的等式说明实施这个滤波器的关键因素是R1,即3x3矩阵中的一阶μ1和二阶μ2之间的比值:

公式

  R1的取值范围在0和1之间。根据实验发现要取得良好的数值精度,R1可以使用16位至20位二进制数来表示。

  我在system Generator for DSP中设计R1计算步骤后,我决定通过内插LUT来实施滤波系数的归一化。LUT的内容以下列MATLAB代码表示:

程序

  图7显示的是归一化后的系数沿R1输入信号分布的曲线。这里只有三条曲线,因为 Tij矩阵在系数 ij="22的中心像素周围呈对称分布"。根据曲线,与纯浮点参考模型相比,数值结果显示信噪比介于81.28至83.38dB之间。对有兴趣的读者,下面的 MATLAB分段码说明了2D滤波器的处理过程(为简便起见,没有包括ILUT函数)。

沿斑点噪声降噪滤波参数R1分布的归一化系数

图7 沿斑点噪声降噪滤波参数R1分布的归一化系数

  简言之,这些例子说明 插值查找表 是实施赛灵思FPGA的DSP功能的简便而强大的方法。插值查找表可帮助您在保持面积占用相对较低的情况下实现极高数值精度 (SNR) 和高数据速率。

程序

上一页  [1] [2] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:65,187.50000 毫秒