一种卷积计算方法技术

技术编号:21833189 阅读:17 留言:0更新日期:2019-08-10 18:12
本发明专利技术提供了一种卷积计算方法。该方法利用矢量DSP执行第一序列x和第二序列h的卷积计算,包括以下步骤:将所述第一序列x划分为多个数据段;将所划分的第一序列x的多个数据段分别与所述第二序列h执行卷积计算,以获得多个计算结果;合并所述多个计算结果,以获得所述第一序列x和第二序列h的卷积结果。本发明专利技术的方法能够通过短卷积计算实现任意序列长度的卷积计算,提高了运算效率。

A Convolution Method

【技术实现步骤摘要】
一种卷积计算方法
本专利技术涉及数字信号处理
,尤其涉及一种卷积计算的方法。
技术介绍
在移动通信和数字信号处理领域中,卷积发挥着至关重要的作用,其是将两个离散序列h和x的有关序列值分别两两相乘再相加的一种的运算,卷积可以用于数字信号的滤波,以滤除无用的频率分量,也可以用于完成两个序列的相关,以进行信号的同步等。卷积通常在数字信号处理器(DSP)上实现,目前,基于矢量DSP的卷积算法主要有两种方案:一种是内循环矢量化(vectorizingtheinnerloop,VIL)算法,该算法将两个输入序列中的各个元素对应相乘,再将相乘结果累加,以产生单个输出,通过矢量乘法和累加操作,可以引入一定的数据级并行度。然而,该算法需要对滤波矩阵中的系数进行补零操作,会有较多0元素参与运算,从而产生了无用的运算,此外,该算法需要进行标量的存储操作,影响了整体的并行化程度,造成计算效率低下;另一种是外循环矢量化(vectorizingtheouterloop,VOL)算法,该算法利用单个元素与一个序列进行相乘,从而得到多个输出,再将多个输出进行交叠相加,从输出的角度进行数据的并行,从而获得数据级并行度并避免较多的0参与相乘运算。然而,该算法虽然在输出方面做到了数据并行化,但却利用了单个元素作为输入,基本的算法结构和数据处理流程与VIL算法一致,因此也不能有效降低卷积运算的总体复杂度。综上所述,现有的卷积方法均利用了卷积的直接结构,因此无法缩短卷积算法的执行周期。因此,需要对现有技术进行改进以在矢量DSP上高效地执行卷积计算。
技术实现思路
本专利技术的目的在于克服上述现有技术的缺陷,提供一种卷积计算的方法,该方法利用矢量DSP的结构,达到快速计算卷积的目的。根据本专利技术的第一方面,提供了一种卷积计算方法。该方法利用矢量DSP执行第一序列x和第二序列h的卷积计算,包括以下步骤:步骤1:将所述第一序列x划分为多个数据段;步骤2:将所划分的第一序列x的多个数据段分别与所述第二序列h执行卷积计算,以获得多个计算结果;步骤3:合并所述多个计算结果,以获得所述第一序列x和第二序列h的卷积结果。在一个实施例中,步骤2包括:步骤21:基于预定长度将所述第二序列h进行分组;步骤22:将所述第一序列x的每一数据段进行分组;步骤23:将所述第一序列x的每一数据段的各组与所述第二序列h的各组并行进行卷积计算。在一个实施例中,所述预定长度为2或3或4。在一个实施例中,所述第一序列x的各组包含的值的数量和所述第二序列h的各组包含的值的数量均为2。在一个实施例中,对于所述第一序列x的一组值{x0,x1}和所述第二序列h的一组值{h0,h1},通过以下子步骤执行一组卷积计算:将{x0,x1}依次存储于所述矢量DSP的第一矢量寄存器,将{h0,h1}依次存储于所述矢量DSP的第二矢量寄存器;执行{x0,x1}和{h0,h1}的卷积计算,获得计算结果y0=x0·h0,y2=x1·h1,y1=(x0+x1)·(h0+h1)-y0-y2;将y0和y1依次存储于所述矢量DSP的第三矢量寄存器,将y1和y2依次存储于所述矢量DSP的第四矢量寄存器。在一个实施例中,对于所述第三矢量寄存器和所述第四矢量寄存器的多组卷积计算结果,将前一组卷积计算结果的最后一个值与后一组卷积计算结果的第一个值相加,并将相加结果存入被加数的位置,其它位置的计算结果保持不变。在一个实施例中,采用单指令多数据流对所述第一序列x的每一数据段并行进行访存或计算。与现有技术相比,本专利技术的优点在于:通过将参与卷积计算的序列分段,能够利用矢量DSP的结构对每个数据段包含的多个值并行地操作;采用短卷积的运算结构,通过短卷积快速的构造任意长度的长卷积,从而提高了卷积计算的效率。附图说明以下附图仅对本专利技术作示意性的说明和解释,并不用于限定本专利技术的范围,其中:图1是根据本专利技术一个实施例的卷积计算方法的流程图;图2是根据本专利技术一个实施例的基于矢量DSP的短卷积运算示意图。图3是根据本专利技术一个实施例的交叉叠加运算示意图。具体实施方式为了使本专利技术的目的、技术方案、设计方法及优点更加清楚明了,以下结合附图通过具体实施例对本专利技术进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。典型地,卷积运算定义为:假设离散序列x长度为N,离散序列h的长度为M,则卷积结果序列y的长度为M+N-1。根据本专利技术的一个实施例,提供了一种卷积计算方法,简言之,该方法包括将参与卷积运算的序列分段;对各数据段分组执行短卷积;对多组短卷积的结果进行叠加。具体地,参见图1所示,本专利技术的方法包括以下步骤:步骤S110,将参与卷积运算的序列x划分为多个数据段。在此步骤中,将序列x划分为多个数据段,每个数据段可包括多个值。例如,基于矢量DSP的数据宽度将序列x进行分段,假设矢量DSP的数据宽度为L=16,序列x的长度N=32,序列h的长度为M=6,则将序列x按照DSP的数据宽度L=16分段,即共分成两个数据段,每个数据段包括16个值,将第一段数据包含的值标记为{x0,x1,...,x15},将第二段数据包含的值标记为{x16,x17,...,x31}。步骤S120,将参与卷积运算的序列h按照预定长度划分为多个组。将序列h按照预定长度划分为多个组,预定长度可设置为2、3、4等,例如,当将序列h按照长度为2分组时,对于长度为M=6的h序列,共分为3组,每组包含的值分别标记为{h0,h1}、{h2,h3}和{h4,h5}。需要说明的是,在序列x和序列h不能被整数倍分段/分组的情况下,可通过补零的方式扩展序列的长度。步骤S130,将序列x的每个数据段分组,并对序列x和序列h的分组执行短卷积计算。在此步骤中,将序列x的每个数据段分组,以进行更细粒度的划分,例如,也分为2、3或4个数据一组,对序列x的各组与序列h的各组执行短卷积计算。在下文中,对于序列x和序列h,均以两个数据为一组进行说明,即执行2*2的短卷积。为了清楚地示意利用矢量DSP进行数据存储和计算的过程,参见图2所示,将序列x和h的各个数据存储于DSP的矢量寄存器vr1和vr2,其中,示意了将序列x的第一段数据的x0、x1、x2、x3等依次存储于矢量寄存器vr1的不同地址,对应于序列x的第一段数据,将序列h的第一组数据{h0,h1}重复的存储于DSP的矢量寄存器vr2,类似地,将序列h的第二组数据{h2,h3}重复地存储于DSP的矢量寄存器vr2。通过这种方式,对应于序列x的每一段数据,将序列h的各组数据重复的进行存储,,这种数据存储方式,有利于后续的交叉叠加。对矢量寄存器vr1和vr2中的数据进行分组,形成2个数据一组的逻辑概念,仍参见图2所示,其中,{x0,x1}和{h0,h1}作为一个短卷积组,标记为分组0,{x2,x3}和{h0,h1}作为一个短卷积组,标记为分组1,其余各数据的分组方式类似,在此不再赘述。对矢量寄存器vr1和vr2中的每组数据,执行2*2的短卷积计算,计算结果对应存储于矢量寄存器vr3和vr4中,结果的存放方式参见图2所示,其中,每组运算结果用上标来表示分组号,例如,(表示一组卷积计算结果的第一个元素)、(表示一组卷积计算结果的第二个元素)本文档来自技高网...

【技术保护点】
1.一种卷积计算方法,该方法利用矢量DSP执行第一序列x和第二序列h的卷积计算,包括以下步骤:步骤1:将所述第一序列x划分为多个数据段;步骤2:将所划分的第一序列x的多个数据段分别与所述第二序列h执行卷积计算,以获得多个计算结果;步骤3:合并所述多个计算结果,以获得所述第一序列x和第二序列h的卷积结果。

【技术特征摘要】
1.一种卷积计算方法,该方法利用矢量DSP执行第一序列x和第二序列h的卷积计算,包括以下步骤:步骤1:将所述第一序列x划分为多个数据段;步骤2:将所划分的第一序列x的多个数据段分别与所述第二序列h执行卷积计算,以获得多个计算结果;步骤3:合并所述多个计算结果,以获得所述第一序列x和第二序列h的卷积结果。2.根据权利要求1所述的卷积计算方法,其中,步骤2包括:步骤21:基于预定长度将所述第二序列h进行分组;步骤22:将所述第一序列x的每一数据段进行分组;步骤23:将所述第一序列x的每一数据段的各组与所述第二序列h的各组并行进行卷积计算。3.根据权利要求2所述的卷积计算方法,其中,所述预定长度为2或3或4。4.根据权利要求2所述的卷积计算方法,其中,所述第一序列x的各组包含的值的数量和所述第二序列h的各组包含的值的数量均为2。5.根据权利要求4所述的卷积计算方法,其中,对于所述第一序列x的一组值{x0,x1}和所述第二序列h的一组值{h0,h1},通过以下子步骤执行一组卷积计算:将{x0,x1}依次存储于所述矢量DSP的第一矢量寄存器,将{h0,h1}依次存储于所述矢量DSP的第二矢量寄存器;执行{x0,x1}和{h0,h1}的卷积计算,获得计算结果y0=x0·h0,y2=x1·h1,y1=(x0+x1)·...

【专利技术属性】
技术研发人员:林江南冯雪林孙刚周一青石晶林
申请(专利权)人:北京中科晶上科技股份有限公司
类型:发明
国别省市:北京,11

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

1