IC697MDL250
IC697MDL250
零相位数字滤波的算法
为了克服差分数字滤波中存在的上述两个问题,可以采用一种零相位滤波的方法,该方法的基本思路是:先确定出滤波器的初始条件,然后将原序列的首尾进行扩展,把扩展后序列通过滤波器,将所得结果反转后再次通过滤波器,zui后将所得结果再反转,并去掉首尾的扩展部分,即可得到零相位滤波后的输出序列。本文采用四次差分滤波方式给出一种便于实现的详细算法,假设输入信号为x(n),n=0,1,…,P.
(1) 编写差分滤波函数DiffFilter(b,a,x),调用参数如前所述。
(2) 对于IIR滤波器通常有M=N,求滤波器的初始条件e(q),q=0,1,…,N-1,这里记E=[e(0),e(1),…,e(N-1)]T,则有
E=1+a(1)1-1…0
a(2)01…0
MMMOM
a(N)00…-11× b(1)-b(0)a(0)
b(2)-b(0)a(1)
M
b(Nn)-b(0)a(N)(3)
(3) 对原输入序列x(n)的首尾进行扩展,在x(n)的前面添加3N个数,在后面添加3N个数,扩展后的序列记为x′(n),n=0,1,…,P+6N.
x′(n)=2x(0)-x(3N-n)
x(n-3N)
2x(P)-x(P-1-(n-P-3N-n))
n<3N
3N?n《P+3N
P+3N?n?P+6N(4)
(4) 进行正向滤波:先用b,a和x′(n)调用DiffFilter(b,a,x)函数,计算x′(n)通过
H(z)=∑Mm=0b(m)z-m/(1+∑Mm=1a(m)z-m)(5)
的输出y′(n),然后生成一长度为P+6N+1的单位脉冲信号h(n),用z,a和h(n)调用DiffFilter(b,a,x)函数,计算h(n)通过
H(z)=∑M-1m=0y′(0)e(m)z-m/(1+∑Mm=1a(m)z-m)(6)
的输出y′(n),并记y(n)=y′(n)+y″(n)。
(5) 进行反向滤波:将正向滤波结果反转,记x′(n)=y(P+6N-n),重复步骤4°,得到反向滤波后的结果。
(6) 将反向滤波的结果反转,并删除首尾的扩展部分,即可得到zui后的滤波结果。
咨询 或
购买 : 或:
Lenze: 33.8106_E (338106E)
8100 series
Enquire
--------------------------------------------------------------------------------
Lenze: 33.8106_E (338106E)
8100 series
Enquire
--------------------------------------------------------------------------------
Lenze: 33.8106_E (338106E)
8100 series
Enquire
--------------------------------------------------------------------------------
Lenze: 33.8201-E (338201E)
Lenze 4A Inverter
Enquire
--------------------------------------------------------------------------------
Lenze: 33.8201BB (338201BB)
Lenze Control Keypad
Enquire
--------------------------------------------------------------------------------
Lenze: 33.8202-E (338202E)
Lenze 4A Inverter
Enquire
--------------------------------------------------------------------------------
Lenze: 33.8203_E (338203E)
Lenze 1.5KW Inverter
Enquire
--------------------------------------------------------------------------------
Lenze: 33.8203_E (338203E)
Lenze 1.5KW Inverter