CN1330089C - 有限脉冲响应滤波与欠采样相结合的方法 - Google Patents
有限脉冲响应滤波与欠采样相结合的方法 Download PDFInfo
- Publication number
- CN1330089C CN1330089C CNB2005100251890A CN200510025189A CN1330089C CN 1330089 C CN1330089 C CN 1330089C CN B2005100251890 A CNB2005100251890 A CN B2005100251890A CN 200510025189 A CN200510025189 A CN 200510025189A CN 1330089 C CN1330089 C CN 1330089C
- Authority
- CN
- China
- Prior art keywords
- filter
- data
- input
- group
- filter coefficient
- 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
Links
Images
Landscapes
- Filters That Use Time-Delay Elements (AREA)
- Complex Calculations (AREA)
Abstract
一种有限脉冲响应滤波与欠采样相结合的方法,设N为滤波器系数个数,k为欠采样倍数,N>k,取N=Ak+B,0<B≤k;步骤为:将滤波器系数分k组,B=k时,每组A+1个系数;0<B<k时,前B组每组A+1个系数,其余k-B组每组A个系数;输入数据根据其在序列中位置,和相应的一组滤波器系数相乘,将该组乘积分别累加到与所乘滤波器系数相应的移位寄存器中;每处理k个输入数据,将累加结果移位一次;经过N个数据输入,输出当前累加数据;每经过k次数据输入,输出当前累加的数据。采用本方法,长度为N的FIR滤波器,仅需A或A+1个移位寄存器,数量仅为一般算法的1/k或略多;对于每个滤波输入,仅需A或A+1次乘法和加法,运算量为一般算法的1/k或略多。
Description
技术领域
本发明涉及一种有限脉冲响应(Finite Impulse Response,FIR)滤波与欠采样相结合的方法,具体地说,涉及在图像缩小领域中应用的一种节约存储单元的欠采样FIR数字滤波器的实现方法。
背景技术
为了避免在欠采样后出现频域混叠现象,通常应先对被采样的信号进行低通滤波,压缩其频带到Nyqiust频率以下,再进行欠采样。低通滤波器的频带越窄,滤波器的阶数(即FIR抽头系数的个数)越多。所以,当使用相同的FIR滤波器核函数时,FIR滤波器抽头系数个数与欠采样倍数成正比。
目前采用的一种FIR滤波器结构如图1所示。参阅图1,这种结构下,对输入数据进行移位寄存,因而输入数据流与相应抽头系数相乘后累加得到一个滤波输出结果。另一种FIR滤波器结构如图2所示。参阅图2,这种结构下,当一个输入数据到达时,与所有的抽头系数相乘,乘积分别加入各个累加器中,因此进行移位寄存的是累加的中间结果,移位寄存器的最后一级输出即为所需要的当前滤波器输出。
对于一个长度为N的FIR滤波器,这两种结构都需要(N-1)个存储单元;此外,对于每一个滤波的输入,都需要进行(N+1)次乘法和N次加法。在欠采样过程中,有些滤波器输出结果是不需要的,所以采用这两种结构都会造成很多无用的计算量。
图像数据传输通常是以行的形式传输的,图像缩小算法通常采取:
行缩小:以行的形式传输的输入数据,经过一个行FIR低通滤波器平滑后,进行欠采样。
列缩小:以行的形式传输的经过行缩小的数据,经过一个列FIR低通滤波器平滑后,进行欠采样。
因为图像数据通常是以行的形式传输,若FIR滤波器的长度为N,进行列缩小处理时,产生当前输出的滤波运算需将前(N-1)行的图像数据储存下来。存储一行图像数据的存储器我们称之为行存储器,行存储器耗费了大量的硬件资源,所以图像处理中要极力减少行存储器的个数。在列缩小FIR中减少一个存储单元,就是减少一条行存储器,所以设计良好的欠采样FIR滤波器结构就是图像压缩的关键。
进一步,当使用相同的FIR滤波器核函数时, FIR滤波器抽头系数个数与图像缩小倍数成正比。所以当要支持不同的缩小倍数,所需的行存储器也就正比于图像缩小倍数。
已有的系统通常采用多级逐渐缩小的方法来实现较大的缩小倍数,如对于缩小倍数8,可分三级,每级缩小2倍。其每级都需要一定的行存储器。
发明内容
本发明的目的在于,提供一种有限脉冲响应滤波与欠采样相结合的方法,克服目前的图像缩小中需要大量的行存储器和大量运算,耗费大量硬件资源的技术问题。
为了达到上述目的,本发明的技术方案如下:一种FIR滤波与欠采样相结合方法,设N为滤波器系数个数值,k为欠采样倍数值(即缩小倍数),其中N和k均为自然数,且N>k,则取自然数A为(N-1)除以k的商,取自然数B=N-Ak,即有N=Ak+B,0<B≤k;该方法包括如下步骤:
将滤波器系数分为k组;设N个滤波器系数为[h(0),h(1),h(2),...,h(N-1)],则分成k组为{[h(0),h(k),h(2k)…,h(Ak)],[h(1),h(k+1),h(2k+1)...],......[h(k-1),h(2k-1),h(3k-1)...]},每组A或A+1个系数;
当B=k时,每组为A+1个滤波器系数;当0<B<k时,前B组每组为A+1个滤波器系数,其余k-B组每组为A个滤波器系数;
输入数据根据其在序列中的位置t,t的取值范围为0,1,2...,与相应的一组滤波器系数一一相乘,每组的滤波器系数对应连接一个移位寄存器,然后将得到的各个乘积分别累加到对应的移位寄存器中:设t=nk+m,其中n为t除以k的商,m为t除以k的余数,满足n,m=0,1,2...,且m<k;位置t的输入数据将和k组滤波器系数中的第m+1组相乘,并将各个乘积分别累加到A或A+1个移位寄存器中;
其中,t=0,1,...,k-1时,输入数据仅与相应组中第1个系数相乘;t=k,k+1,...,2k-1时,输入数据仅与相应组中第1和第2个系数相乘;...;t=(A-1)k,(A-1)k+1,...,Ak-1时,输入数据与相应组中第1,2,...,k个系数相乘;
电路设计中,每k个滤波器系数连接一个多路选择器的输入端,通过控制多路选择器来即可实现以上滤波器系数分组相乘和累加的功能;
每处理k个输入数据,将上述累加结果通过移位寄存器移位一次,累加到下一个移位寄存器中;输入数据的位置t=nk+m,当满足m=0时,进行一次移位累加;
经过N次数据输入后,输出当前累加得到的第一个数据;
然后每经过k次数据输入后,输出当前累加得到的数据。
采用上述方法,一个长度为N的FIR滤波器,仅需要A个或A+1个移位寄存器,与现有FIR滤波器相比,移位寄存器数量仅为一般算法的1/k或略多,而相对于每一个滤波的输入,仅需要进行A次或A+1次乘法和加法,所需的运算量为一般算法的1/k或略多。从而简化结构,降低成本,同时降低运算量。当FIR滤波器的核函数一定时,(N正比于k,则A大体保持不变),使用相同数量的运算单元,可在一级完成不同倍数的图像缩小操作。
B=1时,移位寄存器为A个;否则移位寄存器为A+1个。
每k个滤波器系数连接一个多路选择器的输入端。
B=1时,所述多路选择器为A个。
B≠1时,所述多路选择器为A+1个。
所述多路选择器为k路。
所述多路选择器中的最后一个多路选择器有k-B个端口置零。
乘法器、加法器为A+1个。
附图说明
图1为一种现有FIR滤波器的结构示意图;
图2为另一种现有FIR滤波器的结构示意图;
图3为以缩小率等于2,长度为8为例FIR滤波器的结构示意图;
图4为以缩小率等于3,长度为12为例FIR滤波器的结构示意图;
图5为以缩小率等于2,长度为9为例FIR滤波器的结构示意图。
具体实施方式
为了便于更好地理解本发明的结构和功能,下面结合图3至图5进行详细说明。
为了解释清楚本发明的有限脉冲响应滤波与欠采样相结合方法的原理,现在建立一个简单模型:设N为滤波器系数个数值,k为欠采样倍数值(即缩小倍数),其中N和k均为自然数,且N>k,则取自然数A为(N-1)除以k的商,取自然数B=N-Ak,即有N=Ak+B,0<B≤k;该方法包括如下步骤:
将滤波器系数分为k组;设N个滤波器系数为[h(0),h(1),h(2),...,h(N-1)],则分成k组为{[h(0),h(k),h(2k)...,h(Ak)],[h(1),h(k+1),h(2k+1)...],......[h(k-1),h(2k-1),h(3k-1)...]},每组A或A+1个系数;
当B=k时,每组为A+1个滤波器系数;当0<B<k时,前B组每组为A+1个滤波器系数,其余k-B组每组为A个滤波器系数;
输入数据根据其在序列中的位置t,t的取值范围为0,1,2...,与相应的一组滤波器系数一一相乘,每组的滤波器系数对应连接一个移位寄存器,然后将得到的各个乘积分别累加到对应的移位寄存器中:设t=nk+m,其中n为t除以k的商,m为t除以k的余数,满足n,m=0,1,2...,且m<k;位置t的输入数据将和k组滤波器系数中的第m+1组相乘,并将各个乘积分别累加到A或A+1个移位寄存器中;
其中,t=0,1,...,k-1时,输入数据仅与相应组中第1个系数相乘;t=k,k+1,...,2k-1时,输入数据仅与相应组中第1和第2个系数相乘;...;t=(A-1)k,(A-1)k+1,...,Ak-1时,输入数据与相应组中第1,2,...,k个系数相乘;
电路设计中,每k个滤波器系数连接一个多路选择器的输入端,通过控制多路选择器来即可实现以上滤波器系数分组相乘和累加的功能;
每处理k个输入数据,将上述累加结果通过移位寄存器移位一次,累加到下一个移位寄存器中;输入数据的位置t=nk+m,当满足m=0时,进行一次移位累加;
经过N次数据输入后,输出当前累加得到的第一个数据;
然后每经过k次数据输入后,输出当前累加得到的数据。
因为某些滤波输出结果在做欠采样时被丢掉,所以采用此种结构的滤波器后,这部分不需要的计算量可以省去。
下面根据上述发明原理,举出3个具体实施例进行说明。
实施例一:N=8,k=2
参阅图3,以缩小系数等于2为例,假设输入数据为a0,a1,a2,a3......,滤波器抽头系数为h0,h1,h2,h3,h4,h5,h6,h7。考虑欠采样,即滤波之后的结果每两个取一个,则:
y(t)=h0*a(2t)+h1*a(2t+1)+h2*a(2t+2)+h3*a(2t+3)+h4*a(2t+4)+h5*a(2t+5)+h6*a(2t+6)+h7*a(2t+7)
y0=h0*a0+h1*a1+h2*a2+h3*a3+h4*a4+h5*a5+h6*a6+h7*a7
y1=h0*a2+h1*a3+h2*a4+h3*a5+h4*a6+h5*a7+h6*a8+h7*a9
y2=h0*a4+h1*a5+h2*a6+h3*a7+h4*a8+h5*a9+h6*a10+h7*a11
y3=h0*a6+h1*a7+h2*a8+h3*a9+h4*a10+h5*a11+h6*a12+h7*a13
y4=h0*a8+h1*a9+h2*a10+h3*a11+h4*a12+h5*a13+h6*a14+h7*a15
以下s0,s1,s2,s3表示用于移位寄存器的存储单元。
t=0时,a0到达
s0=h0*a0
s1=0
s2=0
s3=0
t=1时,a1到达
s0=s0+h1*a1=h0*a0+h1*a1
s1=0
s2=0
s3=0
t=2时,a2到达(移位一次)
s0=h0*a2
s1=s0+h2*a2=h0*a0+h1*a1+h2*a2
s2=0
s3=0
t=3时,a3到达
s0=s0+h1*a3=h0*a2+h1*a3
s1=s1+h3*a3=h0*a0+h1*a1+h2*a2+h3*a3
s2=0
s3=0
t=4时,a4到达(移位一次)
s0=h0*a4
s1=s0+h2*a4=h0*a2+h1*a3+h2*a4
s2=s1+h4*a4=h0*a0+h1*a1+h2*a2+h3*a3+h4*a4
s3=0
t=5时, a5到达
s0=s0+h1*a5=h0*a4+h1*a5
s1=s1+h3*a5=h0*a2+h1*a3+h2*a4+h3*a5
s2=s2+h5*a5=h0*a0+h1*a1+h2*a2+h3*a3+h4*a4+h5*a5
s3=0
t=6时,a6到达(移位一次)
s0=h0*a6
s1=s0+h2*a6=h0*a4+h1*a5+h2*a6
s2=s1+h4*a6=h0*a2+h1*a3+h2*a4+h3*a5+h4*a6
s3=s2+h6*a6=h0*a0+h1*a1+h2*a2+h3*a3+h4*a4+h5*a5+h6*a6
t=7时,a7到达
s0=s0+h1*a7=h0*a6+h1*a7
s1=s1+h3*a7=h0*a4+h1*a5+h2*a6+h3*a7
s2=s2+h5*a7=h0*a2+h1*a3+h2*a4+h3*a5+h4*a6+h5*a7
s3=s3+h7*a7=h0*a0+h1*a1+h2*a2+h3*a3+h4*a4+h5*a5+h6*a6+h7*a7
同时,输出y0=s3
t=8时,a8到达(移位一次)
s0=h0*a8
s1=s0+h2*a8=h0*a6+h1*a7+h2*a8
s2=s1+h4*a8=h0*a4+h1*a5+h2*a6+h3*a7+h4*a8
s3=s2+h6*a8=h0*a2+h1*a3+h2*a4+h3*a5+h4*a6+h5*a7+h6*a8
t=9时,a9到达
s0=s0+h1*a9=h0*a8+h1*a9
s1=s1+h3*a9=h0*a6+h1*a7+h2*a8+h3*a9
s2=s2+h5*a9=h0*a4+h1*a5+h2*a6+h3*a7+h4*a8+h5*a9
s3=s3+h7*a9=h0*a2+h1*a3+h2*a4+h3*a5+h4*a6+h5*a7+h6*a8+h7*a9
同时,输出y1=s3
t=10时,a10到达(移位一次)
s0=h0*a10
s1=s0+h2*a10=h0*a8+h1*a9+h2*a10
s2=s1+h4*a10=h0*a6+h1*a7+h2*a8+h3*a9+h4*a10
s3=s2+h6*a10=h0*a4+h1*a5+h2*a6+h3*a7+h4*a8+h5*a9+h6*a10
t=11时,a11到达
s0=s0+h1*a11=h0*a10+h1*a11
s1=s1+h3*a11=h0*a8+h1*a9+h2*a10+h3*a11
s2=s2+h5*a11=h0*a6+h1*a7+h2*a8+h3*a9+h4*a10+h5*a11
s3=s3+h7*a11=h0*a4+h1*a5+h2*a6+h3*a7+h4*a8+h5*a9+h6*a10+h7*a11
同时,输出y2=s3
t=2n时,a(t)到达(移位一次)
s0=h0*a(t)
s1=s0+h2*a(t)=h0*a(t-2)+h1*a(t-1)+h2*a(t)
s2=s1+h4*a(t)=h0*a(t-4)+h1*a(t-3)+h2*a(t-2)+h3*a(t-1)+h4*a(t)
s3=s2+h6*a(t)=h0*a(t-6)+h1*a(t-5)+h2*a(t-4)+h3*a(t-3)+h4*a(t-2)+h5*a(t-1)+h6*a(t)
t=2n+1时,a(t)到达
s0=s0+h1*a(t)=h0*a(t-1)+h1*a(t)
s1=s1+h2*a(t)=h0*a(t-3)+h1*a(t-2)+h2*a(t-1)+h3*a(t)
s2=s2+h5*a(t)=h0*a(t-5)+h1*a(t-4)+h2*a(t-3)+h3*a(t-2)+h4*a(t-1)+h5*a(t)
s3=s3+h7*a(t)=h0*a(t-7)+h1*a(t-6)+h2*a(t-5)+h3*a(t-4)+h4*a(t-3)+h5*a(t-2)+h6*a(t-1)+h7*a(t)
同时,输出
y((t-7)/2)=s3=h0*a(t-7)+h1*a(t-6)+h2*a(t-5)+h3*a(t-4)+h4*a(t-3)+h5*a(t-2)+h6*a(t-1)+h7*a(t)
根据我们采用的滤波器实现结构,我们可以将滤波器抽头系数分为两组,[h0 h2 h4 h6]和[h1 h3 h5 h7]。输入的数据根据其在序列中的位置,乘以相应的一组滤波器系数,然后将这组乘积分别加入相应累加器。累加寄存器在这种缩小系数为2的情况下,每处理两个输入数据移位一次。最后一级移位寄存器的输出即为经过滤波及欠采样的结果。由于不需要输出的滤波结果就不做计算,且只需要4条行存储器,因此这种实现方法即节省了运算量,也节省了存储单元。
实施例二:N=12,k=3
参阅图4,以缩小系数等于3为例,假设输入数据为a0,a1,a2,a3......,滤波器抽头系数为h0,h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11。考虑欠采样,即滤波之后的结果每三个取一个。滤波器系数分为三组[h0 h3 h6 h9],[h1 h4 h7h10],[h2 h5 h8 h11]。每次选择一组滤波器系数用于计算,而累加寄存器的移位,每处理三个输入数据移位一次。由上面的分析,可知此处也只需要4个乘法器和4个行存储器。
具体步骤为:
y(t)=h0*a(3t)+h1*a(3t+1)+h2*a(3t+2)+h3*a(3t+3)+h4*a(3t+4)+h5*a(3t+5)+h6*a(3t+6)+h7*a(3t+7)+h8*a(3t+8)+h9*a(3t+9)+h10*a(3t+10)+h11*a(3t+11)
y0=h0*a0+h1*a1+h2*a2+h3*a3+h4*a4+h5*a5+h6*a6+h7*a7+h8*a8+h9*a9+h10*a10+h11*a11
y1=h0*a3+h1*a4+h2*a5+h3*a6+h4*a7+h5*a8+h6*a9+h7*a10+h8*a11+h9*a12+h10*a13+h11*a14
y2=h0*a6+h1*a7+h2*a8+h3*a9+h4*a10+h5*a11+h6*a12+h7*a13+h8*a14+h9*a15+h10*a16+h11*a17
以下s0,s1,s2,s3表示用于移位寄存器的存储单元。
t=0时,a0到达
s0=h0*a0
s1=0
s2=0
s3=0
t=1时,a1到达
s0=s0+h1*a1=h0*a0+h1*a1
s1=0
s2=0
s3=0
t=2时,a2到达
s0=s0+h2*a2=h0*a0+h1*a1+h2*a2
s1=0
s2=0
s3=0
t=3时,a3到达(移位一次)
s0=h0*a3
s1=s0+h3*a3=h0*a0+h1*a1+h2*a2+h3*a3
s2=0
s3=0
t=4时,a4到达
s0=s0+h1*a4=h0*a3+h1*a4
s1=s1+h4*a4=h0*a0+h1*a1+h2*a2+h3*a3+h4*a4
s2=0
s3=0
t=5时,a5到达
s0=s0+h2*a5=h0*a3+h1*a4+h2*a5
s1=s1+h5*a5=h0*a0+h1*a1+h2*a2+h3*a3+h4*a4+h5*a5
s2=0
s3=0
t=6时,a6到达(移位一次)
s0=h0*a6
s1=s0+h3*a6=h0*a3+h1*a4+h2*a5+h3*a6
s2=s1+h6*a6=h0*a0+h1*a1+h2*a2+h3*a3+h4*a4+h5*a5+h6*a6
s3=0
t=7时,a7到达
s0=s0+h1*a7=h0*a6+h1*a7
s1=s1+h4*a7=h0*a3+h1*a4+h2*a5+h3*a6+h4*a7
s2=s2+h7*a7=h0*a0+h1*a1+h2*a2+h3*a3+h4*a4+h5*a5+h6*a6+h7*a7
s3=0
t=8时,a8到达
s0=s0+h2*a8=h0*a6+h1*a7+h2*a8
s1=s1+h5*a8=h0*a3+h1*a4+h2*a5+h3*a6+h4*a7+h5*a8
s2=s2+h8*a8=h0*a0+h1*a1+h2*a2+h3*a3+h4*a4+h5*a5+h6*a6+h7*a7+h8*a8
s3=0
t=9时,a9到达(移位一次)
s0=h0*a9=h0*a9
s1=s0+h3*a9=h0*a6+h1*a7+h2*a8+h3*a9
s2=s1+h6*a9=h0*a3+h1*a4+h2*a5+h3*a6+h4*a7+h5*a8+h6*a9
s3=s2+h9*a9=h0*a0+h1*a1+h2*a2+h3*a3+h4*a4+h5*a5+h6*a6+h7*a7+h8*a8+h9*a9
t=10时,a10到达
s0=s0+h1*a10=h0*a9+h1*a10
s1=s1+h4*a10=h0*a6+h1*a7+h2*a8+h3*a9+h4*a10
s2=s2+h7*a10=h0*a3+h1*a4+h2*a5+h3*a6+h4*a7+h5*a8+h6*a9+h7*a10
s3=s3+h10*a10=h0*a0+h1*a1+h2*a2+h3*a3+h4*a4+h5*a5+h6*a6+h7*a7+h8*a8+h9*a9+h10*a10
t=11时,a11到达
s0=s0+h2*a11=h0*a9+h1*a10+h2*a11
s1=s1+h5*a11=h0*a6+h1*a7+h2*a8+h3*a9+h4*a10+h5*a11
s2=s2+h8*a11=h0*a3+h1*a4+h2*a5+h3*a6+h4*a7+h5*a8+h6*a9+h7*a1 0+h8*a11
s3=s3+h11*a11=h0*a0+h1*a1+h2*a2+h3*a3+h4*a4+h5*a5+h6*a6+h7*a7+h8*a8+h9*a9+h10*a10+h11*a11
同时,输出y0=s3
t=12时,a12到达(移位一次)
s0=h0*a12=h0*a12
s1=s0+h3*a12=h0*a9+h1*a10+h2*a11+h3*a12
s2=s1+h6*a12=h0*a6+h1*a7+h2*a8+h3*a9+h4*a10+h5*a11+h6*a12
s3=s2+h9*a12=h0*a3+h1*a4+h2*a5+h3*a6+h4*a7+h5*a8+h6*a9+h7*a10+h8*a11+h9*a12
t=13时, a13到达
s0=s0+h1*a13=h0*a12+h1*a13
s1=s1+h4*a13=h0*a9+h1*a10+h2*a11+h3*a12+h4*a13
s2=s2+h7*a13=h0*a6+h1*a7+h2*a8+h3*a9+h4*a10+h5*a11+h6*a12+h7*a13
s3=s3+h10*a13=h0*a3+h1*a4+h2*a5+h3*a6+h4*a7+h5*a8+h6*a9+h7*a10+h8*a11+h9*a12+h10*a13
t=14时,a14到达
s0=s0+h2*a14=h0*a12+h1*a13+h2*a14
s1=s1+h5*a14=h0*a9+h1*a10+h2*a11+h3*a12+h4*a13+h5*a14
s2=s2+h8*a14=h0*a6+h1*a7+h2*a8+h3*a9+h4*a10+h5*a11+h6*a12+h7*a13+h8*a14
s3=s3+h11*a14=h0*a3+h1*a4+h2*a5+h3*a6+h4*a7+h5*a8+h6*a9+h7*a10+h8*a11+h9*a12+h10*a13+h11*a14
同时,输出y1=s3
......
t=3n时,a(t)到达(移位一次)
s0=h0*a(t)
s1=s0+h3*a(t)=h0*a(t-3)+h1*a(t-2)+h2*a(t-1)+h3*a(t)
s2=s1+h6*a(t)=h0*a(t-6)+h1*a(t-5)+h2*a(t-4)+h3*a(t-3)+h4*a(t-2)+h5*a(t-1)+h6*a(t)
s3=s2+h9*a(t)=h0*a(t-9)+h1*a(t-8)+h2*a(t-7)+h3*a(t-6)+h4*a(t-5)+h5*a(t-4)+h6*a(t-3)+h7*a(t-2)+h8*a(t-1)+h9*a(t)
t=3n+1时,a(t)到达
s0=s0+h1*a(t)=h0*a(t-1)+h1*a(t)
s1=s1+h4*a(t)=h0*a(t-4)+h1*a(t-3)+h2*a(t-2)+h3*a(t-1)+h4*a(t)
s2=s2+h7*a(t)=h0*a(t-7)+h1*a(t-6)+h2*a(t-5)+h3*a(t-4)+h4*a(t-3)+h5*a(t-2)+h6*a(t-1)+h7*a(t)
s3=s3+h10*a(t)=h0*a(t-10)+h1*a(t-9)+h2*a(t-8)+h3*a(t-7)+h4*a(t-6)+h5*a(t-5)+h6*a(t-4)+h7*a(t-3)+h8*a(t-2)+h9*a(t-1)+h10*a(t)
t=3n+2时,a(t)到达
s0=s0+h2*a(t)=h0*a(t-2)+h1*a(t-1)+h2*a(t)
s1=s1+h5*a(t)=h0*a(t-5)+h1*a(t-4)+h2*a(t-3)+h3*a(t-2)+h4*a(t-1)+h5*a(t)
s2=s2+h8*a(t)=h0*a(t-8)+h1*a(t-7)+h2*a(t-6)+h3*a(t-5)+h4*a(t-4)+h5*a(t-3)+h6*a(t-2)+h7*a(t-1)+h8*a(t)
s3=s3+h11*a(t)=h0*a(t-11)+h1*a(t-10)+h2*a(t-9)+h3*a(t-8)+h4*a(t-7)+h5*a(t-6)+h6*a(t-5)+h7*a(t-4)+h8*a(t-3)+h9*a(t-2)+h10*a(t-1)+h11*a(t)
同时,输出
y((t-11)/3)=s3
实施例三:N=9,k=2
参阅图5,以缩小系数等于2为例,假设输入数据为a0,a1,a2,a3......,滤波器抽头系数为h0,h1,h2,h3,h4,h5,h6,h7,h8。我们可以将滤波器抽头系数分为两组,[h0 h2 h4 h6 h8]和[h1 h3 h5 h7]。输入的数据根据在其在序列中的位置,乘以相应的一组滤波器系数,然后将这组乘积分别加入相应累加器。累加寄存器在这种缩小系数为2的情况下,每处理两个输入数据移位一次。此种情况为缩小系数为2,且只需要4条行存储器的极限情况(即B=1时),此处需要5个乘法器,h8连接最后一个乘法器。例如当a8输入时,a8*h8的结果加上寄存器s3中的值之后即可输出,而a8*h6的结果加上寄存器s2中的值恰好可存入寄存器s3。由于不需要输出的滤波结果就不做计算,且只需要4条行存储器,因此这种实现方法即节省了运算量,也节省了存储单元。
如果在其他情况下,若分组后多余2个以上的抽头系数,即B>1,则可以增加一个多路选择器,多余的多路选择器输入口可以置零。
虽然本发明的实施例已经举例说明并被显示和描述,但应当理解,熟知本领域的人员对本发明做出的各种修改或者替代,都不脱离本发明的保护范围。例如,对滤波器系数作移位,而某个输出对应的中间结果始终存放在一个存储器中。
Claims (8)
1、一种有限脉冲响应滤波与欠采样相结合的方法,其特征在于,设N为滤波器系数个数值,k为欠采样倍数值,其中N和k均为自然数,且N>k,取自然数A为(N-1)除以k的商,取自然数B=N-Ak,即有N=Ak+B,0<B≤k;该方法包括如下步骤:
将滤波器系数分为k组;设N个滤波器系数为[h(0),h(1),h(2),...,h(N-1)],则分成k组为{[h(0),h(k),h(2k)...,h(Ak)],[h(1),h(k+1),h(2k+1)...],......[h(k-1),h(2k-1),h(3k-1)...]},每组A或A+1个系数;
当B=k时,每组为A+1个滤波器系数;当0<B<k时,前B组每组为A+1个滤波器系数,其余k-B组每组为A个滤波器系数;
输入数据根据其在序列中的位置t,t的取值范围为0,1,2...,与相应的一组滤波器系数一一相乘,每组的滤波器系数对应连接一个移位寄存器,然后将得到的各个乘积分别累加到对应的移位寄存器中:设t=nk+m,其中n为t除以k的商,m为t除以k的余数,满足n,m=0,1,2...,且m<k;位置t的输入数据将和k组滤波器系数中的第n+1组相乘,并将各个乘积分别累加到A或A+1个移位寄存器中;
其中,t=0,1,...,k-1时,输入数据仅与相应组中第1个系数相乘;t=k,k+1,...,2k-1时,输入数据仅与相应组中第1和第2个系数相乘;...;t=(A-1)k,(A-1)k+1,...,Ak-1时,输入数据与相应组中第1,2,...,k个系数相乘;
每k个滤波器系数连接一个多路选择器的输入端;
每处理k个输入数据,将上述累加结果通过移位寄存器移位一次,累加到下一个移位寄存器中;输入数据的位置t=nk+m,当满足m=0时,进行一次移位累加;
经过N次数据输入后,输出当前累加得到的第一个数据;
然后每经过k次数据输入后,输出当前累加得到的数据。
2、如权利要求1所述的有限脉冲响应滤波与欠采样相结合的方法,其特征在于,B=1时,移位寄存器为A个;否则移位寄存器为A+1个。
3、如权利要求1所述的有限脉冲响应滤波与欠采样相结合的方法,其特征在于,B=1时,所述多路选择器为A个。
4、如权利要求1所述的有限脉冲响应滤波与欠采样相结合的方法,其特征在于,B≠1时,所述多路选择器为A+1个。
5、如权利要求4所述的有限脉冲响应滤波与欠采样相结合的方法,其特征在于,所述多路选择器为k路。
6、如权利要求5所述的有限脉冲响应滤波与欠采样相结合的方法,其特征在于,所述多路选择器中的最后一个多路选择器有k-B个端口置零。
7、如权利要求1所述的有限脉冲响应滤波与欠采样相结合的方法,其特征在于,乘法器为A+1个。
8、如权利要求1所述的有限脉冲响应滤波与欠采样相结合的方法,其特征在于,加法器为A+1个。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100251890A CN1330089C (zh) | 2005-04-19 | 2005-04-19 | 有限脉冲响应滤波与欠采样相结合的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100251890A CN1330089C (zh) | 2005-04-19 | 2005-04-19 | 有限脉冲响应滤波与欠采样相结合的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1787368A CN1787368A (zh) | 2006-06-14 |
CN1330089C true CN1330089C (zh) | 2007-08-01 |
Family
ID=36784715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100251890A Active CN1330089C (zh) | 2005-04-19 | 2005-04-19 | 有限脉冲响应滤波与欠采样相结合的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1330089C (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102497174A (zh) * | 2011-12-27 | 2012-06-13 | 中国科学院自动化研究所 | 一种待滤波数据提供装置 |
CN103973264B (zh) * | 2013-01-29 | 2017-02-22 | 中兴通讯股份有限公司 | 一种滤波方法和滤波器 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0974334A (ja) * | 1995-09-06 | 1997-03-18 | Toshiba Corp | トランスバーサルフィルタ |
JP2000040944A (ja) * | 1998-07-23 | 2000-02-08 | Matsushita Electric Ind Co Ltd | デジタルフィルタ回路 |
KR20010113878A (ko) * | 1999-04-22 | 2001-12-28 | 추후제출 | 디지털 gmsk 필터 |
EP1192714A1 (en) * | 1999-06-30 | 2002-04-03 | Ericsson Inc. | Reduced power matched filter using precomputation |
JP2004007574A (ja) * | 2002-04-19 | 2004-01-08 | Matsushita Electric Ind Co Ltd | 有限インパルスレスポンスフィルタ及び通信用受信装置 |
WO2004088842A2 (en) * | 2003-03-31 | 2004-10-14 | Koninklijke Philips Electronics N.V. | A fir filter device for flexible up- and downsampling |
JP2005020102A (ja) * | 2003-06-23 | 2005-01-20 | Sony Corp | フィルタ装置、フィルタ方法及びフィルタプログラム |
-
2005
- 2005-04-19 CN CNB2005100251890A patent/CN1330089C/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0974334A (ja) * | 1995-09-06 | 1997-03-18 | Toshiba Corp | トランスバーサルフィルタ |
JP2000040944A (ja) * | 1998-07-23 | 2000-02-08 | Matsushita Electric Ind Co Ltd | デジタルフィルタ回路 |
KR20010113878A (ko) * | 1999-04-22 | 2001-12-28 | 추후제출 | 디지털 gmsk 필터 |
EP1192714A1 (en) * | 1999-06-30 | 2002-04-03 | Ericsson Inc. | Reduced power matched filter using precomputation |
CN1375126A (zh) * | 1999-06-30 | 2002-10-16 | 艾利森公司 | 利用预先计算的降低功率的匹配滤波器 |
JP2004007574A (ja) * | 2002-04-19 | 2004-01-08 | Matsushita Electric Ind Co Ltd | 有限インパルスレスポンスフィルタ及び通信用受信装置 |
WO2004088842A2 (en) * | 2003-03-31 | 2004-10-14 | Koninklijke Philips Electronics N.V. | A fir filter device for flexible up- and downsampling |
JP2005020102A (ja) * | 2003-06-23 | 2005-01-20 | Sony Corp | フィルタ装置、フィルタ方法及びフィルタプログラム |
Also Published As
Publication number | Publication date |
---|---|
CN1787368A (zh) | 2006-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102035502B (zh) | 一种fir滤波器的实现结构装置 | |
CN102098004A (zh) | 一种变带宽数字下变频器及实现方法 | |
CN102025377B (zh) | 一种改进型级联积分梳妆插值滤波器 | |
CN106059530B (zh) | 一种频率响应与系数量化位数弱相关的半带滤波器 | |
CN109271133A (zh) | 一种数据处理方法及系统 | |
CN113556101B (zh) | Iir滤波器及其数据处理方法 | |
CN1330089C (zh) | 有限脉冲响应滤波与欠采样相结合的方法 | |
CN109976660A (zh) | 基于线性插值的任意重采样算法和数据采样系统 | |
CN101072019B (zh) | 一种滤波器及其滤波方法 | |
CN101840322B (zh) | 滤波器运算单元复用的方法和滤波器的运算系统 | |
CN101553984A (zh) | 数字滤波器、其合成装置、合成程序及合成程序记录介质 | |
CN101640522B (zh) | 一种适用于抽取滤波器的数据抽取方法及装置 | |
US4125866A (en) | Non-recursive discrete filter | |
CN100517968C (zh) | 一种用于电能计量的希尔伯特滤波器 | |
CN107786476B (zh) | 一种滤波器、时域均衡器以及接收机 | |
Erdogan et al. | High throughput FIR filter design for low power SoC applications | |
CN100536331C (zh) | 一种半并行滤波器及其实现方法 | |
CN101072018B (zh) | 数字信号的分频滤波方法及其系统 | |
CN103078606A (zh) | 多通道的cic内插滤波器系统及其实现方法 | |
CN106936405A (zh) | 基于fpga实现单路数字fir滤波器的方法及装置 | |
CN105515548B (zh) | 基于fpga的多路抽取复用滤波器的方法及装置 | |
CN105656451A (zh) | 一种基于频域处理的扩频信号匹配滤波系统及方法 | |
JPH08204506A (ja) | 補間回路および補間方式 | |
Hu et al. | A Resource-efficient FIR Filter Design Based on an RAG Improved Algorithm | |
US6944217B1 (en) | Interleaved finite impulse response filter |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20161201 Address after: 361015 Xiamen Fujian torch hi tech Zone Pioneering Park Cheng Yip Building Room 201 Patentee after: Xiamen Ziguang exhibition Rui Technology Co. Ltd. Address before: 201203 Shanghai City Songtao road Pudong Zhangjiang hi tech Park No. 696 3-5 Patentee before: Zhanxun Communication (Shanghai) Co., Ltd. |