CN103997355B - 一种插值滤波方法及插值滤波器 - Google Patents

一种插值滤波方法及插值滤波器 Download PDF

Info

Publication number
CN103997355B
CN103997355B CN201310054152.5A CN201310054152A CN103997355B CN 103997355 B CN103997355 B CN 103997355B CN 201310054152 A CN201310054152 A CN 201310054152A CN 103997355 B CN103997355 B CN 103997355B
Authority
CN
China
Prior art keywords
filtering
data
processing unit
subelement
filter processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310054152.5A
Other languages
English (en)
Other versions
CN103997355A (zh
Inventor
钟斌
官华伯
马艳玲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sanechips Technology Co Ltd
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN201310054152.5A priority Critical patent/CN103997355B/zh
Priority to PCT/CN2013/089334 priority patent/WO2014127663A1/zh
Publication of CN103997355A publication Critical patent/CN103997355A/zh
Application granted granted Critical
Publication of CN103997355B publication Critical patent/CN103997355B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/06Non-recursive filters
    • H03H17/0621Non-recursive filters with input-sampling frequency and output-delivery frequency which differ, e.g. extrapolation; Anti-aliasing
    • H03H17/0635Non-recursive filters with input-sampling frequency and output-delivery frequency which differ, e.g. extrapolation; Anti-aliasing characterized by the ratio between the input-sampling and output-delivery frequencies
    • H03H17/065Non-recursive filters with input-sampling frequency and output-delivery frequency which differ, e.g. extrapolation; Anti-aliasing characterized by the ratio between the input-sampling and output-delivery frequencies the ratio being integer
    • H03H17/0657Non-recursive filters with input-sampling frequency and output-delivery frequency which differ, e.g. extrapolation; Anti-aliasing characterized by the ratio between the input-sampling and output-delivery frequencies the ratio being integer where the output-delivery frequency is higher than the input sampling frequency, i.e. interpolation

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Complex Calculations (AREA)
  • Image Processing (AREA)

Abstract

本发明公开了一种插值滤波方法及插值滤波器,包括:设置N个滤波处理单元,滤波处理单元中包含滤波数据缓冲单元,滤波数据缓冲单元中包含M个数据缓冲子单元;逐一将源数据点并行同步的向每个滤波处理单元的滤波数据缓冲单元进行移位输入,在每个滤波数据缓冲单元中的每个数据缓冲子单元均写入源数据点后,对每个滤波处理单元中的源数据点进行滤波运算,并将对每个滤波处理单元的本次滤波运算的运算结果分别输出到输出数据缓冲单元中;向每个滤波处理单元的滤波数据缓冲单元移位输入下一个源数据点,直到对每个滤波处理单元进行X次滤波运算,得到X个运算结果并将运算结果输出,其中,X为源数据点的个数。

Description

一种插值滤波方法及插值滤波器
技术领域
本发明涉及通信技术领域,尤其涉及一种插值滤波方法及插值滤波器。
背景技术
在WCDMA(Wideband Code Division Multiple Access,宽带码分多址)通信系统中,需要对上行信号进行多径搜索,在多径搜索的基础上进行上行信号的解扰解扩及后续的各种符号级处理。为了支持越来越高的传输速率,物理层调制解调技术也在不断地发展,从BPSK(二进制相移键控)、QPSK(四相相移键控)到16QAM(正交幅度调制)及64QAM等,特别是3GPP的R8协议提出了BOOSTING(突发传输)模式用到了大量的高阶调制解调技术,这些技术对多径搜索精度提出了越来越高的要求。
传统的多径搜索算法,采用2倍采样的ADP(功率时延谱)输入,在此基础上搜索峰值点并进行相位调整后得到最后的多径。此过程中引入3/8chip的搜索精度误差。高阶的解调技术,需要这个误差维持在1/8chip,传统的搜索器无法满足要求。
为了支持高阶解调的性能,WCDMA的多径搜索通过对原来的2倍采样的ADP进行上采样插值到8倍来支持更高的搜索精度。又由于硬件实现上采样插值会极大的增加总线带宽,软件实现插值是一种有效的方法。
新型的EOL(早中晚插值滤波搜索器)搜索器,通过上采样插值的方法,将2倍采样的ADP插值成8倍采样的ADP,并在此基础上,实现的更高精度的搜索,满足了高阶解调的要求。
EOL搜索器的核心在于上采样插值,即通过插值来实现采样率的提高。在现有的WCDMA的实现体系中,搜索器的上采样插值部分需要用软件来实现。因为在芯片上直接提高数据采样率,会导致系统的带宽需求急剧上升,超出芯片总线的承受能力。但是软件实现插值滤波器,则对处理器计算能力的要求非常高。据估算,现有的软件插值滤波器,在732MHz的处理器上只能提供6个高速率用户EOL搜索结果,这很难满足实际系统的需求。
发明内容
本发明要解决的技术问题是提供一种插值滤波方法及插值滤波器,能够提高插值滤波的效率,使处理器能够同时为更多用户提供多径搜索。
为解决上述技术问题,本发明的一种插值滤波方法,包括:
设置N个滤波处理单元,所述滤波处理单元中包含滤波数据缓冲单元,所述滤波数据缓冲单元中包含M个数据缓冲子单元,其中,N为滤波的上采样倍数,M为L/N,L为滤波的阶数;
逐一将源数据点并行同步的向每个滤波处理单元的滤波数据缓冲单元进行移位输入,在每个滤波数据缓冲单元中的每个数据缓冲子单元均写入源数据点后,对每个滤波处理单元中的源数据点进行滤波运算,并将对每个滤波处理单元的本次滤波运算的运算结果分别输出到在输出数据缓冲单元中的本次滤波运算的运算结果对应的输出缓冲子单元中;
向每个滤波处理单元的滤波数据缓冲单元移位输入下一个源数据点,对每个滤波处理单元中的源数据点进行滤波运算,并将本次滤波运算的运算结果输出到输出数据缓冲单元中的本次滤波运算的运算结果对应的输出缓冲子单元中,直到对每个滤波处理单元进行X次滤波运算,得到X个运算结果并将运算结果输出,其中,X为源数据点的个数。
进一步地,对每个滤波处理单元中的源数据点进行滤波运算,包括:
对于第一个滤波处理单元,将所述第一个滤波处理单元的滤波数据缓冲单元当前缓存的源数据点中,最早被输入到所述第一个滤波处理单元中的源数据点作为本次滤波运算的运算结果。
进一步地,还包括:
对于第二到第N个滤波处理单元,分别设置滤波系数缓冲单元,所述滤波系数缓冲单元包含与滤波数据缓冲单元的数据缓冲子单元一一对应的M个系数缓冲子单元,所述M个系数缓冲子单元各自保存对应的数据缓冲子单元中的源数据点的要乘的滤波系数。
进一步地,对每个滤波处理单元中的源数据点进行滤波运算,包括:
对于第二到第N个滤波处理单元,将滤波处理单元的滤波数据缓冲单元中的数据缓冲子单元划分为多个滤波组,每个滤波组包含多个数据缓冲子单元,对每个滤波组中的数据缓冲子单元中的源数据点进行串并变换,对与滤波组中的数据缓冲子单元对应的系数缓冲子单元中的滤波系数进行串并变换,并行的将滤波组中数据缓冲子单元中的源数据点与对应的系数缓冲子单元中的滤波系数相乘,将乘积相加,得到滤波组的滤波结果;
将每个滤波组的滤波结果相加,并对相加后的结果进行并串变换,得到本次滤波运算的运算结果。
进一步地,所述输出数据缓冲单元包含X*N个输出缓冲子单元;
将对每个滤波处理单元的本次滤波运算的运算结果分别输出到在输出数据缓冲单元中的本次滤波运算的运算结果对应的输出缓冲子单元中,包括:
对于第一个滤波处理单元,第一次滤波运算到第X次滤波运算的运算结果对应的输出缓冲子单元在输出数据缓冲单元中的序号依次为0,N,2N,3N...(X-1)N,根据滤波运算的次数将运算结果输出到对应的输出缓冲子单元中;
对于第K个滤波处理单元,第一次滤波运算到第X次滤波运算的运算结果对应的输出缓冲子单元在输出数据缓冲单元中的序号依次为K-1,N+K-1,2N+K-1,3N+K-1...(X-1)N+K-1,根据滤波运算的次数将运算结果输出到对应的输出缓冲子单元中,其中,K为2~N。
进一步地,一种插值滤波器,包括:源数据缓冲单元、N个滤波处理单元和输出数据缓冲单元,每个滤波处理单元中均包含滤波数据缓冲单元,所述滤波数据缓冲单元中包含M个数据缓冲子单元,其中,N为滤波的上采样倍数,M为L/N,L为滤波的阶数;其中:
所述源数据缓冲单元,用于缓冲源数据点,逐一将源数据点并行同步的向每个滤波处理单元的滤波数据缓冲单元进行移位输入,并在所述滤波处理单元完成一次滤波运算后,向每个滤波处理单元的滤波数据缓冲单元移位输入下一个源数据点;
所述滤波处理单元,用于在包含的滤波数据缓冲单元中的每个数据缓冲子单元均写入源数据点后,对滤波数据缓冲单元中的源数据点进行滤波运算,并将本次滤波运算的运算结果输出到在输出数据缓冲单元中的本次滤波运算的运算结果对应的输出缓冲子单元中,在所述源数据缓冲单元输入下一个源数据点后,对源数据点进行滤波运算,并将本次滤波运算的运算结果输出到输出数据缓冲单元中的本次滤波运算的运算结果对应的输出缓冲子单元中,直到进行X次滤波运算,得到X个运算结果并将运算结果输出,其中,X为源数据点的个数。
进一步地,所述N个滤波处理单元中的第一个滤波处理单元,具体用于将所述第一个滤波处理单元的滤波数据缓冲单元当前缓存的源数据点中,最早被输入到所述第一个滤波处理单元中的源数据点作为本次滤波运算的运算结果。
进一步地,所述N个滤波处理单元中的第二到第N个滤波处理单元包含与滤波数据缓冲单元对应的滤波系数缓冲单元,所述滤波系数缓冲单元包含与滤波数据缓冲单元的数据缓冲子单元一一对应的M个系数缓冲子单元,所述M个系数缓冲子单元各自保存对应的数据缓冲子单元中的源数据点的要乘的滤波系数。
进一步地,所述第二到第N个滤波处理单元的滤波数据缓冲单元中的数据缓冲子单元分为多个滤波组,每个滤波组包含多个数据缓冲子单元;
所述第二到第N个滤波处理单元包含与滤波组中的数据缓冲子单元连接的串并变换单元,与滤波组中的数据缓冲子单元对应的系数缓冲子单元连接的串并变换单元,滤波组对应的运算单元以及并串变换单元,其中:
所述与滤波组中的数据缓冲子单元连接的串并变换单元,用于对连接的数据缓冲子单元中的源数据点进行串并变换;
所述与滤波组中的数据缓冲子单元对应的系数缓冲子单元连接的串并变换单元,用于对连接的系数缓冲子单元中的滤波系数进行串并变换;
所述滤波组对应的运算单元分别与所述与滤波组中的数据缓冲子单元连接的串并变换单元和所述与滤波组中的数据缓冲子单元对应的系数缓冲子单元连接的串并变换单元连接,用于并行的将滤波组中数据缓冲子单元中的源数据点与对应的系数缓冲子单元中的滤波系数相乘,将乘积相加,得到滤波组的滤波结果,并接收相邻的前一个滤波组对应的运算单元发送的滤波组的滤波结果,将接收到的滤波组的滤波结果与自身得到的滤波组的滤波结果相加,将相加的结果发送给相邻的下一个滤波组对应的运算单元;
所述并串变换单元,用于对每个滤波组的滤波结果相加后的结果进行并串变换,得到本次滤波运算的运算结果。
进一步地,所述输出数据缓冲单元包含X*N个输出缓冲子单元;
所述N个滤波处理单元中的第一个滤波处理单元的第一次滤波运算到第X次滤波运算的运算结果对应的输出缓冲子单元在输出数据缓冲单元中的序号依次为0,N,2N,3N...(X-1)N;
所述N个滤波处理单元中的第K个滤波处理单元的第一次滤波运算到第X次滤波运算的运算结果对应的输出缓冲子单元在输出数据缓冲单元中的序号依次为K-1,N+K-1,2N+K-1,3N+K-1...(X-1)N+K-1,其中,K为2~N。
综上所述,本发明具有如下有益效果:
(1)省略了上采样滤波前的插0操作,省略了与0数据进行相乘加的操作;
(2)通过对滤波系数进行排列的方式以及对滤波运算的运算结果分类输出的方式,使得在进行滤波运算时,源数据点与滤波系数已经天然对齐,省略了通过输出数据索引计算与此输出数据对应的输入数据的系数索引的环节,形成第一层次的并行运算结构;
(3)由于源数据点与滤波系数已经天然对齐,在进行滤波运算时,则可以通过串并变换,将分散的源数据点与滤波系数,分别组装成更高位宽的数据、系数,以利用处理器本身的并行处理能力,形成第二层次的并行;
(4)在进行滤波运算时,能够换行连续的乘加运算,将成倍提高处理器的流水线单元的效率,避免处理器流水线空泡,提高了处理器执行效率,形成第三第四层次的并行;
(5)对于第一个滤波处理单元中的源数据点,不进行与滤波系数的乘运算,减少了不必要的滤波运算;
本发明的并行的上采样插值滤波方法,根据数据的位宽,在处理器采用2倍并行执行的情况下,滤波效率提高了9倍;在处理器采用4倍并行执行的情况,滤波效率提高了17倍。在实际的WCDMA系统中,将系统所能支持的高精度搜索用户的数量提高为原来的10倍。
附图说明
图1为本发明实施方式的插值滤波方法的流程图;
图2为本发明实施方式的插值滤波器的架构图。
具体实施方式
由于软件实现上采样插值,其大量的乘加运算需要消耗巨量的处理器计算时间,另外由于滤波运算时,源数据点与滤波系数对齐关系复杂,每计算一个插值后的数据点,都需要先计算每个源数据点对应的插值系数索引,消耗大量额外的辅助计算资源;且由于在计算时,滤波系数与源数据点的对应关系未知,无法实现乘加运算的并行化及流水化,处理器的利用率低。在现代的高性能处理器上,传统的软件实现上采样插值方法只能支持极少量的用户,成为系统的一个瓶颈。
基于现有软件滤波方法的缺点,本文提出了一种适合于RISC处理器实现,具有高度并行运算结构,具有极高运算效率,适用于WCDMA的高度并行的上采样插值滤波方法及插值滤波器,极大提高了插值效率,在软件实现插值的WCDMA系统上支持更多的高精度搜索用户。
本实施方式中,根据上采样插值的滤波系数的特点及滤波运算的特点,设计了一种全新的运算结构,特别适合于软件实现插值滤波。本实施方式的插值滤波器,最大限度的减少了非必要的插值运算及非必要的对于系数对齐的辅助运行,还使并行运算成为可能,充分利用了RISC处理器本身的并行处理能力,在实现插值滤波的并行计算及提高插值运算效率方面,效果非常明显。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
本实施方式中假设插值滤波器的上采样倍数为N,源数据点的个数为X,则插值滤波后得到的总的数据点的个数为X*N,滤波器的阶数L为N*M,即每个源数据点均与M个滤波系数进行滤波运算。
如图1所示,本实施方式的插值滤波方法,包括:
步骤101:设置N个滤波处理单元,每个滤波处理单元中包含滤波数据缓冲单元,滤波数据缓冲单元中包含M个数据缓冲子单元,每个数据缓冲子单元用于缓存一个源数据点D;
步骤102:对于N*M阶滤波器,共包含N*M个滤波系数C,将N*M个滤波系数,分成N组,其中,组1中的滤波系数为第一个滤波处理单元中的源数据点将要乘的滤波系数,组1中的滤波系数的序号为0,N,2N,3N......(M-1)N,组2中的滤波系数为第二个滤波处理单元中的源数据点将要乘的滤波系数,组2中的滤波系数的序号为1,N+1,2N+1,3N+1......(M-1)N+1,以此类推到组N中的滤波系数;
步骤103:分别为第二个滤波处理单元到第N个滤波处理单元设置滤波系数缓冲单元,滤波系数缓冲单元包含M个系数缓冲子单元,滤波系数缓冲单元的M个系数缓冲子单元与对应的滤波数据缓冲单元的M个数据缓冲子单元一一对应,用于缓存对应的数据缓冲子单元中的源数据点将要乘的滤波系数;
由于组1中的滤波系数除C(M-1)N为1外均为0,因此,未对第一个滤波处理单元设置滤波系数缓冲单元。
步骤104:将组2到组N中的滤波系数对应的保存到相应的滤波系数缓冲单元的系数缓冲子单元中;
步骤105:逐一将源数据点并行同步的向每个滤波处理单元的滤波数据缓冲单元进行移位输入,在每个滤波数据缓冲单元中的每个数据缓冲子单元均写入源数据点后,对每个滤波处理单元中的源数据点进行滤波运算;
请参考图2,将源数据点D0~DX并行同步的移位输入到每个滤波处理单元的滤波数据缓冲单元的数据缓冲子单元,每个数据缓冲子单元中缓存一个源数据点。
对每个滤波处理单元中的源数据点进行滤波运算,包括:
对于第一个滤波处理单元,将第一个滤波处理单元的滤波数据缓冲单元当前缓存的源数据点中,最早被输入到第一个滤波处理单元中的源数据点作为本次滤波运算的运算结果。在图2中的瞬时状态,当前最早输入到第一个滤波处理单元中的源数据点为D0,在进行下一次的移位输入后,最早输入到第一个滤波处理单元中的源数据点为D1,D0已移出第一滤波处理单元。
对于第二到第N个滤波处理单元,将滤波处理单元中的滤波数据缓冲单元的数据缓冲子单元划分为多个滤波组,每个滤波组包含多个数据缓冲子单元,对每个滤波组中的数据缓冲子单元中的源数据点进行串并变换,对与滤波组中的数据缓冲子单元对应的系数缓冲子单元中的滤波系数进行串并变换,并行的将滤波组中数据缓冲子单元中的源数据点与对应的系数缓冲子单元中的滤波系数相乘,将乘积相加,得到滤波组的滤波结果;并将每个滤波组的滤波结果相加,并对相加后的结果进行并串变换,得到本次滤波运算的运算结果。图2中每个滤波组包含两个数据缓冲子单元。
步骤106:将每个滤波处理单元的本次滤波运算的运算结果分别输出到在输出数据缓冲单元中的本次滤波运算的运算结果对应的输出缓冲子单元中;
输出数据缓冲单元包含X*N个输出缓冲子单元;
对于第一个滤波处理单元,第一次滤波运算~第X次滤波运算的运算结果对应的输出缓冲子单元在输出数据缓冲单元中的序号依次为0,N,2N,3N...(X-1)N,根据滤波运算的次数将运算结果输出到对应的输出缓冲子单元中;对于滤波后的第一路数据,是直接按滤波后的位置输出。即源数据点的第0个(D0)输出到输出缓冲子单元O0,源数据点的第1个(D1)输出到输出缓冲子单元ON,源数据点的第2个输出到输出缓冲子单元O2N.....源数据点的第X-1个(DX-1)输出到输出缓冲子单元O(X-1)N
对于第K个滤波处理单元,第一次滤波运算到第X次滤波运算的运算结果对应的输出缓冲子单元在输出数据缓冲单元中的序号依次为K-1,N+K-1,2N+K-1,3N+K-1...(X-1)N+K-1,根据滤波运算的次数将运算结果输出到对应的输出缓冲子单元中,其中,K为2~N。
本实施方式中按源数据点所使用的滤波系数的特点,将滤波后得到的数据点分成并行的N路数据。第一路对应的输出缓冲子单元的序号为0,N,2N,3N......(X-1)N,即图1中的O0,ON......O(X-1)N(部分未示出),输出的滤波后的数据点是源数据点与系数C0,CN,C2N......C(X-1)N相乘加;第二路对应的输出缓冲子单元的序号为1,N+1,2N+1,3N+1......(X-1)N+1,即图1中的O1,ON+1......O(X-1)N+1(部分未示出),输出的滤波后的数据点是源数据点与系数C1,系数CN+1,C2N+1......C(M-1)N+1相乘加;依次类推到N路数据。
步骤107:向每个滤波处理单元的滤波数据缓冲单元移位输入下一个源数据点,重复进行对每个滤波处理单元中的源数据点的滤波运算,并将本次滤波运算的运算结果输出到输出数据缓冲单元中的本次滤波运算的运算结果对应的输出缓冲子单元中,直到对每个滤波处理单元进行X次滤波运算,得到X个运算结果并将运算结果输出后结束。
本实施方式中,对于第2到第N个滤波处理单元,对每个滤波处理单元中的源数据点进行滤波运算时,第一次的滤波运算是取源数据点D0~DM-1,与对应的M个滤波系数相乘,D0对应C(M-1)N+1,......,DM-1对应C1得到第一个数据点,第二次滤波运算取D1至DM,与对应的M个滤波系数对应相乘,D1对应C(M-1)N+1,......,DM对应C1,得到第二个数据点,第三到第X个数据点依次类推。
在对每个滤波处理单元中的源数据点进行单次滤波运算的时候,通过对源数据点及滤波系数进行串并变换,使串行计算变为并行计算,充分利用CPU的并行处理能力。在输出时,通过将数据点串行输出到间隔为N的输出缓冲子单元中,即输入输出是串行的,但中间通过串并变换及并串变换,实现并行乘加运算。
在实施本实施方式的方法时,需要根据滤波器的参数,包括滤波器的阶数、滤波系数、上采样倍数、并行计算系数等,按图2所示的结构,构造滤波器的源数据缓冲单元、滤波处理单元及输出数据缓冲单元,设上采样倍数为N,设置N个滤波处理单元,对于第二到第N个滤波处理单元,分别为第二到第N个滤波处理单元设置滤波系数缓冲单元,逐路进行并行滤波。当所有路的滤波运算都结束后,输出数据缓冲单元中的数据,即为插值滤波后的结果。
本实施方式通过分析上采样插值滤波的特点,通过目标滤波数据分类、滤波系数重排、并行乘加运行,特殊运行省略及串并变换、并串变换的输入输出,实现了一种高度并行的滤波器运算结构。
如图2所示,本实施方式提供的插值滤波器,包括:源数据缓冲单元、N个滤波处理单元和输出数据缓冲单元,每个滤波处理单元中均包含滤波数据缓冲单元,滤波数据缓冲单元中包含M个数据缓冲子单元,其中,N为滤波的上采样倍数,M为L/N,L为滤波的阶数;其中:
源数据缓冲单元,用于缓冲源数据点,逐一将源数据点并行同步的向每个滤波处理单元的滤波数据缓冲单元进行移位输入,并在滤波处理单元完成一次滤波运算后,向每个滤波处理单元的滤波数据缓冲单元移位输入下一个源数据点;
滤波处理单元,用于在包含的滤波数据缓冲单元中的每个数据缓冲子单元均写入源数据点后,对滤波数据缓冲单元中的源数据点进行滤波运算,并将本次滤波运算的运算结果输出到在输出数据缓冲单元中的本次滤波运算的运算结果对应的输出缓冲子单元中,在源数据缓冲单元输入下一个源数据点后,对源数据点进行滤波运算,并将本次滤波运算的运算结果输出到输出数据缓冲单元中的本次滤波运算的运算结果对应的输出缓冲子单元中,直到进行X次滤波运算,得到X个运算结果并将运算结果输出,其中,X为源数据点的个数。
N个滤波处理单元中的第一个滤波处理单元,具体用于将第一个滤波处理单元的滤波数据缓冲单元当前缓存的源数据点中,最早被输入到第一个滤波处理单元中的源数据点作为本次滤波运算的运算结果。
N个滤波处理单元中的第二到第N个滤波处理单元包含与滤波数据缓冲单元对应的滤波系数缓冲单元,滤波系数缓冲单元包含与滤波数据缓冲单元的数据缓冲子单元一一对应的M个系数缓冲子单元,M个系数缓冲子单元各自保存对应的数据缓冲子单元中的源数据点的要乘的滤波系数。
第二到第N个滤波处理单元的滤波数据缓冲单元中的数据缓冲子单元分为多个滤波组,每个滤波组包含多个数据缓冲子单元;
第二到第N个滤波处理单元包含与滤波组中的数据缓冲子单元连接的串并变换单元,与滤波组中的数据缓冲子单元对应的系数缓冲子单元连接的串并变换单元,滤波组对应的运算单元以及并串变换单元,其中:
与滤波组中的数据缓冲子单元连接的串并变换单元,用于对连接的数据缓冲子单元中的源数据点进行串并变换;
与滤波组中的数据缓冲子单元对应的系数缓冲子单元连接的串并变换单元,用于对连接的系数缓冲子单元中的滤波系数进行串并变换;
滤波组对应的运算单元分别与与滤波组中的数据缓冲子单元连接的串并变换单元和与滤波组中的数据缓冲子单元对应的系数缓冲子单元连接的串并变换单元连接,用于并行的将滤波组中数据缓冲子单元中的源数据点与对应的系数缓冲子单元中的滤波系数相乘,将乘积相加,得到滤波组的滤波结果,并接收相邻的前一个滤波组对应的运算单元发送的滤波组的滤波结果,将接收到的滤波组的滤波结果与自身得到的滤波组的滤波结果相加,将相加的结果发送给相邻的下一个滤波组对应的运算单元;
并串变换单元,用于对每个滤波组的滤波结果相加后的结果进行并串变换,得到本次滤波运算的运算结果。
输出数据缓冲单元包含X*N个输出缓冲子单元;
N个滤波处理单元中的第一个滤波处理单元的第一次滤波运算到第X次滤波运算的运算结果对应的输出缓冲子单元在输出数据缓冲单元中的序号依次为0,N,2N,3N...(X-1)N;
N个滤波处理单元中的第K个滤波处理单元的第一次滤波运算到第X次滤波运算的运算结果对应的输出缓冲子单元在输出数据缓冲单元中的序号依次为K-1,N+K-1,2N+K-1,3N+K-1...(X-1)N+K-1,其中,K为2~N。
图2所示的滤波器中,最左边的是源数据缓冲单元,最右边是输出数据缓冲单元。本实施方式的滤波器包括两层次的并行运算结构。第一层并行是滤波运算被按系数的特点拆分成了可并行的N路;第二层并行是在每一路计算中,对于每个输出数据点,源数据点与滤波系数的乘加运算,可以通过串并变换后进行并行运算,并行运算的结果再通过串并变换后输出。
每一路的运算结构包括系数缓冲、数据缓冲、系数与数据的串并变换、并行计算及累加计算、并串变换并输出。其中,滤波系数缓冲单元保存了与当前路相关的滤波系数,由前面的系数分类操作得到;数据缓冲从右到左保存了依次位移进入滤波处理单元的源数据点。当缓冲满之后,右边的源数据点移出一个,左边的源数据点移进一个,且每计算完一个输出数据点,进行一次位移。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上该仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (4)

1.一种插值滤波方法,包括:
设置N个滤波处理单元,所述滤波处理单元中包含滤波数据缓冲单元,所述滤波数据缓冲单元中包含M个数据缓冲子单元,其中,N为滤波的上采样倍数,M为L/N,L为滤波的阶数;
逐一将源数据点并行同步的向每个滤波处理单元的滤波数据缓冲单元进行移位输入,在每个滤波数据缓冲单元中的每个数据缓冲子单元均写入源数据点后,对每个滤波处理单元中的源数据点进行滤波运算,并将对每个滤波处理单元的本次滤波运算的运算结果分别输出到在输出数据缓冲单元中的本次滤波运算的运算结果对应的输出缓冲子单元中;
向每个滤波处理单元的滤波数据缓冲单元移位输入下一个源数据点,对每个滤波处理单元中的源数据点进行滤波运算,并将本次滤波运算的运算结果输出到输出数据缓冲单元中的本次滤波运算的运算结果对应的输出缓冲子单元中,直到对每个滤波处理单元进行X次滤波运算,得到X个运算结果并将运算结果输出,其中,X为源数据点的个数;
其中,对每个滤波处理单元中的源数据点进行滤波运算,包括:
对于第一个滤波处理单元,将所述第一个滤波处理单元的滤波数据缓冲单元当前缓存的源数据点中,最早被输入到所述第一个滤波处理单元中的源数据点作为本次滤波运算的运算结果;
对于第二到第N个滤波处理单元,分别设置滤波系数缓冲单元,所述滤波系数缓冲单元包含与滤波数据缓冲单元的数据缓冲子单元一一对应的M个系数缓冲子单元,所述M个系数缓冲子单元各自保存对应的数据缓冲子单元中的源数据点的要乘的滤波系数;
对于第二到第N个滤波处理单元,将滤波处理单元的滤波数据缓冲单元中的数据缓冲子单元划分为多个滤波组,每个滤波组包含多个数据缓冲子单元,对每个滤波组中的数据缓冲子单元中的源数据点进行串并变换,对与滤波组中的数据缓冲子单元对应的系数缓冲子单元中的滤波系数进行串并变换,并行的将滤波组中数据缓冲子单元中的源数据点与对应的系数缓冲子单元中的滤波系数相乘,将乘积相加,得到滤波组的滤波结果;
将每个滤波组的滤波结果相加,并对相加后的结果进行并串变换,得到本次滤波运算的运算结果。
2.如权利要求1所述的方法,其特征在于:
所述输出数据缓冲单元包含X*N个输出缓冲子单元;
将对每个滤波处理单元的本次滤波运算的运算结果分别输出到在输出数据缓冲单元中的本次滤波运算的运算结果对应的输出缓冲子单元中,包括:
对于第一个滤波处理单元,第一次滤波运算到第X次滤波运算的运算结果对应的输出缓冲子单元在输出数据缓冲单元中的序号依次为0,N,2N,3N…(X-1)N,根据滤波运算的次数将运算结果输出到对应的输出缓冲子单元中;
对于第K个滤波处理单元,第一次滤波运算到第X次滤波运算的运算结果对应的输出缓冲子单元在输出数据缓冲单元中的序号依次为K-1,N+K-1,2N+K-1,3N+K-1…(X-1)N+K-1,根据滤波运算的次数将运算结果输出到对应的输出缓冲子单元中,其中,K为2~N。
3.一种插值滤波器,包括:源数据缓冲单元、N个滤波处理单元和输出数据缓冲单元,每个滤波处理单元中均包含滤波数据缓冲单元,所述滤波数据缓冲单元中包含M个数据缓冲子单元,其中,N为滤波的上采样倍数,M为L/N,L为滤波的阶数;其中:
所述源数据缓冲单元,用于缓冲源数据点,逐一将源数据点并行同步的向每个滤波处理单元的滤波数据缓冲单元进行移位输入,并在所述滤波处理单元完成一次滤波运算后,向每个滤波处理单元的滤波数据缓冲单元移位输入下一个源数据点;
所述滤波处理单元,用于在包含的滤波数据缓冲单元中的每个数据缓冲子单元均写入源数据点后,对滤波数据缓冲单元中的源数据点进行滤波运算,并将本次滤波运算的运算结果输出到在输出数据缓冲单元中的本次滤波运算的运算结果对应的输出缓冲子单元中,在所述源数据缓冲单元输入下一个源数据点后,对源数据点进行滤波运算,并将本次滤波运算的运算结果输出到输出数据缓冲单元中的本次滤波运算的运算结果对应的输出缓冲子单元中,直到进行X次滤波运算,得到X个运算结果并将运算结果输出,其中,X为源数据点的个数;
其中,所述N个滤波处理单元中的第一个滤波处理单元,具体用于将所述第一个滤波处理单元的滤波数据缓冲单元当前缓存的源数据点中,最早被输入到所述第一个滤波处理单元中的源数据点作为本次滤波运算的运算结果;
所述N个滤波处理单元中的第二到第N个滤波处理单元包含与滤波数据缓冲单元对应的滤波系数缓冲单元,所述滤波系数缓冲单元包含与滤波数据缓冲单元的数据缓冲子单元一一对应的M个系数缓冲子单元,所述M个系数缓冲子单元各自保存对应的数据缓冲子单元中的源数据点的要乘的滤波系数;
所述第二到第N个滤波处理单元的滤波数据缓冲单元中的数据缓冲子单元分为多个滤波组,每个滤波组包含多个数据缓冲子单元;
所述第二到第N个滤波处理单元包含与滤波组中的数据缓冲子单元连接的串并变换单元,与滤波组中的数据缓冲子单元对应的系数缓冲子单元连接的串并变换单元,滤波组对应的运算单元以及并串变换单元,其中:
所述与滤波组中的数据缓冲子单元连接的串并变换单元,用于对连接的数据缓冲子单元中的源数据点进行串并变换;
所述与滤波组中的数据缓冲子单元对应的系数缓冲子单元连接的串并变换单元,用于对连接的系数缓冲子单元中的滤波系数进行串并变换;
所述滤波组对应的运算单元分别与所述与滤波组中的数据缓冲子单元连接的串并变换单元和所述与滤波组中的数据缓冲子单元对应的系数缓冲子单元连接的串并变换单元连接,用于并行的将滤波组中数据缓冲子单元中的源数据点与对应的系数缓冲子单元中的滤波系数相乘,将乘积相加,得到滤波组的滤波结果,并接收相邻的前一个滤波组对应的运算单元发送的滤波组的滤波结果,将接收到的滤波组的滤波结果与自身得到的滤波组的滤波结果相加,将相加的结果发送给相邻的下一个滤波组对应的运算单元;
所述并串变换单元,用于对每个滤波组的滤波结果相加后的结果进行并串变换,得到本次滤波运算的运算结果。
4.如权利要求3所述的滤波器,其特征在于:
所述输出数据缓冲单元包含X*N个输出缓冲子单元;
所述N个滤波处理单元中的第一个滤波处理单元的第一次滤波运算到第X次滤波运算的运算结果对应的输出缓冲子单元在输出数据缓冲单元中的序号依次为0,N,2N,3N…(X-1)N;
所述N个滤波处理单元中的第K个滤波处理单元的第一次滤波运算到第X次滤波运算的运算结果对应的输出缓冲子单元在输出数据缓冲单元中的序号依次为K-1,N+K-1,2N+K-1,3N+K-1…(X-1)N+K-1,其中,K为2~N。
CN201310054152.5A 2013-02-20 2013-02-20 一种插值滤波方法及插值滤波器 Active CN103997355B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201310054152.5A CN103997355B (zh) 2013-02-20 2013-02-20 一种插值滤波方法及插值滤波器
PCT/CN2013/089334 WO2014127663A1 (zh) 2013-02-20 2013-12-13 一种插值滤波方法及插值滤波器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310054152.5A CN103997355B (zh) 2013-02-20 2013-02-20 一种插值滤波方法及插值滤波器

Publications (2)

Publication Number Publication Date
CN103997355A CN103997355A (zh) 2014-08-20
CN103997355B true CN103997355B (zh) 2018-01-19

Family

ID=51311375

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310054152.5A Active CN103997355B (zh) 2013-02-20 2013-02-20 一种插值滤波方法及插值滤波器

Country Status (2)

Country Link
CN (1) CN103997355B (zh)
WO (1) WO2014127663A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109039968B (zh) * 2018-09-13 2021-03-16 旺微科技(上海)有限公司 一种基于窄带物联网终端的数据接收方法及装置
CN109802691A (zh) * 2019-01-24 2019-05-24 中科驭数(北京)科技有限公司 序列数据的滤波方法及装置
CN114063926B (zh) * 2021-11-22 2024-03-15 上海创远仪器技术股份有限公司 基于fpga硬件实现数据间插值处理的方法、装置、处理器及其计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11145779A (ja) * 1997-11-04 1999-05-28 Akyufeezu Kk 周波数可変型デジタルフィルタ
CN1422089A (zh) * 2001-09-07 2003-06-04 三星Thales株式会社 使用查找表的块内插滤波器结构
CN1449142A (zh) * 2002-03-29 2003-10-15 上海贝尔有限公司 码分多址系统中多用户多径搜索时求取相关值的方法和装置
CN102158451A (zh) * 2010-02-11 2011-08-17 中兴通讯股份有限公司 高速多载波多相内插滤波方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100499371C (zh) * 2005-12-26 2009-06-10 中兴通讯股份有限公司 一种可编程内插滤波器装置及其实现方法
CN101072019B (zh) * 2007-04-19 2010-05-19 华为技术有限公司 一种滤波器及其滤波方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11145779A (ja) * 1997-11-04 1999-05-28 Akyufeezu Kk 周波数可変型デジタルフィルタ
CN1422089A (zh) * 2001-09-07 2003-06-04 三星Thales株式会社 使用查找表的块内插滤波器结构
CN1449142A (zh) * 2002-03-29 2003-10-15 上海贝尔有限公司 码分多址系统中多用户多径搜索时求取相关值的方法和装置
CN102158451A (zh) * 2010-02-11 2011-08-17 中兴通讯股份有限公司 高速多载波多相内插滤波方法和装置

Also Published As

Publication number Publication date
WO2014127663A1 (zh) 2014-08-28
CN103997355A (zh) 2014-08-20

Similar Documents

Publication Publication Date Title
CN110765709B (zh) 一种基于fpga的基2-2快速傅里叶变换硬件设计方法
CN101553808A (zh) 流水线fft架构和方法
CN105045766B (zh) 基于3072点快速傅里叶变换的数据处理方法及处理器
CN103970718A (zh) 一种快速傅里叶变换实现装置及方法
CN202218240U (zh) 一种变速率变路数数字分路装置
CN103997355B (zh) 一种插值滤波方法及插值滤波器
CN105117196B (zh) 一种基于FPGA的并行结构Sinc插值方法
CN101282322A (zh) 一种应用于无线中程传感网物理层的内插数字滤波器装置
CN101227298B (zh) 基于片上网络的路由器功耗确定方法
Meinl et al. Realtime FPGA-based processing unit for a high-resolution automotive MIMO radar platform
CN105183701A (zh) 1536点fft处理方式及相关设备
CN103853524A (zh) 一种乘法器装置和实现乘法运算的方法
CN103546397B (zh) 支持乱序的自路由Omega网络
CN101331479A (zh) 循环快速傅里叶变换
CN101887406B (zh) 一种fft/ifft处理方法及一种fft/ifft处理器
CN109088617A (zh) 比率可变数字重采样滤波器
CN103955584A (zh) 基于多路径路由的片上网络重组缓存的上界优化方法
CN101494505A (zh) 一种面积优化的流水结构水声扩频通信带通信号捕获电路
CN103186476B (zh) 一种用于多流的数据缓存方法和装置
CN102801663B (zh) 一种用于深空探测器的多档码速率估计方法
CN102739571B (zh) 接收端iq路数据的校准方法、装置及系统
CN103457573A (zh) 一种数据率自适应的高斯滤波器
CN102158200B (zh) 一种多制式数字滤波实现方法及系统
CN107145457B (zh) 基于片上ram提升多通道有效数据传输的装置及方法
CN102339273B (zh) 一种基于上采样技术的fft/ifft近似计算方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20140820

Assignee: SANECHIPS TECHNOLOGY Co.,Ltd.

Assignor: ZTE Corp.

Contract record no.: 2015440020319

Denomination of invention: Interpolation filtering method and interpolation filter

License type: Common License

Record date: 20151123

LICC Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20221118

Address after: 518055 Zhongxing Industrial Park, Liuxian Avenue, Xili street, Nanshan District, Shenzhen City, Guangdong Province

Patentee after: SANECHIPS TECHNOLOGY Co.,Ltd.

Address before: 518057 Ministry of justice, Zhongxing building, South Science and technology road, Nanshan District hi tech Industrial Park, Shenzhen, Guangdong

Patentee before: ZTE Corp.

TR01 Transfer of patent right