一种插值滤波方法及插值滤波器的制造方法

文档序号:7996499阅读:516来源:国知局
一种插值滤波方法及插值滤波器的制造方法
【专利摘要】本发明公开了一种插值滤波方法及插值滤波器,包括:设置N个滤波处理单元,滤波处理单元中包含滤波数据缓冲单元,滤波数据缓冲单元中包含M个数据缓冲子单元;逐一将源数据点并行同步的向每个滤波处理单元的滤波数据缓冲单元进行移位输入,在每个滤波数据缓冲单元中的每个数据缓冲子单元均写入源数据点后,对每个滤波处理单元中的源数据点进行滤波运算,并将对每个滤波处理单元的本次滤波运算的运算结果分别输出到输出数据缓冲单元中;向每个滤波处理单元的滤波数据缓冲单元移位输入下一个源数据点,直到对每个滤波处理单元进行X次滤波运算,得到X个运算结果并将运算结果输出,其中,X为源数据点的个数。
【专利说明】一种插值滤波方法及插值滤波器
【技术领域】
[0001]本发明涉及通信【技术领域】,尤其涉及一种插值滤波方法及插值滤波器。
【背景技术】
[0002]在WCDMA (Wideband Code Division Multiple Access,宽带码分多址)通信系统中,需要对上行信号进行多径搜索,在多径搜索的基础上进行上行信号的解扰解扩及后续的各种符号级处理。为了支持越来越高的传输速率,物理层调制解调技术也在不断地发展,从BPSK (二进制相移键控)、QPSK(四相相移键控)到16QAM(正交幅度调制)及64QAM等,特别是3GPP的R8协议提出了 BOOSTING(突发传输)模式用到了大量的高阶调制解调技术,这些技术对多径搜索精度提出了越来越高的要求。
[0003]传统的多径搜索算法,采用2倍采样的ADP (功率时延谱)输入,在此基础上搜索峰值点并进行相位调整后得到最后的多径。此过程中引入3/8chip的搜索精度误差。高阶的解调技术,需要这个误差维持在l/8chip,传统的搜索器无法满足要求。
[0004]为了支持高阶解调的性能,WCDMA的多径搜索通过对原来的2倍采样的ADP进行上采样插值到8倍来支持更高的搜索精度。又由于硬件实现上采样插值会极大的增加总线带宽,软件实现插值是一种有效的方法。
[0005]新型的EOL(早中晚插值滤波搜索器)搜索器,通过上采样插值的方法,将2倍采样的ADP插值成8倍采样的ADP,并在此基础上,实现的更高精度的搜索,满足了高阶解调的要求。
[0006]EOL搜索器的核心在于上采样插值,即通过插值来实现采样率的提高。在现有的WCDMA的实现体系中,搜索器的上采样插值部分需要用软件来实现。因为在芯片上直接提高数据采样率,会导致系统的带宽需求急剧上升,超出芯片总线的承受能力。但是软件实现插值滤波器,则对处理器计算能力的要求非常高。据估算,现有的软件插值滤波器,在732MHz的处理器上只能提供6个高速率用户EOL搜索结果,这很难满足实际系统的需求。

【发明内容】

[0007]本发明要解决的技术问题是提供一种插值滤波方法及插值滤波器,能够提高插值滤波的效率,使处理器能够同时为更多用户提供多径搜索。
[0008]为解决上述技术问题,本发明的一种插值滤波方法,包括:
[0009]设置N个滤波处理单元,所述滤波处理单元中包含滤波数据缓冲单元,所述滤波数据缓冲单元中包含M个数据缓冲子单元,其中,N为滤波的上采样倍数,M为L/N,L为滤波的阶数;
[0010]逐一将源数据点并行同步的向每个滤波处理单元的滤波数据缓冲单元进行移位输入,在每个滤波数据缓冲单元中的每个数据缓冲子单元均写入源数据点后,对每个滤波处理单元中的源数据点进行滤波运算,并将对每个滤波处理单元的本次滤波运算的运算结果分别输出到在输出数据缓冲单元中的本次滤波运算的运算结果对应的输出缓冲子单元中;
[0011]向每个滤波处理单元的滤波数据缓冲单元移位输入下一个源数据点,对每个滤波处理单元中的源数据点进行滤波运算,并将本次滤波运算的运算结果输出到输出数据缓冲单元中的本次滤波运算的运算结果对应的输出缓冲子单元中,直到对每个滤波处理单元进行X次滤波运算,得到X个运算结果并将运算结果输出,其中,X为源数据点的个数。
[0012]进一步地,对每个滤波处理单元中的源数据点进行滤波运算,包括:
[0013]对于第一个滤波处理单元,将所述第一个滤波处理单元的滤波数据缓冲单元当前缓存的源数据点中,最早被输入到所述第一个滤波处理单元中的源数据点作为本次滤波运算的运算结果。
[0014]进一步地,还包括:
[0015]对于第二到第N个滤波处理单元,分别设置滤波系数缓冲单元,所述滤波系数缓冲单元包含与滤波数据缓冲单元的数据缓冲子单元一一对应的M个系数缓冲子单元,所述M个系数缓冲子单元各自保存对应的数据缓冲子单元中的源数据点的要乘的滤波系数。
[0016]进一步地,对每个滤波处理单元中的源数据点进行滤波运算,包括:
[0017]对于第二到第N个滤波处理单元,将滤波处理单元的滤波数据缓冲单元中的数据缓冲子单元划分为多个滤波组,每个滤波组包含多个数据缓冲子单元,对每个滤波组中的数据缓冲子单元中的源数据点进行串并变换,对与滤波组中的数据缓冲子单元对应的系数缓冲子单元中的滤波系数进行串并变换,并行的将滤波组中数据缓冲子单元中的源数据点与对应的系数缓冲子单元中的滤波系数相乘,将乘积相加,得到滤波组的滤波结果;
[0018]将每个滤波组的滤波结果相加,并对相加后的结果进行并串变换,得到本次滤波运算的运算结果。
[0019]进一步地,所述输出数据缓冲单元包含X*N个输出缓冲子单元;
[0020]将对每个滤波处理单元的本次滤波运算的运算结果分别输出到在输出数据缓冲单元中的本次滤波运算的运算结果对应的输出缓冲子单元中,包括:
[0021]对于第一个滤波处理单元,第一次滤波运算到第X次滤波运算的运算结果对应的输出缓冲子单元在输出数据缓冲单元中的序号依次为0,N,2N,3N...(X-1)N,根据滤波运算的次数将运算结果输出到对应的输出缓冲子单元中;
[0022]对于第K个滤波处理单元,第一次滤波运算到第X次滤波运算的运算结果对应的输出缓冲子单元在输出数据缓冲单元中的序号依次为K-1,N+K-1,2N+K-1,3N+K-1...(X-1)N+K-1,根据滤波运算的次数将运算结果输出到对应的输出缓冲子单元中,其中,K为2?N。
[0023]进一步地,一种插值滤波器,包括:源数据缓冲单元、N个滤波处理单元和输出数据缓冲单元,每个滤波处理单元中均包含滤波数据缓冲单元,所述滤波数据缓冲单元中包含M个数据缓冲子单元,其中,N为滤波的上采样倍数,M为L/N,L为滤波的阶数;其中:
[0024]所述源数据缓冲单元,用于缓冲源数据点,逐一将源数据点并行同步的向每个滤波处理单元的滤波数据缓冲单元进行移位输入,并在所述滤波处理单元完成一次滤波运算后,向每个滤波处理单元的滤波数据缓冲单元移位输入下一个源数据点;
[0025]所述滤波处理单元,用于在包含的滤波数据缓冲单元中的每个数据缓冲子单元均写入源数据点后,对滤波数据缓冲单元中的源数据点进行滤波运算,并将本次滤波运算的运算结果输出到在输出数据缓冲单元中的本次滤波运算的运算结果对应的输出缓冲子单元中,在所述源数据缓冲单元输入下一个源数据点后,对源数据点进行滤波运算,并将本次滤波运算的运算结果输出到输出数据缓冲单元中的本次滤波运算的运算结果对应的输出缓冲子单元中,直到进行X次滤波运算,得到X个运算结果并将运算结果输出,其中,X为源数据点的个数。
[0026]进一步地,所述N个滤波处理单元中的第一个滤波处理单元,具体用于将所述第一个滤波处理单元的滤波数据缓冲单元当前缓存的源数据点中,最早被输入到所述第一个滤波处理单元中的源数据点作为本次滤波运算的运算结果。
[0027]进一步地,所述N个滤波处理单元中的第二到第N个滤波处理单元包含与滤波数据缓冲单元对应的滤波系数缓冲单元,所述滤波系数缓冲单元包含与滤波数据缓冲单元的数据缓冲子单元一一对应的M个系数缓冲子单元,所述M个系数缓冲子单元各自保存对应的数据缓冲子单元中的源数据点的要乘的滤波系数。
[0028]进一步地,所述第二到第N个滤波处理单元的滤波数据缓冲单元中的数据缓冲子单元分为多个滤波组,每个滤波组包含多个数据缓冲子单元;
[0029]所述第二到第N个滤波处理单元包含与滤波组中的数据缓冲子单元连接的串并变换单元,与滤波组中的数据缓冲子单元对应的系数缓冲子单元连接的串并变换单元,滤波组对应的运算单元以及并串变换单元,其中:
[0030]所述与滤波组中的数据缓冲子单元连接的串并变换单元,用于对连接的数据缓冲子单元中的源数据点进行串并变换;
[0031]所述与滤波组中的数据缓冲子单元对应的系数缓冲子单元连接的串并变换单元,用于对连接的系数缓冲子单元中的滤波系数进行串并变换;
[0032]所述滤波组对应的运算单元分别与所述与滤波组中的数据缓冲子单元连接的串并变换单元和所述与滤波组中的数据缓冲子单元对应的系数缓冲子单元连接的串并变换单元连接,用于并行的将滤波组中数据缓冲子单元中的源数据点与对应的系数缓冲子单元中的滤波系数相乘,将乘积相加,得到滤波组的滤波结果,并接收相邻的前一个滤波组对应的运算单元发送的滤波组的滤波结果,将接收到的滤波组的滤波结果与自身得到的滤波组的滤波结果相加,将相加的结果发送给相邻的下一个滤波组对应的运算单元;
[0033]所述并串变换单元,用于对每个滤波组的滤波结果相加后的结果进行并串变换,得到本次滤波运算的运算结果。
[0034]进一步地,所述输出数据缓冲单元包含X*N个输出缓冲子单元;
[0035]所述N个滤波处理单元中的第一个滤波处理单元的第一次滤波运算到第X次滤波运算的运算结果对应的输出缓冲子单元在输出数据缓冲单元中的序号依次为0,N,2N,3N...(X-1)N ;
[0036]所述N个滤波处理单元中的第K个滤波处理单元的第一次滤波运算到第X次滤波运算的运算结果对应的输出缓冲子单元在输出数据缓冲单元中的序号依次为K-l,N+K-1,2N+K-1,3N+K-1...(X-1)N+K-1,其中,K 为 2 ?N。
[0037]综上所述,本发明具有如下有益效果:
[0038](I)省略了上采样滤波前的插O操作,省略了与O数据进行相乘加的操作;
[0039](2)通过对滤波系数进行排列的方式以及对滤波运算的运算结果分类输出的方式,使得在进行滤波运算时,源数据点与滤波系数已经天然对齐,省略了通过输出数据索引计算与此输出数据对应的输入数据的系数索引的环节,形成第一层次的并行运算结构;
[0040](3)由于源数据点与滤波系数已经天然对齐,在进行滤波运算时,则可以通过串并变换,将分散的源数据点与滤波系数,分别组装成更高位宽的数据、系数,以利用处理器本身的并行处理能力,形成第二层次的并行;
[0041](4)在进行滤波运算时,能够换行连续的乘加运算,将成倍提高处理器的流水线单元的效率,避免处理器流水线空泡,提高了处理器执行效率,形成第三第四层次的并行;
[0042](5)对于第一个滤波处理单元中的源数据点,不进行与滤波系数的乘运算,减少了不必要的滤波运算;
[0043]本发明的并行的上采样插值滤波方法,根据数据的位宽,在处理器采用2倍并行执行的情况下,滤波效率提高了 9倍;在处理器采用4倍并行执行的情况,滤波效率提高了17倍。在实际的WCDMA系统中,将系统所能支持的高精度搜索用户的数量提高为原来的10倍。
【专利附图】

【附图说明】
[0044]图1为本发明实施方式的插值滤波方法的流程图;
[0045]图2为本发明实施方式的插值滤波器的架构图。
【具体实施方式】
[0046]由于软件实现上采样插值,其大量的乘加运算需要消耗巨量的处理器计算时间,另外由于滤波运算时,源数据点与滤波系数对齐关系复杂,每计算一个插值后的数据点,都需要先计算每个源数据点对应的插值系数索引,消耗大量额外的辅助计算资源;且由于在计算时,滤波系数与源数据点的对应关系未知,无法实现乘加运算的并行化及流水化,处理器的利用率低。在现代的高性能处理器上,传统的软件实现上采样插值方法只能支持极少量的用户,成为系统的一个瓶颈。
[0047]基于现有软件滤波方法的缺点,本文提出了一种适合于RISC处理器实现,具有高度并行运算结构,具有极高运算效率,适用于WCDMA的高度并行的上采样插值滤波方法及插值滤波器,极大提高了插值效率,在软件实现插值的WCDMA系统上支持更多的高精度搜索用户。
[0048]本实施方式中,根据上采样插值的滤波系数的特点及滤波运算的特点,设计了一种全新的运算结构,特别适合于软件实现插值滤波。本实施方式的插值滤波器,最大限度的减少了非必要的插值运算及非必要的对于系数对齐的辅助运行,还使并行运算成为可能,充分利用了 RISC处理器本身的并行处理能力,在实现插值滤波的并行计算及提高插值运算效率方面,效果非常明显。
[0049]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
[0050]本实施方式中假设插值滤波器的上采样倍数为N,源数据点的个数为X,则插值滤波后得到的总的数据点的个数为X*N,滤波器的阶数L为N*M,即每个源数据点均与M个滤波系数进行滤波运算。
[0051]如图1所示,本实施方式的插值滤波方法,包括:[0052]步骤101:设置N个滤波处理单元,每个滤波处理单元中包含滤波数据缓冲单元,滤波数据缓冲单元中包含M个数据缓冲子单元,每个数据缓冲子单元用于缓存一个源数据点D ;
[0053]步骤102:对于N*M阶滤波器,共包含N*M个滤波系数C,将N*M个滤波系数,分成N组,其中,组I中的滤波系数为第一个滤波处理单元中的源数据点将要乘的滤波系
数,组I中的滤波系数的序号为0,N,2N,3N......(M-1)N,组2中的滤波系数为第二个滤
波处理单元中的源数据点将要乘的滤波系数,组2中的滤波系数的序号为1,N+L2N+1,3N+1......(M-1) N+1,以此类推到组N中的滤波系数;
[0054]步骤103:分别为第二个滤波处理单元到第N个滤波处理单元设置滤波系数缓冲单元,滤波系数缓冲单元包含M个系数缓冲子单元,滤波系数缓冲单元的M个系数缓冲子单元与对应的滤波数据缓冲单元的M个数据缓冲子单元一一对应,用于缓存对应的数据缓冲子单元中的源数据点将要乘的滤波系数;
[0055]由于组I中的滤波系数除C(M_1)N为I外均为0,因此,未对第一个滤波处理单元设置滤波系数缓冲单元。
[0056]步骤104:将组2到组N中的滤波系数对应的保存到相应的滤波系数缓冲单元的系数缓冲子单元中;
[0057]步骤105:逐一将源数据点并行同步的向每个滤波处理单元的滤波数据缓冲单元进行移位输入,在每个滤波数据缓冲单元中的每个数据缓冲子单元均写入源数据点后,对每个滤波处理单元中的源数据点进行滤波运算;
[0058]请参考图2,将源数据点Dtl?Dx并行同步的移位输入到每个滤波处理单元的滤波数据缓冲单元的数据缓冲子单元,每个数据缓冲子单元中缓存一个源数据点。
[0059]对每个滤波处理单元中的源数据点进行滤波运算,包括:
[0060]对于第一个滤波处理单元,将第一个滤波处理单元的滤波数据缓冲单元当前缓存的源数据点中,最早被输入到第一个滤波处理单元中的源数据点作为本次滤波运算的运算结果。在图2中的瞬时状态,当前最早输入到第一个滤波处理单元中的源数据点为Dtl,在进行下一次的移位输入后,最早输入到第一个滤波处理单元中的源数据点为D1, D0已移出第一滤波处理单元。
[0061]对于第二到第N个滤波处理单元,将滤波处理单元中的滤波数据缓冲单元的数据缓冲子单元划分为多个滤波组,每个滤波组包含多个数据缓冲子单元,对每个滤波组中的数据缓冲子单元中的源数据点进行串并变换,对与滤波组中的数据缓冲子单元对应的系数缓冲子单元中的滤波系数进行串并变换,并行的将滤波组中数据缓冲子单元中的源数据点与对应的系数缓冲子单元中的滤波系数相乘,将乘积相加,得到滤波组的滤波结果;并将每个滤波组的滤波结果相加,并对相加后的结果进行并串变换,得到本次滤波运算的运算结果。图2中每个滤波组包含两个数据缓冲子单元。
[0062]步骤106:将每个滤波处理单元的本次滤波运算的运算结果分别输出到在输出数据缓冲单元中的本次滤波运算的运算结果对应的输出缓冲子单元中;
[0063]输出数据缓冲单元包含X*N个输出缓冲子单元;
[0064]对于第一个滤波处理单元,第一次滤波运算?第X次滤波运算的运算结果对应的输出缓冲子单元在输出数据缓冲单元中的序号依次为0,N,2N,3N...(X-1)N,根据滤波运算的次数将运算结果输出到对应的输出缓冲子单元中;对于滤波后的第一路数据,是直接按滤波后的位置输出。即源数据点的第O个(Dtl)输出到输出缓冲子单元Otl,源数据点的第I个(D1)输出到输出缓冲子单元On,源数据点的第2个输出到输出缓冲子单元O2n……源数据点的第X-1个(Djh)输出到输出缓冲子单元0(x_1)n。
[0065]对于第K个滤波处理单元,第一次滤波运算到第X次滤波运算的运算结果对应的输出缓冲子单元在输出数据缓冲单元中的序号依次为K-1,N+K-1,2N+K-1,3N+K-1...(X-1)N+K-1,根据滤波运算的次数将运算结果输出到对应的输出缓冲子单元中,其中,K为2~N。
[0066]本实施方式中按源数据点所使用的滤波系数的特点,将滤波后得到的数据点分
成并行的N路数据。第一路对应的输出缓冲子单元的序号为0,N,2N,3N......(X-1)N,
即图1中的Otl, On......0(X_1)N(部分未示出),输出的滤波后的数据点是源数据点与系
数Ctl, CN, C2n......C(X_1)N相乘加;第二路对应的输出缓冲子单元的序号为1,N+L2N+1,
3N+1......(X-1)N+1,即图1中的O1, O訊......0(X_1)N+1 (部分未示出),输出的滤波后的数
据点是源数据点与系数C1,系数

Cn+1, C2N+1......C (M-1) N+1 相乘加;依次类推到N路数据。
[0067]步骤107:向每个滤波处理单元的滤波数据缓冲单元移位输入下一个源数据点,重复进行对每个滤波 处理单元中的源数据点的滤波运算,并将本次滤波运算的运算结果输出到输出数据缓冲单元中的本次滤波运算的运算结果对应的输出缓冲子单元中,直到对每个滤波处理单元进行X次滤波运算,得到X个运算结果并将运算结果输出后结束。
[0068]本实施方式中,对于第2到第N个滤波处理单元,对每个滤波处理单元中的源数据点进行滤波运算时,第一次的滤波运算是取源数据点Dtl~Dsh,与对应的M个滤波系数相
乘,Dtl对应C(M_1)N+1,......,Dm^1对应C1得到第一个数据点,第二次滤波运算取D1至Dm,与对
应的M个滤波系数对应相乘,D1对应C




(M-1)N+1 ,......,Dm对应C1,得到第二个数据点,第三到
第X个数据点依次类推。
[0069]在对每个滤波处理单元中的源数据点进行单次滤波运算的时候,通过对源数据点及滤波系数进行串并变换,使串行计算变为并行计算,充分利用CPU的并行处理能力。在输出时,通过将数据点串行输出到间隔为N的输出缓冲子单元中,即输入输出是串行的,但中间通过串并变换及并串变换,实现并行乘加运算。
[0070]在实施本实施方式的方法时,需要根据滤波器的参数,包括滤波器的阶数、滤波系数、上采样倍数、并行计算系数等,按图2所示的结构,构造滤波器的源数据缓冲单元、滤波处理单元及输出数据缓冲单元,设上采样倍数为N,设置N个滤波处理单元,对于第二到第N个滤波处理单元,分别为第二到第N个滤波处理单元设置滤波系数缓冲单元,逐路进行并行滤波。当所有路的滤波运算都结束后,输出数据缓冲单元中的数据,即为插值滤波后的结果O
[0071]本实施方式通过分析上采样插值滤波的特点,通过目标滤波数据分类、滤波系数重排、并行乘加运行,特殊运行省略及串并变换、并串变换的输入输出,实现了一种高度并行的滤波器运算结构。
[0072]如图2所示,本实施方式提供的插值滤波器,包括:源数据缓冲单元、N个滤波处理单元和输出数据缓冲单元,每个滤波处理单元中均包含滤波数据缓冲单元,滤波数据缓冲单元中包含M个数据缓冲子单元,其中,N为滤波的上采样倍数,M为L/N,L为滤波的阶数;其中:[0073]源数据缓冲单元,用于缓冲源数据点,逐一将源数据点并行同步的向每个滤波处理单元的滤波数据缓冲单元进行移位输入,并在滤波处理单元完成一次滤波运算后,向每个滤波处理单元的滤波数据缓冲单元移位输入下一个源数据点;
[0074]滤波处理单元,用于在包含的滤波数据缓冲单元中的每个数据缓冲子单元均写入源数据点后,对滤波数据缓冲单元中的源数据点进行滤波运算,并将本次滤波运算的运算结果输出到在输出数据缓冲单元中的本次滤波运算的运算结果对应的输出缓冲子单元中,在源数据缓冲单元输入下一个源数据点后,对源数据点进行滤波运算,并将本次滤波运算的运算结果输出到输出数据缓冲单元中的本次滤波运算的运算结果对应的输出缓冲子单元中,直到进行X次滤波运算,得到X个运算结果并将运算结果输出,其中,X为源数据点的个数。
[0075]N个滤波处理单元中的第一个滤波处理单元,具体用于将第一个滤波处理单元的滤波数据缓冲单元当前缓存的源数据点中,最早被输入到第一个滤波处理单元中的源数据点作为本次滤波运算的运算结果。
[0076]N个滤波处理单元中的第二到第N个滤波处理单元包含与滤波数据缓冲单元对应
的滤波系数缓冲单元,滤波系数缓冲单元包含与滤波数据缓冲单元的数据缓冲子单元--
对应的M个系数缓冲子单元,M个系数缓冲子单元各自保存对应的数据缓冲子单元中的源数据点的要乘的滤波系数。
[0077]第二到第N个滤波处理单元的滤波数据缓冲单元中的数据缓冲子单元分为多个滤波组,每个滤波组包含多个数据缓冲子单元;
[0078]第二到第N个滤波处理单元包含与滤波组中的数据缓冲子单元连接的串并变换单元,与滤波组中的数据缓冲子单元对应的系数缓冲子单元连接的串并变换单元,滤波组对应的运算单元以及并串变换单元,其中:
[0079]与滤波组中的数据缓冲子单元连接的串并变换单元,用于对连接的数据缓冲子单元中的源数据点进行串并变换;
[0080]与滤波组中的数据缓冲子单元对应的系数缓冲子单元连接的串并变换单元,用于对连接的系数缓冲子单元中的滤波系数进行串并变换;
[0081]滤波组对应的运算单元分别与与滤波组中的数据缓冲子单元连接的串并变换单元和与滤波组中的数据缓冲子单元对应的系数缓冲子单元连接的串并变换单元连接,用于并行的将滤波组中数据缓冲子单元中的源数据点与对应的系数缓冲子单元中的滤波系数相乘,将乘积相加,得到滤波组的滤波结果,并接收相邻的前一个滤波组对应的运算单元发送的滤波组的滤波结果,将接收到的滤波组的滤波结果与自身得到的滤波组的滤波结果相加,将相加的结果发送给相邻的下一个滤波组对应的运算单元;
[0082]并串变换单元,用于对每个滤波组的滤波结果相加后的结果进行并串变换,得到本次滤波运算的运算结果。
[0083]输出数据缓冲单元包含X*N个输出缓冲子单元;
[0084]N个滤波处理单元中的第一个滤波处理单元的第一次滤波运算到第X次滤波运算的运算结果对应的输出缓冲子单元在输出数据缓冲单元中的序号依次为0,N,2N,3N...(X-1)N ;
[0085]N个滤波处理单元中的第K个滤波处理单元的第一次滤波运算到第X次滤波运算的运算结果对应的输出缓冲子单元在输出数据缓冲单元中的序号依次为κ-l,N+K-1,2N+K-1,3N+K-1...(X-1)N+K-1,其中,K 为 2 ?N。
[0086]图2所示的滤波器中,最左边的是源数据缓冲单元,最右边是输出数据缓冲单元。本实施方式的滤波器包括两层次的并行运算结构。第一层并行是滤波运算被按系数的特点拆分成了可并行的N路;第二层并行是在每一路计算中,对于每个输出数据点,源数据点与滤波系数的乘加运算,可以通过串并变换后进行并行运算,并行运算的结果再通过串并变换后输出。
[0087]每一路的运算结构包括系数缓冲、数据缓冲、系数与数据的串并变换、并行计算及累加计算、并串变换并输出。其中,滤波系数缓冲单元保存了与当前路相关的滤波系数,由前面的系数分类操作得到;数据缓冲从右到左保存了依次位移进入滤波处理单元的源数据点。当缓冲满之后,右边的源数据点移出一个,左边的源数据点移进一个,且每计算完一个输出数据点,进行一次位移。
[0088]显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0089]以上该仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种插值滤波方法,包括: 设置N个滤波处理单元,所述滤波处理单元中包含滤波数据缓冲单元,所述滤波数据缓冲单元中包含M个数据缓冲子单元,其中,N为滤波的上采样倍数,M为L/N,L为滤波的阶数; 逐一将源数据点并行同步的向每个滤波处理单元的滤波数据缓冲单元进行移位输入,在每个滤波数据缓冲单元中的每个数据缓冲子单元均写入源数据点后,对每个滤波处理单元中的源数据点进行滤波运算,并将对每个滤波处理单元的本次滤波运算的运算结果分别输出到在输出数据缓冲单元中的本次滤波运算的运算结果对应的输出缓冲子单元中; 向每个滤波处理单元的滤波数据缓冲单元移位输入下一个源数据点,对每个滤波处理单元中的源数据点进行滤波运算,并将本次滤波运算的运算结果输出到输出数据缓冲单元中的本次滤波运算的运算结果对应的输出缓冲子单元中,直到对每个滤波处理单元进行X次滤波运算,得到X个运算结果并将运算结果输出,其中,X为源数据点的个数。
2.如权利要求1所述的方法,其特征在于,对每个滤波处理单元中的源数据点进行滤波运算,包括: 对于第一个滤波处理单元,将所述第一个滤波处理单元的滤波数据缓冲单元当前缓存的源数据点中,最早被输入到所述第一个滤波处理单元中的源数据点作为本次滤波运算的运算结果。
3.如权利要求1或2所述的方法,其特征在于,还包括: 对于第二到第N个滤波处理单元,分别设置滤波系数缓冲单元,所述滤波系数缓冲单元包含与滤波数据缓冲单元的数据缓冲子单元一一对应的M个系数缓冲子单元,所述M个系数缓冲子单元各自保存对应的数据缓冲子单元中的源数据点的要乘的滤波系数。
4.如权利要求3所述的方法,其特征在于,对每个滤波处理单元中的源数据点进行滤波运算,包括: 对于第二到第N个滤波处理单元,将滤波处理单元的滤波数据缓冲单元中的数据缓冲子单元划分为多个滤波组,每个滤波组包含多个数据缓冲子单元,对每个滤波组中的数据缓冲子单元中的源数据点进行串并变换,对与滤波组中的数据缓冲子单元对应的系数缓冲子单元中的滤波系数进行串并变换,并行的将滤波组中数据缓冲子单元中的源数据点与对应的系数缓冲子单元中的滤波系数相乘,将乘积相加,得到滤波组的滤波结果; 将每个滤波组的滤波结果相加,并对相加后的结果进行并串变换,得到本次滤波运算的运算结果。
5.如权利要求1所述的方法,其特征在于: 所述输出数据缓冲单元包含X*N个输出缓冲子单元; 将对每个滤波处理单元的本次滤波运算的运算结果分别输出到在输出数据缓冲单元中的本次滤波运算的运算结果对应的输出缓冲子单元中,包括: 对于第一个滤波处理单元,第一次滤波运算到第X次滤波运算的运算结果对应的输出缓冲子单元在输出数据缓冲单元中的序号依次为0,N,2N,3N...(X-1)N,根据滤波运算的次数将运算结果输出到对应的输出缓冲子单元中; 对于第K个滤波处理单元,第一次滤波运算到第X次滤波运算的运算结果对应的输出缓冲子单元在输出数据缓冲单元中的序号依次为K-l,N+K-1,2N+K-1,3N+K-1...(X-1)N+K-l,根据滤波运算的次数将运算结果输出到对应的输出缓冲子单元中,其中,K为2~N。
6.一种插值滤波器,包括:源数据缓冲单元、N个滤波处理单元和输出数据缓冲单元,每个滤波处理单元中均包含滤波数据缓冲单元,所述滤波数据缓冲单元中包含M个数据缓冲子单元,其中,N为滤波的上采样倍数,M为L/N,L为滤波的阶数;其中: 所述源数据缓冲单元,用于缓冲源数据点,逐一将源数据点并行同步的向每个滤波处理单元的滤波数据缓冲单元进行移位输入,并在所述滤波处理单元完成一次滤波运算后,向每个滤波处理单元的滤波数据缓冲单元移位输入下一个源数据点; 所述滤波处理单元,用于在包含的滤波数据缓冲单元中的每个数据缓冲子单元均写入源数据点后,对滤波数据缓冲单元中的源数据点进行滤波运算,并将本次滤波运算的运算结果输出到在输出数据缓冲单元中的本次滤波运算的运算结果对应的输出缓冲子单元中,在所述源数据缓冲单元输入下一个源数据点后,对源数据点进行滤波运算,并将本次滤波运算的运算结果输出到输出数据缓冲单元中的本次滤波运算的运算结果对应的输出缓冲子单元中,直到进行X次滤波运算,得到X个运算结果并将运算结果输出,其中,X为源数据点的个数。
7.如权利要求6所述的滤波器,其特征在于: 所述N个滤波处理单元中的第一个滤波处理单元,具体用于将所述第一个滤波处理单元的滤波数据缓冲单元当前缓存的源数据点中,最早被输入到所述第一个滤波处理单元中的源数据点作为本次滤波运算的运算结果。
8.如权利要求6或7所述的滤波器,其特征在于: 所述N个滤波处理单元中的第二到第N个滤波处理单元包含与滤波数据缓冲单元对应的滤波系数缓冲单元,所述滤波系数缓冲单元包含与滤波数据缓冲单元的数据缓冲子单元一一对应的M个系数缓冲子单元,所述M个系数缓冲子单元各自保存对应的数据缓冲子单元中的源数据点的要乘的滤波系数。
9.如权利要求8所述的滤波器,其特征在于: 所述第二到第N个滤波处理单元的滤波数据缓冲单元中的数据缓冲子单元分为多个滤波组,每个滤波组包含多个数据缓冲子单元; 所述第二到第N个滤波处理单元包含与滤波组中的数据缓冲子单元连接的串并变换单元,与滤波组中的数据缓冲子单元对应的系数缓冲子单元连接的串并变换单元,滤波组对应的运算单元以及并串变换单元,其中: 所述与滤波组中的数据缓冲子单元连接的串并变换单元,用于对连接的数据缓冲子单元中的源数据点进行串并变换; 所述与滤波组中的数据缓冲子单元对应的系数缓冲子单元连接的串并变换单元,用于对连接的系数缓冲子单元中的滤波系数进行串并变换; 所述滤波组对应的运算单元分别与所述与滤波组中的数据缓冲子单元连接的串并变换单元和所述与滤波组中的数据缓冲子单元对应的系数缓冲子单元连接的串并变换单元连接,用于并行的将滤波组中数据缓冲子单元中的源数据点与对应的系数缓冲子单元中的滤波系数相乘,将乘积相加,得到滤波组的滤波结果,并接收相邻的前一个滤波组对应的运算单元发送的滤波组的滤波结果,将接收到的滤波组的滤波结果与自身得到的滤波组的滤波结果相加,将相加的结果发送给相邻的下一个滤波组对应的运算单元;所述并串变换单元,用于对每个滤波组的滤波结果相加后的结果进行并串变换,得到本次滤波运算的运算结果。
10.如权利要求6所述的滤波器,其特征在于: 所述输出数据缓冲单元包含X*N个输出缓冲子单元; 所述N个滤波处理单元中的第一个滤波处理单元的第一次滤波运算到第X次滤波运算的运算结果对应的输出缓冲子单元在输出数据缓冲单元中的序号依次为0,N,2N,3N...(X-1)N ; 所述N个滤波处理单元中的第K个滤波处理单元的第一次滤波运算到第X次滤波运算的运算结果对应的输出缓冲子单元在输出数据缓冲单元中的序号依次为K-l,N+K-1,2N+K-1,3 N+K-1...(X-1)N+K-1,其中,K 为 2 ~N。
【文档编号】H04B1/7093GK103997355SQ201310054152
【公开日】2014年8月20日 申请日期:2013年2月20日 优先权日:2013年2月20日
【发明者】钟斌, 官华伯, 马艳玲 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1