文章目录
1. 关于欧拉公式
- 欧拉公式中的e就是自然对数的底数e
- 欧拉公式不是仅仅是一种自定义的表示方法,是可以推导的
首先将以下三个表达式用泰勒级数展开:
e x = 1 + x + x 2 2 ! + x 3 3 ! + . . . (1) e^x=1+x+\frac{x^2}{2!}+\frac{x^3}{3!}+...\tag{1} ex=1+x+2!x2+3!x3+...(1)
cos ( x ) = 1 − x 2 2 ! + x 4 4 ! − x 6 6 ! . . . (2) \cos(x)=1-\frac{x^2}{2!}+\frac{x^4}{4!}-\frac{x^6}{6!}...\tag{2} cos(x)=1−2!x2+4!x4−6!x6...(2)
sin ( x ) = x − x 3 3 ! + x 5 5 ! − x 7 7 ! . . . (3) \sin(x)=x-\frac{x^3}{3!}+\frac{x^5}{5!}-\frac{x^7}{7!}...\tag{3} sin(x)=x−3!x3+5!x5−7!x7...(3)
所以:
e
i
x
=
1
+
i
x
+
(
i
x
)
2
2
!
+
(
i
x
)
3
3
!
+
(
i
x
)
4
4
!
+
(
i
x
)
5
5
!
+
(
i
x
)
6
6
!
+
(
i
x
)
7
7
!
.
.
.
=
1
+
i
x
−
x
2
2
!
−
i
x
3
3
!
+
(
x
)
4
4
!
+
i
x
5
5
!
−
x
6
6
!
−
i
x
7
7
!
.
.
.
=
[
1
−
x
2
2
!
+
(
x
)
4
4
!
−
x
6
6
!
.
.
.
]
+
i
[
x
−
x
3
3
!
+
x
5
5
!
−
x
7
7
!
.
.
.
]
=
cos
(
x
)
+
i
sin
(
x
)
e^{ix}=1+ix+\frac{(ix)^2}{2!}+\frac{(ix)^3}{3!}+\frac{(ix)^4}{4!}+\frac{(ix)^5}{5!}+\frac{(ix)^6}{6!}+\frac{(ix)^7}{7!}... \\ =1+ix-\frac{x^2}{2!}-\frac{ix^3}{3!}+\frac{(x)^4}{4!}+\frac{ix^5}{5!}-\frac{x^6}{6!}-\frac{ix^7}{7!}...\\ =[1-\frac{x^2}{2!}+\frac{(x)^4}{4!}-\frac{x^6}{6!}...]+i[x-\frac{x^3}{3!}+\frac{x^5}{5!}-\frac{x^7}{7!}...]\\ =\cos(x)+i\sin(x)
eix=1+ix+2!(ix)2+3!(ix)3+4!(ix)4+5!(ix)5+6!(ix)6+7!(ix)7...=1+ix−2!x2−3!ix3+4!(x)4+5!ix5−6!x6−7!ix7...=[1−2!x2+4!(x)4−6!x6...]+i[x−3!x3+5!x5−7!x7...]=cos(x)+isin(x)
2. 归一化频率
信号处理工具箱中经常使用的频率是Nyquist频率,它被定义为采样频率的一半,在滤波器的结束选择和设计当中的截止频率均使用Nyquist频率进行归一化处理。
例如,对于一个采样频率为1000Hz的系统,300Hz的归一化即为300/500=0.6。归一化频率的范围在[0,1]之间。如果要将归一化频率转换为角频率,则将归一化频率乘以pi;如果将归一化频率转换成Hz,则将归一化频率乘以采样频率的一半。
采样率的一半是最高频率,认为是1,那么真实频率和最高频率的比值就是归一化频率!也叫数字频率!
3. 巴特沃斯一阶低通滤波器参数推导
参考文献:飞控中的IIR二阶滤波器
z域与s域截止频率的关系
把一个传递函数从s域变换到z域时,如果变换方法是有差的(一般都是有差的,因为损失了时间分辨率),则变换前后的滤波特性(包括截止频率)会发生变化,此处以双线性变换为例。
双线性变换的表达式:
s
=
2
T
1
−
z
−
1
1
+
z
−
1
(3.1)
s=\frac{2}{T}\frac{1-z^{-1}}{1+z^{-1}}\tag{3.1}
s=T21+z−11−z−1(3.1)
在上述变换中,再将z域表达式无损地变换回s域,(为了便于区分,给s或者
ω
\omega
ω加上a和d下标分别表示初始系统和变换后的系统):
z
=
e
s
d
T
=
e
j
ω
d
T
(3.2)
z=e^{s_dT}=e^{j\omega_dT}\tag{3.2}
z=esdT=ejωdT(3.2)
将(3.2)代入(3.1):
s
a
=
j
ω
a
=
2
f
s
1
−
e
−
j
ω
d
T
1
+
e
−
j
ω
d
T
=
2
f
s
e
j
ω
d
T
−
1
e
j
ω
d
T
+
1
=
j
2
T
tan
(
ω
d
T
/
2
)
(3.3)
s_a =j\omega_a= 2f_s\frac{1-e^{-j\omega_dT}}{1+e^{-j\omega_dT}}=2f_s\frac{e^{j\omega_dT}-1}{e^{j\omega_dT}+1}=j\frac{2}{T}\tan(\omega_dT/2)\tag{3.3}
sa=jωa=2fs1+e−jωdT1−e−jωdT=2fsejωdT+1ejωdT−1=jT2tan(ωdT/2)(3.3)
上式的推导过程:
根据欧拉公式:
e i x = c o s x + i s i n x (3.4) e^{ix} = cosx+isinx\tag{3.4} eix=cosx+isinx(3.4)
可得:
e i A − e − j A e i A + e − i A = c o s ( A ) + i s i n A − ( c o s ( − A ) + i s i n ( − A ) ) c o s A + i s i n A + c o s ( − A ) + i s i n ( − A ) = 2 i s i n A 2 c o s A = i t a n A (3.5) \frac{e^{iA}-e^{-jA}}{e^{iA}+e^{-iA}}=\frac{cos(A)+isinA-(cos(-A)+isin(-A))}{cosA+isinA+cos(-A)+isin(-A)}\\ =\frac{2isinA}{2cosA}=itanA\tag{3.5} eiA+e−iAeiA−e−jA=cosA+isinA+cos(−A)+isin(−A)cos(A)+isinA−(cos(−A)+isin(−A))=2cosA2isinA=itanA(3.5)
而
e j ω d T − 1 e j ω d T + 1 = e j ω d T / 2 e j ω d T / 2 e j ω d T / 2 − e − j ω d T / 2 e j ω d T / 2 + e − j ω d T / 2 = j t a n ( ω d T / 2 ) (3.6) \frac{e^{j\omega_dT}-1}{e^{j\omega_dT}+1}=\frac{e^{j\omega_dT/2}}{e^{j\omega_dT/2}}\frac{e^{j\omega_dT/2}-e^{-j\omega_dT/2}}{e^{j\omega_dT/2}+e^{-j\omega_dT/2}}=jtan(\omega_dT/2)\tag{3.6} ejωdT+1ejωdT−1=ejωdT/2ejωdT/2ejωdT/2+e−jωdT/2ejωdT/2−e−jωdT/2=jtan(ωdT/2)(3.6)
对(3.3)式两边取模可得:
ω
a
=
2
T
tan
(
ω
d
T
/
2
)
(3.7)
\omega_a=\frac{2}{T}\tan(\omega_dT/2)\tag{3.7}
ωa=T2tan(ωdT/2)(3.7)
2
π
f
a
=
2
f
s
tan
(
2
π
f
d
2
f
s
)
⇒
f
a
=
f
s
π
tan
(
π
f
d
f
s
)
(3.8)
2\pi f_a=2f_s\tan(\frac{2\pi f_d}{2f_s})\Rightarrow f_a=\frac{f_s}{\pi}\tan(\frac{\pi f_d}{f_s})\tag{3.8}
2πfa=2fstan(2fs2πfd)⇒fa=πfstan(fsπfd)(3.8)
f
d
(
x
)
f_d(x)
fd(x)和
f
a
(
y
)
f_a(y)
fa(y)的函数关系是这样的(
f
s
=
4
K
f_s=4K
fs=4K):
可见频率越小, f a f_a fa和 f d f_d fd越接近,频率越高,差别越大。
巴特沃斯低通滤波器的s域标准形式:
H
a
n
(
s
)
=
d
0
a
0
+
a
1
s
+
a
2
s
2
+
.
.
.
+
a
N
s
N
(3.9)
H_{an}(s)=\frac{d_0}{a_0+a_1s+a_2s^2+...+a_Ns^N}\tag{3.9}
Han(s)=a0+a1s+a2s2+...+aNsNd0(3.9)
一般取直流增益为1,此时有
d
0
=
a
0
=
1
d_0=a_0=1
d0=a0=1
对应的归一化参数表:
按参考文献所述(我还没太明白为什么作者说这里代进去的频率就是两个域的截止频率?),Buttworth滤波器的设计步骤如下:
- 根据我们想要的数字滤波频率得到我们想要的模拟滤波器频率
- 根据期望的模拟截止频率,将滤波器去归一化。
- 进行双线性变换
- 写成代码
Step1: 确定阶数和s域表达式
此处取一阶,N=1,所以s域表达式为:
H a ( s ) = 1 1 + s (3.10) H_a(s)=\frac{1}{1+s}\tag{3.10} Ha(s)=1+s1(3.10)
Step2: 选取滤波器数字域的截止频率
假设为 f d f_d fd
Step3: 计算对应s域的截止频率
根据式(3.8)可得:
ω
a
=
2
π
f
a
=
2
f
s
tan
(
π
f
d
f
s
)
(3.11)
\omega_a=2\pi f_a=2f_s\tan(\frac{\pi f_d}{f_s})\tag{3.11}
ωa=2πfa=2fstan(fsπfd)(3.11)
Step4: 去归一化
将式(3.10)中的s替代为:
s
→
s
ω
a
s\rightarrow \frac{s}{\omega_a}
s→ωas
可得:
H
a
(
s
)
=
1
1
+
s
ω
a
H_a(s)=\frac{1}{1+\frac{s}{\omega_a}}
Ha(s)=1+ωas1
Step5: 双线性变换
H
(
z
)
=
Y
(
z
)
X
(
z
)
=
1
1
+
2
T
ω
a
1
−
z
−
1
1
+
z
−
1
=
T
ω
a
(
1
+
z
−
1
)
T
ω
a
(
1
+
z
−
1
)
+
2
(
1
−
z
−
1
)
=
T
ω
a
(
1
+
z
−
1
)
T
ω
a
+
2
+
(
T
ω
a
−
2
)
z
−
1
(3.12)
H(z)=\frac{Y(z)}{X(z)} = \frac{1}{1+\frac{2}{T\omega_a}\frac{1-z^{-1}}{1+z^{-1}}}=\frac{T\omega_a(1+z^{-1})}{T\omega_a(1+z^{-1})+2(1-z^{-1})}=\frac{T\omega_a(1+z^{-1})}{T\omega_a+2+(T\omega_a-2)z^{-1}}\tag{3.12}
H(z)=X(z)Y(z)=1+Tωa21+z−11−z−11=Tωa(1+z−1)+2(1−z−1)Tωa(1+z−1)=Tωa+2+(Tωa−2)z−1Tωa(1+z−1)(3.12)
将式(3.11)代入上式,并设
tan
(
π
f
d
f
s
)
=
K
\tan(\frac{\pi f_d}{f_s})=K
tan(fsπfd)=K可得:
H
(
z
)
=
Y
(
z
)
X
(
z
)
=
2
K
(
1
+
z
−
1
)
2
K
+
2
+
(
2
K
−
2
)
z
−
1
=
K
(
1
+
z
−
1
)
K
+
1
+
(
K
−
1
)
z
−
1
(3.13)
H(z)=\frac{Y(z)}{X(z)} =\frac{2K(1+z^{-1})}{2K+2+(2K-2)z^{-1}}=\frac{K(1+z^{-1})}{K+1+(K-1)z^{-1}}\tag{3.13}
H(z)=X(z)Y(z)=2K+2+(2K−2)z−12K(1+z−1)=K+1+(K−1)z−1K(1+z−1)(3.13)
转换成差分方程:
⇒
(
K
+
1
)
y
k
+
(
K
−
1
)
z
−
1
y
k
=
K
(
1
+
z
−
1
)
x
k
u
⇒
(
K
+
1
)
y
k
=
K
x
k
+
K
x
k
−
1
−
(
K
−
1
)
y
k
−
1
⇒
y
k
=
K
(
K
+
1
)
x
k
+
K
(
K
+
1
)
x
k
−
1
−
(
K
−
1
)
(
K
+
1
)
y
k
−
1
\Rightarrow (K+1)y_k+(K-1)z^{-1}y_k=K(1+z^{-1})x_k \\ u \Rightarrow (K+1)y_k=Kx_k+Kx_{k-1}-(K-1)y_{k-1}\\ \Rightarrow y_k=\frac{K}{(K+1)}x_k+\frac{K}{(K+1)}x_{k-1}-\frac{(K-1)}{(K+1)}y_{k-1}
⇒(K+1)yk+(K−1)z−1yk=K(1+z−1)xku⇒(K+1)yk=Kxk+Kxk−1−(K−1)yk−1⇒yk=(K+1)Kxk+(K+1)Kxk−1−(K+1)(K−1)yk−1