在示波器上使用DSP滤波技术的探讨

时间:2023-02-28 03:59:35 作者:小刘 综合材料 收藏本文 下载本文

【导语】“小刘”通过精心收集,向本站投稿了5篇在示波器上使用DSP滤波技术的探讨,下面是小编整理后的在示波器上使用DSP滤波技术的探讨,欢迎大家阅读借鉴,并有积极分享。

篇1:在示波器上使用DSP滤波技术的探讨

在示波器上使用DSP滤波技术的探讨

简介

当前所有高速实时数字示波器都采用了各种形式的数字信号处理技术(DSP)。某些工程师担心使用软件对采集来的数据波形滤波可能会与实际的信号有出入。但是,示波器捕获的原始波形未必表示的是实际输入信号,示波器捕获的“原始”波形数据中包括了失真的结果,这是由示波器的前端硬件滤波器造成的。在理想情况下,实时示波器拥有无限快的采样速率、完美的平坦频响、线性相位响应、没有底噪声及带宽高。但在实际环境中,示波器具有硬件限制,这种限制产生了误差。DSP滤波技术最终可以在一定程度上校正硬件导致的误差,改善测量精度,增强显示质量。

当前性能较高的实时示波器中常用的DSP滤波技术有以下五种:

每种滤波器特点都可以在用有限脉冲响应(FIR)软件滤波器实现。本文介绍了不同DSP滤波器的用途,以及相关的优点和缺点。本文没有提供实现各种DSP滤波器的实际软件有关的信息。

用于波形重建的DSP滤波技术

波形重建滤波用来在两个实际数据采样点之间“插入”数学运算点。插入的数据点可提高较快时基下的波形测量精度和使波形更接近真实。等效/重复采样,也是一种透过插入点的方法实现的波形重建技术,但它的应用场合有限,仅对严格重复的波形有效;对信号实时变化的应用场合,不能使用等效采样。必须在一次采集完成一个完整的波形捕获,因此只能选择软件的方法重建波形。

最简单的波形重建,采用线性插补滤波器。尽管这类滤波器将改善测量分辨率、精度和显示质量,但更精确的内插技术是sin(x)/x波形内差滤波技术,这是一种对称滤波器。图1是使用线性内差(顶部的蓝色曲线)和sin(x)/x内差(底部的黄色曲线)的3GHz正弦波实例。通过线性内差,我们可以清楚地看到这一使用20G样点每秒采样的示波器,得到的样点间隔为50ps。

图1:线性内差与正弦内差

Sin(x)/x内插滤波虽然是更精确地表示输入信号的方法,但有一些问题要注意。首先,为使sin(x)/x内插滤波绝对精确,示波器的采样率要保证能处理任何低于Nyquist频率(fN)的频率成分。Nyquist频率定义为取样频率(fS)的?。对可以以20GSa/s速率采样的示波器,Nyquist频率是10GHz。为提供最大带宽、同时保证能将10GHz以上的频率完全滤掉,在理论上,示波器必须有一个10GHz或10GHz以下的硬件“砖墙式滤波器”。遗憾的是,砖墙滤波器在物理上是不能通过硬件实现的。图2中的红色曲线(顶部)表示砖墙滤波器的特点,Nyquist频率以下的所有频率成分都完全通过,Nyquist频率之上的所有频率成分都完全被滤掉。

图2:各种硬件滤波器的频率响应

过去,带宽较低的示波器一般具有高斯类型的滚降特点,如图2中的绿色曲线(底部)所示。如果您使用这种高斯类型的低速滚降滤波器处理速度非常快的信号,由于高于C3dB带宽的信号很多,超过Nyquist频率之上的频率成分(在本图中用阴影区域表示)会出现混叠现象。如果被测对象基波频率接近或超过Nyquist频率,混叠会使得显示的周期性波形看上去会像没有触发一样,波形的测量误差会呈几何级数增长。在输入信号的基波频率低于Nyquist频率,但信号谐波高于Nyquist频率时,您可能会在示波器显示屏上看到边沿“摇摆”的波形。为此,安捷伦在传统上一直把具有高斯滚降特点、带宽较低的实时示波器的带宽限定为取样速率的?,也就是Nyquist频率的?,目的是滤除高于Nyquist的谐波成分。

对某些带宽在2GHz-6GHz之间的带宽较高的实时示波器,硬件滚降特点开始接近理论砖墙滤波器。在大多数示波器测量中,这是一种希望实现的特点。这类硬件滤波器称为高阶最大平坦滤波器,如图2中的蓝色曲线(中间)所示。通过这类硬件滤波器,大多数带内频率以最小衰减传送,而大多数带外频率则被明显衰减。在高阶最大平坦响应时,示波器带宽开始接近Nyquist极限。安捷伦建议对具有高阶最大平坦响应的示波器,示波器带宽应限定在不大于取样速率的0.4倍。换句话说,为保证使用sin(x)/x滤波的波形重建技术的有效性和精确性,以20GSa/s速率取样的示波器的带宽不得超过8GHz。

在示波器中采用sin(x)/x软件内插滤波器有什么缺点呢?如果输入信号在前期有频段限制,或如果示波器的硬件适当地限制了Nyquist频率之上的取样频率成分,那么其问题可以降到最小。但是如果输入信号具有超过系统带宽的明显高的频率成分,那么sin(x)/x滤波技术的问题之一是对重建的波形可能会出现软件生成的下冲和过冲,这种影响在本质上是一种Gibbs现象。软件生成的过冲通常隐藏在实际输入信号中固有的过冲及示波器的硬件滤波技术所产生的过冲中。由于下冲通常在信号中实际并不存在,因此示波器用户通常会怀疑sin(x)/x滤波技术的有效性。但在测量带外信号时,与未校正的硬件导致的误差相比,软件导致的误差(如下冲)可能只是小巫见大巫。

记住,测量带外信号意味着您正在试图捕获频率成分超过示波器指定带宽功能的信号,因此测得结果中可能包括由于硬件限制导致的明显误差成分。例如,如果您试图测量边沿速率为20ps(10%-90%)的输入信号,6GHz示波器会产生70ps左右的测量结果(10%-90%),250%的测量误差。尽管软件滤波产生的下冲和过冲可能会扰乱视觉,但与硬件导致的过冲及经常被忽视的边沿速率测量误差相比,这些现象只是很小的误差来源。

为降低软件导致的下冲,示波器设计人员可

以采用sin(x)/x内插滤波技术,而不校正采集的带外波形的相位,结果是滤波后的波形有很大的过冲和很小的下冲时,尽管这感觉可能比较舒服,但幅度测量和边沿速率测量的精度会恶化。因此,就快速上升沿和下降沿的测量而言,使用线性相位校正的DSP滤波技术的测量结果最为精确。(本文后面将更详细地讨论相位校正滤波技术。)

最好的方法是尽力忽略下冲现象,把快速边沿脉冲开始前的这种“摆动”看作实时示波器采用正确DSP滤波器的一种标志,这种技术可以最精确地表示带外信号的整体特点。也可以把下冲信号看成一种标志,表明您应该使用更高带宽的实时示波器,或者使用高带宽取样示波器,如Agilent86100C。如果不可能进行重复取样,而且合适的高带宽实时示波器尚未面世,那么您可能必需接受,实时测量结果是当前实时取样和滤波技术所能实现的最好结果。

如前所述,sin(x)/xDSP滤波会明显改善测量分辨率和精度,使其远远高于实时取样间隔(1/取样速率)。通过安捷伦20GSa/s54855A示波器,在单次采集中使用sin(x)/x滤波时,增量时间测量精度可以改进到+/-7ps(峰值)。在某些情况下,使用sin(x)/x滤波技术会影响吞吐量,换句话说,滤波器导致示波器显示屏更新速度太慢。但是,由于使用sin(x)/x滤波可以增强精度,因此所有缺点显得都不那么重要。

目前,所有主要实时示波器厂商都允许用户决定是否使用sin(x)/x滤波技术。这种工作模式是安捷伦示波器是一种默认选项,但用户可以选择其它选项。

幅度平坦滤波技术

幅度平坦滤波用来校正示波器硬件中的'非平坦频响。在理想情况下,示波器应拥有完美的平坦硬件响应,直到示波器的自然带宽滚降点,如图2中的曲线所示。这意味着如果您测量幅度不变、但频率变化的正弦波,应一直测量相同的幅度,直到接近滚降频点。遗憾的是,在接近示波器的带宽极限时,频率响应的平坦度趋于恶化。通常情况下,硬件本身会导致的信号在某些频点上衰减,某些频点上则出现幅值放大。事实上,示波器设计工程师通常会在示波器硬件中的带宽极限附近故意引入幅值放大,以补偿频率相关的幅值衰减,把示波器推到更高的带宽频响上。

图3中的红色曲线(顶部)显示了Agilent54855A实时6GHz示波器的典型硬件频响。可以看到,这一示波器的硬件响应满足了6GHz的C3dB硬件模拟带宽标准,但响应还在大约3.5GHz上显示了约+1dB的峰值,在大约5.5GHz上显示了接近+2dB的峰值。当前没有示波器制造商指定示波器频响的平坦度。示波器指定的唯一频域指标是C3dB带宽点。即使示波器拥有+6dB的峰值,这在某些带内频率上相当于60%的幅度误差,只要C3dB点高于指定带宽,那么示波器就会被视为符合规范。但与较高频率的衰减会恶化测量精度一样,幅度放大也会恶化测量精度。

图3:幅度平坦滤波器响应

图3中的蓝色曲线(底部)显示了使用幅度平坦滤波技术时54855A校正后的幅度频响。通过这种DSP/软件滤波器,在接近6GHz带宽前,示波器的校正频响偏差一般会低于+/-0.5dB,该FIR滤波器是始终存在的,不可已被去掉,示波器在以最大取样速率取样时,它一直在起作用,以校正硬件滤波误差。软件滤波器和硬件滤波器相结合,测量精度要高于单纯硬件滤波器产生的测量精度。

相位校正滤波技术

图4:同相谐波

高速数字信号由多个频率成分组成,包括基波和谐波。在理想情况下,数字信号的基波和谐波是严格同相的,各频率成分之间没有相差或时延,如图4所示。遗憾的是,示波器的硬件在高速信号的高阶成分中引入了相移,只能通过大幅提高仪器模拟带宽或使用相位校正DSP滤波技术来消除这种影响。图5显示了五次谐波(绿色曲线)相对基波和三次谐波有时延的实例。结果是在示波器显示屏上出现失真的波形显示。如果没有相位校正技术,这种失真通常会在波形显示中表现为过高的过冲,同时边沿速率会下降。高速数字设计人员通常会忽视失真的过冲成分,认为测得的过冲实际上出现在测得的输入信号上。但事实可能并非如此,实际可能是硬件能力不够而导致的测量误差。

图5:延迟的第5个谐波

图6中的红色曲线显示了54855A硬件在较高输入频率上导致的典型频率相关相位误差。本图中的蓝色曲线显示了使用相位校正DSP/软件滤波技术得到的校正后的相位响应。可以看出,这个软件滤波器把相位误差校正到远远超过仪器的带宽指标。

图6:校正的和没有校正的相位响应

图7是对基于高阶最大平坦响应的6GHz硬件系统,使用相位校正和没有使用相位时校正的快速边沿信号的仿真图。在相位校正波形(左边/红色曲线)中可以注意到波形上存在下冲和过冲,而这些下冲和过冲实际上并不存在,该测量结果表明被测信号超过示波器C3dB带宽频点,而且该示波器采用了线性相位系统响应。右边的蓝色波形是没有相位校正的示波器

测量的结果,可以看出,虽然没有下冲,但其上冲却非常高。相位校正波形(左边/红色曲线)中,顶部和底部的过冲误差得到整体改善。而且最重要的是,使用相位校正技术,对带内信号或带外信号的定时测量,如上升时间和下降时间的精度要高得多。在Agilent54855A示波器中,该相位校正滤波器是不可以被去掉的,以保证对硬件相位误差进行校正。

图7:使用相位校正及没有使用相位校正时的脉冲响应

减噪滤波技术

正如您所预期的那样,减噪滤波技术会降低示波器本底噪声的影响。示波器是宽带仪器,带宽越高,本底噪声越高。这种硬件导致的误差在宽带仪器中是不可避免的。通过Agilent54855A示波器,您可以选择减噪滤波器,改善测量精度,它是通过在很宽的范围内设置带宽限制来实现的。

图8:未采用降噪滤波器,测得的本底噪声为2.8mVRMS

图8是在没有使用减噪滤波技术时,使用6-GHz带宽54855A示波器捕获1GHz正弦波的实例。通过使用无限余辉显示模式,在累积采集1000次以后,我们在这个捕获的正弦波上看到示波器的硬件本底噪声导致的噪声,大约2.8mVRMS。上面/黄色曲线是100mV/格时放大到接近满量程的输入信号。下面/绿色曲线显示了对波形峰值部分进行放大10倍后显示。

图9:降噪滤波器参数设置为2GHz,测得的本底噪声为1.6mVRMS

图9显示了相同的1GHz正弦波,但现在是使用2GHz带宽减噪滤波器。在累积采集1000次以后,我们看到由于系统本底噪声降低了近一半。这里,上方/黄色曲线仍显示了100mV/格时放大的输入信号,下方/黄色曲线显示了对波形峰值部分进行放大10倍后显示,因此我们可以更清楚地看到使用减噪滤波技术后,示波器本底噪声大幅下降。

在测试带宽较低的信号或边沿速率相对较慢的信号时,采用减噪滤波技术通常会增强幅度测量和时间相关测量的精度。如在测量抖动时,抖动测量误差成分中最大、但经常被忽视的是垂直噪声导致的抖动/定时误差。垂直噪声和时间相关测量误差之间具有直接关系,是信号斜率(slewrate)的函数。尽管难以很直观地解释这一技术,但确实在测量带内信号时,降低测量系统带宽实际上会改善抖动测量的精度。启动减噪滤波会自动降低仪器本底噪声导致的抖动。由于提升带宽与降低本底噪声相矛盾,在Agilent54855A示波器中,我们让用户可以选择是否使用减噪滤波。

带宽增强滤波技术

带宽增强滤波技术有时也称为“带宽提升技术”,可能是最不直观的DSP滤波技术。目前某些高带宽实时示波器中采用了这种技术。一旦硬件已经衰减信号,怎样才能增强系统的带宽呢?答案很简单,使用软件把信号放大。一旦把数字化信号分成各种正弦波频率成分,那么可以使用软件选择性地“放大”个别频率成分,把衰减的频率成分,用软件滤波方法将示波器C3dB点频响点提升到更高的频率,如图10所示。本图中的红色曲线(底部)显示了典型的硬件频响。绿色曲线(顶部)表示带宽增强滤波器,蓝色曲线(中间)表示改进的系统带宽响应,可以看到,带宽已经“被提升到”更高的频率。除提高带宽外,这种特定滤波器还为示波器生成更陡峭的滚降特点,帮助降低高频噪声,在测试带外输入信号时帮助消除假信号。

图10:带宽增强滤波技术

这里也有一个很大的缺点。我们已经提到,示波器是一种宽带仪器,仪器的本底噪声可能会明显恶化测量结果。带宽增强滤波技术同时也放大了仪器的本底噪声。因此,在使用示波器FIRDSP滤波器的带宽增强功能时,会影响信噪比。

尽管带宽增强滤波技术在当前某些带宽较高的实时示波器中是一种相当新的功能,但这在测试测量业内并不是一种新技术。多年来,安捷伦一直在网络分析仪和频谱分析仪中使用带宽增强技术。事实上,安捷伦在使用20GHz取样示波器中,很早就已经采用这种技术,进行TDR测量时仿真更快的边沿速率。这种技术在当前具有TDR测量功能的取样示波器中称为“归一化”。

图11:没有采用带宽增强技术时测量的上升时间

图11是使用6GHz示波器测量带外信号的实例。输入信号具有大约50ps的上升时间(10%-90%)。但由于示波器硬件的上升时间指标是70ps,我们的测量结果为74ps。通过使用7GHz带宽增强滤波技术,我们现在可以进行更精确的测量,测量

结果为66ps,如图12所示。但是,可以看到这一波形顶部和底部的基线噪声已经提高。在标准6GHz带宽模式下,示波器的本底噪声在100mV/格设置时测得的结果约为3mVRMS。在使用7GHz带宽增强滤波技术时,本底噪声提高到大约6mVRMS。

图12:使用7-GHz带宽增强技术时测量的上升时间

在Agilent54855A示波器上使用带宽增强DSP滤波技术的另一个优点是,可以使用8GHz的有源高阻探头,以实现高达7GHz的系统带宽进行测量。

总结

当前许多工程师一般信任硬件滤波技术,而怀疑DSP滤波技术,因为后者基于软件。我们在本应用指南中已经阐述,在示波器波形上采用DSP滤波的目的是校正硬件滤波误差。软件滤波不应视为一种不真实的处理方式,而更应看作一种数据还原方式。重要的是,您要清楚DSP滤波技术有没有带来副作用,若有,有那些。多年来,我们使用软件校正示波器中的硬件误差,包括增益/偏置校准及信道之间的偏移校正时延。还可以使用软件,校正采用DSP滤波技术时更加复杂的与频率相关的硬件误差来源。

本应用指南中讨论的部分滤波器特点拥有很小的副作用或没有副作用,如幅度平坦和相位校正滤波技术。正因如此,在Agilent54855A示波器以最大取样速率取样时(20GSa/s),用户不能选择这些特定的滤波器特点,而是作为默认操作方式使用。因为我们相信sin(x)/x波形重建滤波会改善测量精度和显示质量,因此这一特定的滤波器特点也作为示波器的默认工作模式使用,但用户可以简便地禁止这种功能。使用sin(x)/x滤波的主要副作用是降低示波器响应速率。

示波器FIRDSP滤波器的其它特点(包括减噪和带宽增强滤波)对带宽和本底噪声的影响非常明显。正因如此,这两种滤波器特点都没有作为默认的示波器工作模式,用户必须启动这些功能才能使用。

一旦了解了某些滤波类型中固有的问题,那么您就可以放心使用DSP滤波技术,改善实时示波器的精度和分辨率,并清楚何时应避免使用DSP滤波技术。

篇2:在Windows上使用Subversion

Subversion(以下简称svn, 为subversion.tigris.org)是鼎鼎大名的cvs的继任者,使用方法和cvs几乎一样,而且在管理二进制文件、目录方面比cvs更胜一筹,其作者就是cvs之父,所以完全不用担心从cvs转移到svn上会有任何困难,

正式基于以上优点,前几天我尝试了一下svn,在Windows上不仅svn client可以使用,而且svn server也非常方便,看来以后就用svn替代cvs吧。

主要参考的文章是:

www.nedbatchelder.com/text/quicksvn.html

excastle.com/blog/archive/2005/05/31/1048.aspx

step1: 首先从subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 下载最新的subversion的windows setup安装文件,按照提示一路next下去就可以了。这个安装包就包含了client和server的全部文件,安装后就可以在命令行下使用svn, svnadmin, svnserve等程序了。

step2: 设置注释编辑器。在系统变量里添加SVN_EDITOR变量,值为任意一个文本编辑器的名字,比如notepad.exe。

step3: 创建svn repository。比如选择c:\\svn_repo作为我们的目录,那就先创建这个文件夹,然后再命令行下输入:

svnadmin create c:\\svn_repo

注意,这个repository只是一个仓库而已,你可以在里面创建“虚拟文件夹”,每个文件夹下就可以存放不同的module了。

下面介绍如何从网络上访问你的repository。

svn的地址采用url的方式,如果通过svnserve(后面会介绍)创建网络可访问的服务器,那url地址就是svn://your_ip/module_dir。如果你只想在本地文件系统上访问你的svn repository,那url地址就是file:///c:/svn_repo/module_dir(按照上面例子)。以后不管你import还是checkout,都只需要这个url作为地址,而且登陆一次后,只需要输入一次url地址,svn会自动记住你的url地址,简单吧。下面就只介绍如何设置一个svn网络服务器,

step4: 设置网络服务器的权限。进入到刚才创建的c:\\svn_repo,打开conf\\svnserve.conf,去掉前的#,去掉auth-access = write前的#,如果你希望匿名用户访问,那就去掉anon-access前的#。去掉password-db前的#。

step5: 设置用户名和密码。还是在那个目录下,打开passwd文件,去掉前的#。按照已有的例子,添加可访问的用户名及其密码,去掉前面的#。这和cvsnt的做法很不一样,cvsnt要求可访问用户在cvs repository所在机器上必须有windows帐户,这实在太苛刻了……,还是svn的做法更简单,虽然明文密码不是很安全……。

step6: 启动网络服务svnserve。在命令行下输入

svnserve --daemon --root “C:\\svn_repo”

然后就可以通过ip地址来访问你的服务器了,假设服务器IP地址是192.168.2.168,那你的服务器地址(也即c:\\svn_repo的svn地址)就是svn://192.168.2.168。

不过svnserve会一直block在命令行上,如果要把它做成一个真正的后台服务程序,还需要一个第三方程序SVNService,可以在dark.clansoft.dk/~mbn/svnservice/ 下载。

step7: 创建module的虚拟文件夹。新开一个命令行窗口,输入

svn mkdir svn://192.168.2.168/proj1

如果你是第一次登陆服务器,则会提示你输入用户名和密码。

step8: import你的工程。进入到c:\\proj文件夹,在命令行下输入:

svn import . svn://192.168.2.168/proj1

表示把当前目录下的所有文件(及其子目录)都import到url地址所指定的位置上。

step9: checkout你的工程。进入到任意一个文件夹下,输入:

svn checkout svn://192.168.2.168/proj1 testdir

proj1模块就下载到testdir下了。之后的项目管理方式就和cvs一样了。

后续问题:

一台机器上只能跑一个svnserve,也即同一时刻,一台机器只能提供一个repository。当然,你可以通过给svnserve指定不同端口,让一台机器提供多个repository,但是这显然没有cvs那样灵活。不过也许有多repository的功能,但是还没发现。

如果喜欢gui的操作方式,有TortoiseSVN这个强大的工具。它可以在Windows资源管理器的右建中加入svn的功能。

篇3:在DSP处理器上并行实现ATR算法

摘要:介绍了由DSP芯片构成的多处理器并行系统的结构和性能以及在多处理器并行系统上并行实现ATR算法需要考虑的要总是,着重研究了在指令级并行DSP处理器上实现ART算法的并行化软件开发方法,对ATR算法的实用化和工程化具有重要的参考价值。

关键词:DSP 自动目标识别(ATR) 并行算法 处理器 软件设计

自动目标识别(ATR)算法通常包括自动地对目标进行检测、跟踪、识别和选择攻击点等算法。战场环境的复杂性和目标类型的不断增长使ATR算法的运算量越来越大,因此ATR算法对微处理器的处理能力提出了更高的要求。由于通用数字信号处理芯片能够通过编程实现各种复杂的运算,处理精度高,具有较大的灵活性,而且尺寸小、功耗低、速度快,所以一般选择DSP芯片作为微处理器来实现ATR算法的工程化和实用化。

为了保证在DSP处理器上实时地实现ATR算法,用算法并行化技术。算法并行化处理的三要素是:①并行体系结构;②并行软件系统;③并行算法。并行体系结构是算法并行化的硬件基础,并行算法都是针对特定的并行体系结构开发的并行程序。根据DSP处理器的数目,ATR算法的并行实现可以分为处理器间并行和处理器内并行。处理器间并行是指多个DSP处理器以某种方式连接起来的多处理器并行系统,ATR算法在多个处理器上并行招待。根据处理器使用存储器的情况,多处理器并行系统又可分为共享存储器多处理器并行系统和分布式多处理器并行系统。处理器内并行是指在单个DSP处理器内通过多个功能单元的指令级并行(ILP)来实现ATR算法的并行化。本文分别对在共享存储器多处理器并行系统、分布式多处理器并行系统和指令级并行DSP处理器上并行实现ATR算法进行了探讨。

1 在共享存储器多处理并行系统上实现ATR算法

在共享存储器多处理器并行系统中,各个处理器通过共享总线对所有的存储器进行操作,实现各个处理器之间的数据通信。而在任一时刻,只允许一个处理器对共享总线进行操作。所以处理器对存储器进行读/写操作时就必须先获得对共享总线的控制权,这通过总线仲裁电路实现。然而,由于所有的处理器只能通过一条共享总线对存储器进行访问,这在处理器数目比较多或者处理器之间频繁交换数据的情况下容易引起总线冲突和等待而降低整个并行系统的运行速度。共享存储器多处理器并行系统的优点是结构简单,当处理器的数目较少时,可以达到较高的加速比。

ADSP2106x处理器支持最为常用的共享存储器多处理器并行系统,组成多处理器系统的每一片ADSP2106x的片内存储器统一编址,任一ADSP2106x可以访问其它任何一片ADSP2106x的片内存储器。由于片内SRAM为双口存储器,因而这种访问并不中断被访问处理器的正常工作。每个处理器片内SRAM既是该处理器的局部存储器,又是共享存储器的部分。在不增加辅助电容的情况下,通过外部总线接口直接相连的处理器数量最多为6个。由于每个处理器的工作程序放在其片内的双口SRAM中,因此各个处理器可以实现并行处理,这是ADSP2106x的存储器结构所决定的。

ATR算法在共享存储器多处理器并行系统中实现时,在编写并行算法程序方面应当重点考虑的问题包括:

(1)均衡地把任务分配给各个处理器

ATR算法在共享存储器多处理器并行系统中实现任务级并行,因此必须把ATR算法划分为计算量均衡的多个任务,把各个任务分配给多个处理器,才能发挥多处理器并行系统的最大并行效率。

(2)尽量减少多处理器之间数据通信

由于多处理器只能通过一条共享总线对存储器进行访问,这在多处理器之间频繁交换数据的情况下容易引起总线竞争而降低整个并行系统的运行速度。

(3)利用单个处理器的并行编程特性

充分应用单个处理器的并行编程特性,有利于缩短各个处理器上任务的运行时间。例如,ADSP2106x的32位浮点运算单元包含一个乘法器、一个加法器和移位逻辑电路,它们并行工作;比特倒转寻址在傅立叶变换运算时非常有用;循环寻址在作卷积、数字滤波运算时经常用到等。

篇4:在DSP处理器上并行实现ATR算法

在分布式多处理器并行系统中,多处理器有各自独立的存储器,多个处理器通过通信口相连构成分布式多处理器并行系统。分布式多处理器并行系统的加速比和处理器的数目呈线性关系,所以只要增加处理器的数目,分布式多处理器并行系统的处理能力就能够成比例地增加。分布式多处理器比较适合于构成大规模并行系统。

目前,计算量过大仍然是制约许多有效的ATR算法实时实现的个主要因素。ATR算法在分布式多处理器并行系统上实时实现是一个很有潜力的研究领域,特别在地基和天基雷达信号处理系统中有广阔的应用前景。分布式多处理器并行系统的连接方式有线形、树形、星形、网孔和超立方体结构等。树形和星形网络的优点是网络管理容易、数据通信进寻径简单;缺点是树形网络的根节点处理器和星形网络的中央节点处理器的输入/输出吞吐量大,易造成通信瓶颈。所以树形和星形网络不适合ATR算法各个任务数据通信量较大的应用场合。

在分布式多处理器并行系统中并行实现ATR算法目前还处于研究的初始阶段,在编写并行算法程序应当重点考虑两个方面:

(1)各处理器任务的均衡分配

在分布式多处理器并行系统中处理器的数目通常较多,

只有合理地对众多的处理器均衡地分配任务,才能最大地发挥并行系统的总体性能,提高并行系统的加速比。

(2)处理器节点间的高效通信

在分布式多处理器并行系统中数据通信都是点对点通信。即两个相邻的处理器之间通过通信口通信。因此需要合理安排各个处理器节点在网络结构中的.位置,尽可能地缩短处理器节点间的通信路径长度,从而实现处理器节点间的高效数据通信。

篇5:在DSP处理器上并行实现ATR算法

在单片DSP处理器内通过多个功能单元的指令级并行(ILP)实现ATR算法的并行化处理,目前适合ATR算法实时处理的指令级并行芯片是TI公司的TMS320C6x系列DSP。TMS320C6x系列DSP处理器是第一个使用超长指令字(VLIW)体系结构的数字信号处理芯片。下面以TMS320C62x定点系列DSP为例说明指令级并行的原理和ATR并行算法软件开发方法。

3.1 VLIW体系结构

TMS320C62x的内核结构如图1所示。内核中的8个功能单元可以完全并行运行,功能单元执行逻辑、位移、乘法、加法和数据寻址等操作。内核采用VLIW体系结构,单指令字长32位,取指令、指令分配和指令译码单元每周期可以从程序存储器传递8条指令到功能单元。这8条指令组成一个指令包,总字长为256位。芯片内部设置了专门的指令分配模块,可以将每个256位的指令分配到8个功能单元中,并由8个功能单元并行运行。TMS320C62x芯片的最高时钟频率可以达到200MHz。当8个功能单元同时运行时,该芯片的处理能力高达1600MIPS。

(本网网收集整理)

3.2 基于TMS320C62x的并行算法软件开发方法

基于TMS320C62x的并行编译系统支持C语言和汇编语言开发并行程序代码。通常,开发ATR并行算法按照代码开发流程的三个阶段进行并行程序设计:第一阶段是开发C代码;第二阶段是优化C代码;第三阶段是编写线性汇编代码。以上三个阶段不是必须的,如果在某一阶段已经实现了ATR算法的功能和性能要求,就不必进入下一阶段。

(1)开发C代码

开发C代码需要考虑的要点包括:

①数据结构

TMS320C62x编译器定义了各种数据结构的长度:字符型(char)为8位,短整型(short)为16位,整型(int)为32位,长整形(long)为40位,浮点型(float)为32位,双精度浮点型(double)为64位。在编写C代码时应当遵循的规则是:避免在代码中将int和long型作为同样长度处理;对于定点乘法,应当尽可能使用short型数据;对循环计数器使用int或者无符号int类型,避免不必要的符号扩展。

②提高C代码性能

应用调试器的Profile工具可以得到一个关于C代码中各特定代码段执行情况的统计表,也可以得到特定代码段招待所用的CPU时钟周期数。因此可以找出影响软件程序总体性能的C代码段加以改进,通常是循环代码段影响软件程序总体性能。

③数据的定标

由于TMS320C62x是定点系列芯片,不支持浮点操作。在程序编写过程中,应当尽量采用定点的数据结构。而实际处理的数据通常都是浮点的,所以需要把浮点数据通过定标转化为整型数据处理,提高程序的处理速度。数据的定标是十分关键的步骤,既要使数据处理精度满足性能要求,又要防止在数据处理过程中出现溢出。

(2)优化C代码

优化C代码包括向编译器指明不相关的指令、循环展开、循环合并、使用内联函数、使用字访问短整型数据和软件流水等方法。

①向编译器指明不相关的指令

为使指令并行操作,编译器必须确定指令间的相关性,只有不相关的指令才可以并行执行。如果编译器不能确定两条指令是不相关的,则认为是相关的,安排它们串行招待。用户可通过如下方法指明相关的指令:

・关键字const可以指定一个目标,const表示一个变量或者一个变量的存储单元保持不变,使用const可以提高代码的性能和适应性。

・一起使用-pm选项和-03选项可以确定程序优先级。在程序优先级中,所有源文件都被编译成一个模块,从而使编译器更有效地消除相关性。

・使用-mt选项向编译器说明在代码中不存在存储器相关性,即允许编译器在无存储器相关性的假设下进行优化。

②循环展开

循环展开就是把循环计数小的循环展开,成为非循环形式的串行程序,或者把循环计数大的循环部分展开,减少循环迭代次数,增加单个循环内的代码,使得循环内的操作可以均匀分布在各个功能单元上,保持DSP处理器的各个功能单元满负荷运行。

③循环合并

如果两个循环计数差不多、循环执行互不相同的操作,可以把它们合并在一起组成一个循不。当两个循环的负荷都不满时,这是非常有用的。

④使用内联函数

TMS320C62x编译器提供的内联函数是直接映射为内联指令的特殊函数,内联函数的代码高效、代码长度短。用户可以使用内联函数并行优化C代码。

⑤使用字节访问短整型数据

内联函数中有些指令是对存储在32位寄存器的高16位和低16位字段进行操作的。当有大量短整型数据进行操作时,可以使用字(整型数)一次访问两个短整型数据。然后使用内联函数对这些数据进行操作,从而减少对内存的访问。

⑥软件流水

软件流水是用来安排循环指令,使这个循环多次迭代并行执行的一种技术。在编译时使用-o2和-o3选项,编译器可对循环代码实现软件流水;使用-o3和-pm选项,使优化器访问整个程序,了解循环次数;使用_nassert内联函数,防止冗余循环产生;使用投机执行(_mh选项)消除软件注流水循环的排空,从而减少代码尺寸。

在嵌套循环中,编译器仅对最里面的循环执行软件流水,因此对招待周期很少的内循环作循环展开,外循环进行软件流水,这样可以改进C代码并行执行的性能。使用软件流水还应当注意:尽管软件流水循环可以包含内联函数,但是不能包含函数调用;在循环中不可以有条件终止指令;在循环体中不可以修改循环控制变量。

(3)编写线性汇编代码

编写线性汇编代码是并行算法软件开发流程的第三个阶段。了提高并行算法软件代码的性能,对影响并行程序速度的关键C代码可以用线性编重新编写。编写线性汇编代码不需要指明使用的寄存器、指令的并行与否、指令的延迟周期和指令使用的功能单元,汇编优化器会根据情况确定这些住处。优化线性汇编代码的方法包括:为线性汇编指令指定功能单元,使得最后的汇编指令并行执行;使用字访问短整型数据;使用软件流水对循环进行优化。编写线性汇编代码的工作量非常大,需要很长的开发周期,而且开发后的汇编代码不能像C代码那样移植在其它的DSP平台上。

应用上述并行程序开发方法,在TMS320C6201 EVM板上实现了宽带毫米波雷达目标时延神经网络识别算法。经过实际测试,并行算法程序执行时间为0.850ms,满足了目标识别算法的实时性需求。

示波器的使用实验报告

《示波器的的原理和使用》物理实验报告

基于DSP技术的MP3播放器的研究与设计

KALMAN滤波技术在北斗无源动态定位中的应用研究

DSP数字信号处理器在科里奥利质量流量计上的应用

笔记本电脑上不能使用摄像头

光刻技术在微电子设备上的应用及展望的论文

在VB中使用API函数 (之一)VB

在毕业典礼上讲话稿

基于自适应Kalman滤波的BP神经网络在导航中的应用

在示波器上使用DSP滤波技术的探讨(精选5篇)

欢迎下载DOC格式的在示波器上使用DSP滤波技术的探讨,但愿能给您带来参考作用!
推荐度: 推荐 推荐 推荐 推荐 推荐
点击下载文档 文档为doc格式
点击下载本文文档