术语
弧度
在数学和物理中,弧度是角的度量单位。它是由国际单位制导出的单位,单位缩写是rad。定义:弧长等于半径的弧,其所对的圆心角为1弧度。(即两条射线从圆心向圆周射出,形成一个夹角和夹角正对的一段弧。当这段弧长正好等于圆的半径时,两条射线的夹角的弧度为1)。
- 角频率
在国际单位制中,角频率的单位也是弧度/秒(rad/s)。频率是描述物体振动快慢的物理量,所以角频率也是描述物体振动快慢的物理量。频率、角频率和周期的关系为ω = 2πf = 2π/T。
- 品质因素
滤波器的中心频率与-3dB带宽的比值,描述了滤波器分离信号中相邻频率成分能力。品质因数Q越大,表明滤波器的分辨能力越高。
- 采样频率
也称为采样速度或者采样率,定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。 本文中用Fs标识。
- 中心频率
中心频率(Fo): 通常定义为带通滤波器(或带阻滤波器)的两个3 dB点之间的中点,一般用两个3 dB点的算术平均来表示 。本文中用F0标识。
公式
- 二阶传递函数
b0 + b1*z^-1 + b2*z^-2
H(z) = ------------------------------------------------ (Eq 1)
a0 + a1*z^-1 + a2*z^-2
- 二阶传递函数变形式
(b0/a0) + (b1/a0)*z^-1 + (b2/a0)*z^-2
H(z) = ----------------------------------------------------- (Eq 2)
1 + (a1/a0)*z^-1 + (a2/a0)*z^-2
以及
1 + (b1/b0)*z^-1 + (b2/b0)*z^-2
H(z) = (b0/a0) * ---------------------------------------- (Eq 3)
1 + (a1/a0)*z^-1 + (a2/a0)*z^-2
Direct Form I
y[n] = (b0/a0)*x[n] +
(b1/a0)*x[n-1] +
(b2/a0)*x[n-2] -
(a1/a0)*y[n-1] -
(a2/a0)*y[n-2] (Eq 4)
Direct Form II
w(n) = x(n) - a1 * w(n - 1) - a2 * w(n - 2);
y(n) = b0 * w(n) + b1 * w(n - 1) + b2 * w(n - 2);
注意
线性移不变系统级联系统的总输出跟子系统次序无关。基于此,Direct Form II
对Direct Form I
进行简化。这样Direct Form II
只需要记录w(n - 1)
和w(n - 2)
即可。而Direct Form I
需要记录x[n - 1] x[n - 2] y[n - 1] y[n - 2]
。
参考
系数计算
- 计算通量
A = sqrt( 10^(dBgain/20) )
= 10^(dBgain/40) (for peaking and shelving EQ filters only)
w0 = 2*pi*f0/Fs
cos(w0)
sin(w0)
alpha = sin(w0)/(2*Q) (case: Q)
= sin(w0)*sinh( ln(2)/2 * BW * w0/sin(w0) ) (case: BW)
= sin(w0)/2 * sqrt( (A + 1/A)*(1/S - 1) + 2 ) (case: S)
- 低通
H(s) = 1 / (s^2 + s/Q + 1)
b0 = (1 - cos(w0))/2
b1 = 1 - cos(w0)
b2 = (1 - cos(w0))/2
a0 = 1 + alpha
a1 = -2*cos(w0)
a2 = 1 - alpha
- 高通
H(s) = s^2 / (s^2 + s/Q + 1)
b0 = (1 + cos(w0))/2
b1 = -(1 + cos(w0))
b2 = (1 + cos(w0))/2
a0 = 1 + alpha
a1 = -2*cos(w0)
a2 = 1 - alpha
- 带通(峰值增益Q dB)
H(s) = s / (s^2 + s/Q + 1) (constant skirt gain, peak gain = Q)
b0 = sin(w0)/2 = Q*alpha
b1 = 0
b2 = -sin(w0)/2 = -Q*alpha
a0 = 1 + alpha
a1 = -2*cos(w0)
a2 = 1 - alpha
- 带通(峰值增益0 dB)
H(s) = (s/Q) / (s^2 + s/Q + 1) (constant 0 dB peak gain)
b0 = alpha
b1 = 0
b2 = -alpha
a0 = 1 + alpha
a1 = -2*cos(w0)
a2 = 1 - alpha