基于SIMD的无限脉冲响应滤波方法和装置制造方法及图纸

技术编号:4189185 阅读:195 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种基于SIMD的无限脉冲响应滤波方法和装置。该方法包括:利用预先设定的滤波系数序列对输入信号序列进行无限脉冲响应滤波的循环计算;在每一次循环计算中:利用SIMD指令,对滤波系数序列和输入信号序列中对应的元素进行n次点积累计计算,其中滤波系数序列包括多个有效滤波系数、用于使该滤波系数序列位数对齐的0值以及为移位而扩展的0值,并且在n次点积累计计算中,该多个有效滤波系数在滤波系数序列中的位置分别向右移位0、1、2、……、n-1个元素;在n次点积累计计算的结果中,利用在前的结果对在后的结果进行修正;将修正后的n次点积累计计算的结果添加到输入信号序列的开始位置;其中n是这样的值:上述滤波系数序列和上述输入信号序列中一个元素所占位数的n倍等于128。

【技术实现步骤摘要】

本专利技术涉及数据处理领域,具体地,涉及基于SIMD的无限脉沖响应 滤波方法和装置。
技术介绍
无限脉沖响应(Infinite Impulse Response, IIR)滤波是一种循环滤 波,其经常应用在数字信号处理中。下面的差分方程(1)定义了在无限脉 沖响应滤波中输入信号与输出信号之间的关系<formula>formula see original document page 7</formula> (1)其中,p是前馈滤波阶数;6(/ = o,i,......,尸)是前馈滤波系数;eM馈滤波阶数;巾](/ = i,2,......,g)是反馈滤波系数;z是输入信号;n"]是输出信号。根据上面的差分方程(1)可以看出,在无限脉沖响应滤波中,对于输入信号序列x,、 z2........ x ......中当前输入信号x"进行滤波以得到其滤波输出K的处理,不仅依赖于该当前的输入信号A,而且还依赖于在该当 前的输入信号A之前的输入信号A—P........ z —2、义 —,以及之前的滤波输为了简单,设定反馈滤波阶数2 = 1,则上面的差分方程(1)将变为<formula>formula see original document page 7</formula> ( 2)也就是说,在反馈滤波阶数2=1的情况下,无限脉冲响应滤波中对于当前 输入信号A的滤波处理,将依赖于该当前的输入信号A、在该当前的输入信号^之前的输入信号z。—p........ x _2、 ,以及前一滤波输出];—,。这样的无限脉沖响应滤波,可以用专用的硬件、也可以通过在数字信号处理器(DSP)上执行相应的软件实现为无限脉冲响应滤波器。软件实 现的方案由于在实现的速度以及灵活性上具有硬件实现的方案所不能及的 优势,所以很多设计人员都倾向于利用软件方案来实现专业的无限脉冲响 应滤波器。但是,根据上面的差分方程(1)和(2)可以看出,无限脉冲响应滤 波的计算量是非常庞大的。如果利用软件方案来实现,则设计人员所面临 的问题就是,就当前的大部分CPU而言,其速度一般都很难充分满足实现 这样高数据速率、大型的滤波器的要求。另一方面,在提升通用处理器的数据处理能力方面, 一直以来人们作 出了许多努力。单指令多数据(Single誦InstructionMultiple國Data, SIMD) 体系结构便是这种努力下的 一个产物。与通常的单指令单数据体系结构中 用单个指令只对单个数据元素进行操作(例如加载、存储、整数相加等) 的情况不同,在SIMD体系结构中,在单个指令下,用一个控制器来控制 多个重复设置的处理单元,利用这多个处理单元对一组数据(共128位, 在32位单精度类型以及整数类型的情况下,是4个数据;在64位双精度 类型的情况下,是2个数据;......)中的各个数据同时执行相同的操作,以实现空间上的数据并行性。也就是说,在SIMD体系结构中,通过利用一条指令对并行的不同数 据元素同时执行相同类型的计算,来提高处理器的数据处理性能。现有的 包括多个处理单元的大多数高性能处理器都支持SIMD体系结构。如果能够基于SIMD体系结构来实现无限脉冲响应滤波器,则将能够 实现无限脉冲响应滤波的并行性,弥补软件实现方案中通用处理器所存在 的速度缺陷,提升所实现的无限脉沖响应滤波器的滤波性能。但是,前面已经提到过,在无限脉冲响应滤波中,数据之间是存在依 赖性的,在当前循环的计算中,需要之前所得到的一部分滤波结果作为必 不可少的计算元素。并且,要进行无限脉冲响应滤波的输入信号也并不能 保证总是128位对齐的(因为SIMD体系结构始终要求操作数是128位的)。因此,可以理解,基于SIMD体系结构来实现无限脉冲响应滤波中多 个输入信号的并行滤波,是非常困难的。
技术实现思路
为了解决上迷问题,本专利技术提供了一种基于SIMD的无限脉沖响应滤 波方法和装置,以便通过利用SIMD指令对输入信号序列与滤波系数序列 进行不同移位的多次点积累计计算,并且利用在前的点积累计计算的结果 对在后的点积累计计算的结果进行修正,来实现基于SIMD的并行性能力 的无限脉沖响应滤波的并行性,以减少滤波时间、提升滤波性能。根据本专利技术的一个方面,提供了一种基于SIMD的无限脉冲响应滤波 方法,包括利用预先设定的滤波系数序列对输入信号序列进行无限脉冲 响应滤波的循环计算;其中,在每一次循环计算中包括利用SIMD指令, 对上述滤波系数序列和上述输入信号序列中与该滤波系数序列对应的位置 的元素依次进行n次点积累计计算,其中上述滤波系数序列包括多个有效 滤波系数、用于使该滤波系数序列位数对齐的0值以及为移位而扩展的0 值,并且在上述n次点积累计计算中,上述多个有效滤波系数在该滤波系数序列中的位置分别向右移位O、 1、 2........ n-l个元素;在上述n次点积累计计算的结果中,依次利用在前的点积累计计算的结果对在后的点积累计计算的结果进行修正;以及将修正后的上述n次点积累计计算的结果 添加到上述输入信号序列的开始位置,作为该输入信号序列的最开始的n 个新元素;其中n是这样的值上述滤波系数序列和上述输入信号序列中 一个元素所占位数的n倍等于128。根据本专利技术的另一个方面,提供了一种基于SIMD的无限脉沖响应滤 波装置,该装置利用预先设定的滤波系数序列对输入信号序列进行无限脉 沖响应滤波的循环计算,其包括滤波系数序列保存单元,其用于保存上 述预先设定的滤波系数序列,其中该滤波系数序列包括多个有效滤波系数、 用于使该滤波系IU^列位数对齐的O值以及为移位而扩展的0值;点积累 计计算单元,其在每一次循环计算中,利用SIMD指令,对上述滤波系数序列和上述输入信号序列中与该滤波系数序列对应的位置的元素依次进行n次点积累计计算,其中在该ii次点积累计计算中,上述多个有效滤波系数在该滤波系数序列中的位置分别向右移位O、 1、 2........ n-l个元素;修正单元,其在每一次循环计算中,在上述点积累计计算单元所得到的n 次点积累计计算的结果中,依次利用在前的点积累计计算的结果对在后的 点积累计计算的结果进行修正;以及输入信号序列调整单元,其在每一次 循环计算中,将上述修正单元修正后的上迷n次点积累计计算的结果添加 到上述输入信号序列的开始位置,作为该输入信号序列的最开始的ii个新 元素;其中n是这样的值上述滤波系数序列和上述输入信号序列中一个 元素所占位数的n倍等于128。附图说明相信通过以下结合附图对本专利技术具体实施方式的说明,能够使人们更 好地了解本专利技术上述的特点、优点和目的。图1是才艮据本专利技术实施例的基于SIMD的无限脉沖响应滤波方法的流程图2是图1的过程的图示说明;图3示出了一个示例性的滤波系数序列;图4是n二4的情况下图2的方法的详细流程图5是图4的过程的图示说明;以及图6是根据本专利技术实施例的基于SIMD的无限脉冲响应滤波装置的方 框图。具体实施例方式本专利技术的主要构思是,基于SIMD体系结构来实现无限脉沖响应滤波。 下面就结合附图对本专利技术的各个优选实施例进行详细说明。 图1是根据本专利技术实施例的基于SIMD的无限脉冲响应滤波方法的流 程图,图本文档来自技高网
...

【技术保护点】
一种基于SIMD的无限脉冲响应滤波方法,包括: 利用预先设定的滤波系数序列对输入信号序列进行无限脉冲响应滤波的循环计算; 其中,在每一次循环计算中包括: 利用SIMD指令,对上述滤波系数序列和上述输入信号序列中与该滤波系数 序列对应的位置的元素依次进行n次点积累计计算,其中上述滤波系数序列包括多个有效滤波系数、用于使该滤波系数序列位数对齐的0值以及为移位而扩展的0值,并且在上述n次点积累计计算中,上述多个有效滤波系数在该滤波系数序列中的位置分别向右移位0、1、2、......、n-1个元素; 在上述n次点积累计计算的结果中,依次利用在前的点积累计计算的结果对在后的点积累计计算的结果进行修正;以及 将修正后的上述n次点积累计计算的结果添加到上述输入信号序列的开始位置,作为该输入信号序列 的最开始的n个新元素; 其中n是这样的值:上述滤波系数序列和上述输入信号序列中一个元素所占位数的n倍等于128。

【技术特征摘要】

【专利技术属性】
技术研发人员:潘宁河曾义朱振博余江王艳琦
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利