【DSP数字信号处理】期末复习笔记(二)
续【DSP数字信号处理】期末复习笔记(一)。
四、题型三:IIR 和 FIR 信号流图
1. IIR 和 FIR 系统定义
- FIR (Finite Impulse Response) 系统: 单位脉冲响应 h [ n ] h[n] h[n] 是有限长的。
- 系统函数 H ( z ) H(z) H(z) 是 z − 1 z^{-1} z−1 的多项式,所有极点都在 z = 0 z=0 z=0 处 (如果将 H ( z ) H(z) H(z) 写成 z z z 的正幂次形式,分母为 z N z^N zN 形式)。
- IIR (Infinite Impulse Response) 系统: 单位脉冲响应 h [ n ] h[n] h[n] 是无限长的。
- 系统函数 H ( z ) H(z) H(z) 化简后,至少存在一个极点不在 z = 0 z=0 z=0 处。
2. IIR 系统基本结构
H ( z ) = ∑ k = 0 M b k z − k 1 + ∑ k = 1 N a k z − k H(z) = \frac{\sum_{k=0}^{M} b_k z^{-k}}{1 + \sum_{k=1}^{N} a_k z^{-k}} H(z)=1+∑k=1Nakz−k∑k=0Mbkz−k (注意分母常数项为1,若不是,则分子分母同除以该常数)
-
直接I型 (Direct Form I):
- 先实现分子 (FIR部分,零点),再实现分母 (IIR反馈部分,极点)。
- H ( z ) = H F I R ( z ) H I I R , p o l e ( z ) H(z) = H_{FIR}(z)H_{IIR,pole}(z) H(z)=HFIR(z)HIIR,pole(z) where H F I R ( z ) = ∑ b k z − k H_{FIR}(z) = \sum b_k z^{-k} HFIR(z)=∑bkz−k (前馈), H I I R , p o l e ( z ) = 1 1 + ∑ a k z − k H_{IIR,pole}(z) = \frac{1}{1+\sum a_k z^{-k}} HIIR,pole(z)=1+∑akz−k1 (反馈)。
- 延迟器数量为 M + N M+N M+N。
- 画图时,分子系数 b k b_k bk 不变号,分母系数 a k a_k ak 在反馈支路上要变号为 − a k -a_k −ak。
-
直接II型 (Direct Form II / Canonical Form):
- 先实现分母 (IIR反馈部分,极点),再实现分子 (FIR部分,零点)。
- H ( z ) = H I I R , p o l e ( z ) H F I R ( z ) H(z) = H_{IIR,pole}(z)H_{FIR}(z) H(z)=HIIR,pole(z)HFIR(z)。
- 共享延迟器,延迟器数量为 max ( M , N ) \max(M,N) max(M,N),是最节省延迟器的形式。
- 画图时,分母系数 a k a_k ak 在反馈支路上变号为 − a k -a_k −ak,分子系数 b k b_k bk 不变号。
-
级联型 (Cascade Form):
- 将 H ( z ) H(z) H(z) 分解为若干个一阶或二阶子系统函数的乘积:
H ( z ) = K ⋅ H 1 ( z ) H 2 ( z ) … H L ( z ) H(z) = K \cdot H_1(z)H_2(z)\dots H_L(z) H(z)=K⋅H1(z)H2(z)…HL(z)
其中 H i ( z ) = 1 + b i 1 z − 1 + b i 2 z − 2 1 + a i 1 z − 1 + a i 2 z − 2 H_i(z) = \frac{1+b_{i1}z^{-1}+b_{i2}z^{-2}}{1+a_{i1}z^{-1}+a_{i2}z^{-2}} Hi(z)=1+ai1z−1+ai2z−21+bi1z−1+bi2z−2 (二阶节) 或 1 + b i 1 z − 1 1 + a i 1 z − 1 \frac{1+b_{i1}z^{-1}}{1+a_{i1}z^{-1}} 1+ai1z−11+bi1z−1 (一阶节)。 - 每个子系统 H i ( z ) H_i(z) Hi(z) 通常用直接II型实现。
- 将 H ( z ) H(z) H(z) 分解为若干个一阶或二阶子系统函数的乘积:
-
并联型 (Parallel Form):
- 将 H ( z ) H(z) H(z) (需为真分式,即 M < N M<N M<N) 用部分分式展开为若干个子系统函数之和:
H ( z ) = C + ∑ i = 1 L H i ( z ) H(z) = C + \sum_{i=1}^{L} H_i(z) H(z)=C+∑i=1LHi(z) (C为常数,若 H ( z ) H(z) H(z) 为假分式 M ≥ N M \ge N M≥N,则 C = ∑ k = 0 M − N c k z − k C = \sum_{k=0}^{M-N} c_k z^{-k} C=∑k=0M−Nckz−k,通常 C C C 是一个常数 c 0 c_0 c0)
其中 H i ( z ) H_i(z) Hi(z) 通常是一阶或二阶节,如 A i 1 − p i z − 1 \frac{A_i}{1-p_i z^{-1}} 1−piz−1Ai 或 B i z − 1 + C i 1 + a i 1 z − 1 + a i 2 z − 2 \frac{B_i z^{-1} + C_i}{1+a_{i1}z^{-1}+a_{i2}z^{-2}} 1+ai1z−1+ai2z−2Biz−1+Ci。 - 每个子系统 H i ( z ) H_i(z) Hi(z) 通常用直接II型实现。
- 将 H ( z ) H(z) H(z) (需为真分式,即 M < N M<N M<N) 用部分分式展开为若干个子系统函数之和:
- 例: H ( z ) = 1 − 0.2 z − 1 1 + 0.1 z − 1 − 0.06 z − 2 H(z) = \frac{1 - 0.2z^{-1}}{1 + 0.1z^{-1} - 0.06z^{-2}} H(z)=1+0.1z−1−0.06z−21−0.2z−1 画出直接II型结构。
b 0 = 1 , b 1 = − 0.2 b_0=1, b_1=-0.2 b0=1,b1=−0.2
a 1 = 0.1 , a 2 = − 0.06 a_1=0.1, a_2=-0.06 a1=0.1,a2=−0.06
延迟器数量 max ( M , N ) = max ( 1 , 2 ) = 2 \max(M,N) = \max(1,2) = 2 max(M,N)=max(1,2)=2。- 直接II型:
- 输入 x [ n ] x[n] x[n]。
- 中间节点 w [ n ] w[n] w[n]。
- 反馈部分: w [ n ] = x [ n ] − a 1 w [ n − 1 ] − a 2 w [ n − 2 ] = x [ n ] − 0.1 w [ n − 1 ] + 0.06 w [ n − 2 ] w[n] = x[n] - a_1 w[n-1] - a_2 w[n-2] = x[n] - 0.1w[n-1] + 0.06w[n-2] w[n]=x[n]−a1w[n−1]−a2w[n−2]=x[n]−0.1w[n−1]+0.06w[n−2]。
画两个延迟器 z − 1 z^{-1} z−1 串联,输入为 w [ n ] w[n] w[n],输出分别为 w [ n − 1 ] w[n-1] w[n−1] 和 w [ n − 2 ] w[n-2] w[n−2]。
从 w [ n − 1 ] w[n-1] w[n−1] 引出支路乘以 − a 1 = − 0.1 -a_1 = -0.1 −a1=−0.1 加到 x [ n ] x[n] x[n] 之后。
从 w [ n − 2 ] w[n-2] w[n−2] 引出支路乘以 − a 2 = 0.06 -a_2 = 0.06 −a2=0.06 加到 x [ n ] x[n] x[n] 之后。 - 前馈部分: y [ n ] = b 0 w [ n ] + b 1 w [ n − 1 ] = 1 ⋅ w [ n ] − 0.2 w [ n − 1 ] y[n] = b_0 w[n] + b_1 w[n-1] = 1 \cdot w[n] - 0.2 w[n-1] y[n]=b0w[n]+b1w[n−1]=1⋅w[n]−0.2w[n−1]。
从 w [ n ] w[n] w[n] 引出支路乘以 b 0 = 1 b_0=1 b0=1。
从 w [ n − 1 ] w[n-1] w[n−1] (第一个延迟器输出) 引出支路乘以 b 1 = − 0.2 b_1=-0.2 b1=−0.2。
两者相加得到 y [ n ] y[n] y[n]。
- 直接II型:
3. FIR 系统基本结构
H ( z ) = ∑ k = 0 M b k z − k H(z) = \sum_{k=0}^{M} b_k z^{-k} H(z)=∑k=0Mbkz−k (只有分子,或 h [ n ] h[n] h[n])
-
直接型 (Direct Form / Tapped Delay Line):
- 一条延迟链,系数 b k b_k bk (即 h [ k ] h[k] h[k]) 从延迟链的抽头引出加权求和。
-
级联型 (Cascade Form):
- 将 H ( z ) H(z) H(z) 的零点配对(实数零点或共轭复数零点对),分解为一阶或二阶因子的乘积,每个因子用直接型实现。
-
线性相位FIR系统结构 (Linear Phase FIR Structure):
- 利用 h [ n ] h[n] h[n] 的对称性 ( h [ n ] = h [ M − n ] h[n]=h[M-n] h[n]=h[M−n]) 或反对称性 ( h [ n ] = − h [ M − n ] h[n]=-h[M-n] h[n]=−h[M−n]) 来减少乘法器数量。
- 四种类型: (M是滤波器的阶数,长度为M+1)
- Type I: h [ n ] h[n] h[n] 对称 ( h [ n ] = h [ M − n ] h[n]=h[M-n] h[n]=h[M−n]),长度 M + 1 M+1 M+1 为奇数 (M为偶数)。
- Type II: h [ n ] h[n] h[n] 对称 ( h [ n ] = h [ M − n ] h[n]=h[M-n] h[n]=h[M−n]),长度 M + 1 M+1 M+1 为偶数 (M为奇数)。
- Type III: h [ n ] h[n] h[n] 反对称 ( h [ n ] = − h [ M − n ] h[n]=-h[M-n] h[n]=−h[M−n]),长度 M + 1 M+1 M+1 为奇数 (M为偶数)。 h [ M / 2 ] = 0 h[M/2]=0 h[M/2]=0。
- Type IV: h [ n ] h[n] h[n] 反对称 ( h [ n ] = − h [ M − n ] h[n]=-h[M-n] h[n]=−h[M−n]),长度 M + 1 M+1 M+1 为偶数 (M为奇数)。
- 画法 (以Type I为例,M为偶数):
y [ n ] = ∑ k = 0 M h [ k ] x [ n − k ] y[n] = \sum_{k=0}^{M} h[k]x[n-k] y[n]=∑k=0Mh[k]x[n−k]
y [ n ] = h [ 0 ] ( x [ n ] + x [ n − M ] ) + h [ 1 ] ( x [ n − 1 ] + x [ n − M + 1 ] ) + ⋯ + h [ M / 2 − 1 ] ( x [ n − ( M / 2 − 1 ) ] + x [ n − ( M / 2 + 1 ) ] ) + h [ M / 2 ] x [ n − M / 2 ] y[n] = h[0](x[n]+x[n-M]) + h[1](x[n-1]+x[n-M+1]) + \dots + h[M/2-1](x[n-(M/2-1)]+x[n-(M/2+1)]) + h[M/2]x[n-M/2] y[n]=h[0](x[n]+x[n−M])+h[1](x[n−1]+x[n−M+1])+⋯+h[M/2−1](x[n−(M/2−1)]+x[n−(M/2+1)])+h[M/2]x[n−M/2]- 画出所有 M M M 个延迟器。
- 将对称位置的输入信号 x [ n − k ] x[n-k] x[n−k] 和 x [ n − ( M − k ) ] x[n-(M-k)] x[n−(M−k)] 相加 (对称) 或相减 (反对称),然后乘以共同的系数 h [ k ] h[k] h[k]。
- Type II 和 Type IV (长度偶数) 中间没有单独的项。
- Type III 和 Type IV 的反对称性体现在相减操作上。
- 例: H ( z ) = 1 + 2 z − 1 + 3 z − 2 + 2 z − 3 + z − 4 H(z) = 1 + 2z^{-1} + 3z^{-2} + 2z^{-3} + z^{-4} H(z)=1+2z−1+3z−2+2z−3+z−4,画出其线性相位结构。
h [ n ] = { 1 ↑ , 2 , 3 , 2 , 1 } h[n] = \{\underset{\uparrow}{1}, 2, 3, 2, 1\} h[n]={↑1,2,3,2,1}。阶数 M = 4 M=4 M=4 (偶数),长度 M + 1 = 5 M+1=5 M+1=5 (奇数)。
h [ 0 ] = h [ 4 ] = 1 h[0]=h[4]=1 h[0]=h[4]=1, h [ 1 ] = h [ 3 ] = 2 h[1]=h[3]=2 h[1]=h[3]=2, h [ 2 ] = 3 h[2]=3 h[2]=3。对称结构。
此为 Type I FIR 滤波器。- 画出4个延迟器 z − 1 z^{-1} z−1。输入 x [ n ] x[n] x[n],输出依次为 x [ n − 1 ] , x [ n − 2 ] , x [ n − 3 ] , x [ n − 4 ] x[n-1], x[n-2], x[n-3], x[n-4] x[n−1],x[n−2],x[n−3],x[n−4]。
- ( x [ n ] + x [ n − 4 ] ) (x[n] + x[n-4]) (x[n]+x[n−4]) 乘以系数 h [ 0 ] = 1 h[0]=1 h[0]=1。
- ( x [ n − 1 ] + x [ n − 3 ] ) (x[n-1] + x[n-3]) (x[n−1]+x[n−3]) 乘以系数 h [ 1 ] = 2 h[1]=2 h[1]=2。
- x [ n − 2 ] x[n-2] x[n−2] 乘以系数 h [ 2 ] = 3 h[2]=3 h[2]=3。
- 将三路结果相加得到 y [ n ] y[n] y[n]。乘法器数量为 M / 2 + 1 = 4 / 2 + 1 = 3 M/2+1 = 4/2+1 = 3 M/2+1=4/2+1=3 个。
五、题型四:IIR 滤波器设计
基本思想:利用成熟的模拟滤波器设计方法(如巴特沃斯、切比雪夫),然后通过变换将其转换为数字滤波器。
1. 脉冲响应不变法 (Impulse Invariance Method)
-
思想: 使数字滤波器的单位脉冲响应 h [ n ] h[n] h[n] 是原型模拟滤波器单位脉冲响应 h a ( t ) h_a(t) ha(t) (或 h c ( t ) h_c(t) hc(t)) 的采样,并乘以采样周期 T d T_d Td (或 T T T)。
h [ n ] = T d ⋅ h a ( n T d ) h[n] = T_d \cdot h_a(nT_d) h[n]=Td⋅ha(nTd) -
系统函数转换:
若模拟滤波器 H a ( s ) = ∑ k = 1 N A k s − s k H_a(s) = \sum_{k=1}^{N} \frac{A_k}{s-s_k} Ha(s)=∑k=1Ns−skAk (部分分式展开,无重根, s k s_k sk 是极点)
则数字滤波器 H ( z ) = ∑ k = 1 N T d A k 1 − e s k T d z − 1 H(z) = \sum_{k=1}^{N} \frac{T_d A_k}{1 - e^{s_k T_d} z^{-1}} H(z)=∑k=1N1−eskTdz−1TdAk -
频率响应映射:
ω = Ω T d \omega = \Omega T_d ω=ΩTd (其中 ω \omega ω 是数字角频率, Ω \Omega Ω 是模拟角频率)
H ( e j ω ) = ∑ k = − ∞ ∞ H a ( j ( ω T d − k 2 π T d ) ) H(e^{j\omega}) = \sum_{k=-\infty}^{\infty} H_a(j(\frac{\omega}{T_d} - k\frac{2\pi}{T_d})) H(ejω)=∑k=−∞∞Ha(j(Tdω−kTd2π))
存在频谱混叠问题!因为模拟滤波器的频率响应通常不是严格带限的。
因此,此方法主要适用于设计低通和带通滤波器,且要求模拟滤波器在折叠频率 Ω s / 2 = π / T d \Omega_s/2 = \pi/T_d Ωs/2=π/Td 之外有足够衰减。 -
设计步骤:
- 确定数字滤波器指标(如截止频率 ω p , ω s \omega_p, \omega_s ωp,ωs,衰减 A p , A s A_p, A_s Ap,As)。
- 选择采样周期 T d T_d Td (若未给出,可根据最高频率估算或题目指定)。
- 将数字频率指标转换为模拟频率指标: Ω p = ω p / T d , Ω s = ω s / T d \Omega_p = \omega_p/T_d, \Omega_s = \omega_s/T_d Ωp=ωp/Td,Ωs=ωs/Td。
- 根据模拟指标设计模拟滤波器 H a ( s ) H_a(s) Ha(s) (如巴特沃斯、切比雪夫)。
- 将 H a ( s ) H_a(s) Ha(s) 部分分式展开。
- 利用转换公式 A k / ( s − s k ) → T d A k / ( 1 − e s k T d z − 1 ) A_k/(s-s_k) \rightarrow T_d A_k/(1-e^{s_k T_d}z^{-1}) Ak/(s−sk)→TdAk/(1−eskTdz−1) 得到 H ( z ) H(z) H(z)。
-
例:已知模拟滤波器 H a ( s ) = s + 1 s 2 + 5 s + 6 H_a(s) = \frac{s+1}{s^2+5s+6} Ha(s)=s2+5s+6s+1,用脉冲响应不变法设计数字滤波器 H ( z ) H(z) H(z),设 T d = 0.1 T_d=0.1 Td=0.1s。
- 部分分式展开 H a ( s ) H_a(s) Ha(s):
s 2 + 5 s + 6 = ( s + 2 ) ( s + 3 ) s^2+5s+6 = (s+2)(s+3) s2+5s+6=(s+2)(s+3)
H a ( s ) = s + 1 ( s + 2 ) ( s + 3 ) = A 1 s + 2 + A 2 s + 3 H_a(s) = \frac{s+1}{(s+2)(s+3)} = \frac{A_1}{s+2} + \frac{A_2}{s+3} Ha(s)=(s+2)(s+3)s+1=s+2A1+s+3A2
A 1 = [ ( s + 2 ) H a ( s ) ] s = − 2 = − 2 + 1 − 2 + 3 = − 1 1 = − 1 A_1 = [(s+2)H_a(s)]_{s=-2} = \frac{-2+1}{-2+3} = \frac{-1}{1} = -1 A1=[(s+2)Ha(s)]s=−2=−2+3−2+1=1−1=−1
A 2 = [ ( s + 3 ) H a ( s ) ] s = − 3 = − 3 + 1 − 3 + 2 = − 2 − 1 = 2 A_2 = [(s+3)H_a(s)]_{s=-3} = \frac{-3+1}{-3+2} = \frac{-2}{-1} = 2 A2=[(s+3)Ha(s)]s=−3=−3+2−3+1=−1−2=2
所以 H a ( s ) = − 1 s − ( − 2 ) + 2 s − ( − 3 ) H_a(s) = \frac{-1}{s-(-2)} + \frac{2}{s-(-3)} Ha(s)=s−(−2)−1+s−(−3)2。
这里 s 1 = − 2 , s 2 = − 3 s_1=-2, s_2=-3 s1=−2,s2=−3。 - 转换为 H ( z ) H(z) H(z):
H ( z ) = T d A 1 1 − e s 1 T d z − 1 + T d A 2 1 − e s 2 T d z − 1 H(z) = \frac{T_d A_1}{1 - e^{s_1 T_d} z^{-1}} + \frac{T_d A_2}{1 - e^{s_2 T_d} z^{-1}} H(z)=1−es1Tdz−1TdA1+1−es2Tdz−1TdA2
H ( z ) = 0.1 ( − 1 ) 1 − e − 2 ⋅ 0.1 z − 1 + 0.1 ( 2 ) 1 − e − 3 ⋅ 0.1 z − 1 H(z) = \frac{0.1(-1)}{1 - e^{-2 \cdot 0.1} z^{-1}} + \frac{0.1(2)}{1 - e^{-3 \cdot 0.1} z^{-1}} H(z)=1−e−2⋅0.1z−10.1(−1)+1−e−3⋅0.1z−10.1(2)
H ( z ) = − 0.1 1 − e − 0.2 z − 1 + 0.2 1 − e − 0.3 z − 1 H(z) = \frac{-0.1}{1 - e^{-0.2} z^{-1}} + \frac{0.2}{1 - e^{-0.3} z^{-1}} H(z)=1−e−0.2z−1−0.1+1−e−0.3z−10.2
e − 0.2 ≈ 0.8187 e^{-0.2} \approx 0.8187 e−0.2≈0.8187, e − 0.3 ≈ 0.7408 e^{-0.3} \approx 0.7408 e−0.3≈0.7408
H ( z ) = − 0.1 1 − 0.8187 z − 1 + 0.2 1 − 0.7408 z − 1 H(z) = \frac{-0.1}{1 - 0.8187 z^{-1}} + \frac{0.2}{1 - 0.7408 z^{-1}} H(z)=1−0.8187z−1−0.1+1−0.7408z−10.2
- 部分分式展开 H a ( s ) H_a(s) Ha(s):
2. 双线性变换法 (Bilinear Transformation Method)
-
思想: 将整个 s s s 平面的虚轴 j Ω j\Omega jΩ 非线性地、一对一地映射到 z z z 平面的单位圆 e j ω e^{j\omega} ejω 上,从而避免频谱混叠。
-
转换公式:
s = 2 T d 1 − z − 1 1 + z − 1 s = \frac{2}{T_d} \frac{1-z^{-1}}{1+z^{-1}} s=Td21+z−11−z−1 -
频率响应映射 (频率预畸变 - Prewarping):
由于 s = j Ω s=j\Omega s=jΩ 和 z = e j ω z=e^{j\omega} z=ejω 的关系是非线性的,数字域的临界频率 ω c \omega_c ωc 对应模拟域的临界频率 Ω c \Omega_c Ωc 关系为:
Ω c = 2 T d tan ( ω c 2 ) \Omega_c = \frac{2}{T_d} \tan(\frac{\omega_c}{2}) Ωc=Td2tan(2ωc)
反之, ω c = 2 arctan ( Ω c T d 2 ) \omega_c = 2 \arctan(\frac{\Omega_c T_d}{2}) ωc=2arctan(2ΩcTd) -
设计步骤:
- 确定数字滤波器指标(如 ω p , ω s , A p , A s \omega_p, \omega_s, A_p, A_s ωp,ωs,Ap,As)。
- 选择采样周期 T d T_d Td。
- 预畸变: 将数字频率指标通过 Ω = 2 T d tan ( ω 2 ) \Omega = \frac{2}{T_d} \tan(\frac{\omega}{2}) Ω=Td2tan(2ω) 转换为模拟滤波器对应的频率指标 Ω p , Ω s \Omega_p, \Omega_s Ωp,Ωs。
- 根据预畸变后的模拟指标设计模拟滤波器 H a ( s ) H_a(s) Ha(s)。
- 将 H a ( s ) H_a(s) Ha(s) 中的 s s s 替换为 2 T d 1 − z − 1 1 + z − 1 \frac{2}{T_d} \frac{1-z^{-1}}{1+z^{-1}} Td21+z−11−z−1 得到 H ( z ) H(z) H(z)。
-
例:设计一个数字低通巴特沃斯滤波器,要求通带截止频率 f p = 1 f_p = 1 fp=1kHz,通带最大衰减 1 1 1dB。采样频率 f s = 10 f_s = 10 fs=10kHz。
- 数字频率指标:
T d = 1 / f s = 1 / 10000 = 10 − 4 T_d = 1/f_s = 1/10000 = 10^{-4} Td=1/fs=1/10000=10−4 s。
ω p = 2 π f p / f s = 2 π ( 1000 ) / 10000 = 0.2 π \omega_p = 2\pi f_p / f_s = 2\pi (1000) / 10000 = 0.2\pi ωp=2πfp/fs=2π(1000)/10000=0.2π rad。 - 预畸变:
Ω p = 2 T d tan ( ω p 2 ) = 2 10 − 4 tan ( 0.2 π 2 ) = 2 ⋅ 10 4 tan ( 0.1 π ) \Omega_p = \frac{2}{T_d} \tan(\frac{\omega_p}{2}) = \frac{2}{10^{-4}} \tan(\frac{0.2\pi}{2}) = 2 \cdot 10^4 \tan(0.1\pi) Ωp=Td2tan(2ωp)=10−42tan(20.2π)=2⋅104tan(0.1π)
tan ( 0.1 π ) ≈ tan ( 18 ∘ ) ≈ 0.3249 \tan(0.1\pi) \approx \tan(18^\circ) \approx 0.3249 tan(0.1π)≈tan(18∘)≈0.3249
Ω p ≈ 2 ⋅ 10 4 ⋅ 0.3249 = 6498 \Omega_p \approx 2 \cdot 10^4 \cdot 0.3249 = 6498 Ωp≈2⋅104⋅0.3249=6498 rad/s。 - 设计模拟滤波器:
对于一阶巴特沃斯滤波器, H a ( s ) = Ω p s + Ω p H_a(s) = \frac{\Omega_p}{s+\Omega_p} Ha(s)=s+ΩpΩp (幅度在 Ω p \Omega_p Ωp 处为 1 / 2 1/\sqrt{2} 1/2,即-3dB。若要求-1dB,则阶数可能更高或公式不同,这里以-3dB为例简化)。
H a ( s ) = 6498 s + 6498 H_a(s) = \frac{6498}{s+6498} Ha(s)=s+64986498 - 双线性变换:
s = 2 10 − 4 1 − z − 1 1 + z − 1 = 2 ⋅ 10 4 1 − z − 1 1 + z − 1 s = \frac{2}{10^{-4}} \frac{1-z^{-1}}{1+z^{-1}} = 2 \cdot 10^4 \frac{1-z^{-1}}{1+z^{-1}} s=10−421+z−11−z−1=2⋅1041+z−11−z−1
H ( z ) = 6498 2 ⋅ 10 4 1 − z − 1 1 + z − 1 + 6498 = 6498 ( 1 + z − 1 ) 20000 ( 1 − z − 1 ) + 6498 ( 1 + z − 1 ) H(z) = \frac{6498}{2 \cdot 10^4 \frac{1-z^{-1}}{1+z^{-1}} + 6498} = \frac{6498(1+z^{-1})}{20000(1-z^{-1}) + 6498(1+z^{-1})} H(z)=2⋅1041+z−11−z−1+64986498=20000(1−z−1)+6498(1+z−1)6498(1+z−1)
H ( z ) = 6498 ( 1 + z − 1 ) ( 20000 + 6498 ) + ( − 20000 + 6498 ) z − 1 = 6498 ( 1 + z − 1 ) 26498 − 13502 z − 1 H(z) = \frac{6498(1+z^{-1})}{(20000+6498) + (-20000+6498)z^{-1}} = \frac{6498(1+z^{-1})}{26498 - 13502z^{-1}} H(z)=(20000+6498)+(−20000+6498)z−16498(1+z−1)=26498−13502z−16498(1+z−1)
H ( z ) ≈ 0.2452 ( 1 + z − 1 ) 1 − 0.5095 z − 1 H(z) \approx \frac{0.2452(1+z^{-1})}{1 - 0.5095z^{-1}} H(z)≈1−0.5095z−10.2452(1+z−1)
- 数字频率指标:
3. 方法对比
特性 | 脉冲响应不变法 | 双线性变换法 |
---|---|---|
s → z s \to z s→z 映射 | s k → e s k T d s_k \to e^{s_k T_d} sk→eskTd (极点映射) | s → 2 T d 1 − z − 1 1 + z − 1 s \to \frac{2}{T_d}\frac{1-z^{-1}}{1+z^{-1}} s→Td21+z−11−z−1 (全平面映射) |
频率映射 | ω = Ω T d \omega = \Omega T_d ω=ΩTd (线性) | Ω = 2 T d tan ( ω 2 ) \Omega = \frac{2}{T_d}\tan(\frac{\omega}{2}) Ω=Td2tan(2ω) (非线性,需预畸变) |
频谱混叠 | 存在 | 不存在 |
适用滤波器类型 | 主要用于低通、带通 (对高频衰减要求高) | 低通、高通、带通、带阻 (除理想微分器等) |
冲激响应 | h [ n ] = T d h a ( n T d ) h[n] = T_d h_a(nT_d) h[n]=Tdha(nTd) (保持形状) | 无简单关系,不保持冲激响应形状 |
直流特性 | 不一定保持 ( H ( e j 0 ) ≠ H a ( j 0 ) H(e^{j0}) \neq H_a(j0) H(ej0)=Ha(j0)) | 保持 ( H ( e j 0 ) = H a ( j 0 ) H(e^{j0}) = H_a(j0) H(ej0)=Ha(j0)) |
稳定性 | 若模拟滤波器稳定,则数字滤波器稳定 | 若模拟滤波器稳定,则数字滤波器稳定 |
六、题型五:离散傅里叶变换 (DFT)
1. 离散傅里叶级数 (DFS)
- 用于周期序列 x ~ [ n ] \tilde{x}[n] x~[n] (周期为 N N N)。
- DFS对:
- 分析式 (求频谱系数): X ~ [ k ] = ∑ n = 0 N − 1 x ~ [ n ] e − j 2 π N k n = ∑ n = 0 N − 1 x ~ [ n ] W N k n \tilde{X}[k] = \sum_{n=0}^{N-1} \tilde{x}[n] e^{-j\frac{2\pi}{N}kn} = \sum_{n=0}^{N-1} \tilde{x}[n] W_N^{kn} X~[k]=∑n=0N−1x~[n]e−jN2πkn=∑n=0N−1x~[n]WNkn
- 综合式 (由频谱恢复序列): x ~ [ n ] = 1 N ∑ k = 0 N − 1 X ~ [ k ] e j 2 π N k n = 1 N ∑ k = 0 N − 1 X ~ [ k ] W N − k n \tilde{x}[n] = \frac{1}{N} \sum_{k=0}^{N-1} \tilde{X}[k] e^{j\frac{2\pi}{N}kn} = \frac{1}{N} \sum_{k=0}^{N-1} \tilde{X}[k] W_N^{-kn} x~[n]=N1∑k=0N−1X~[k]ejN2πkn=N1∑k=0N−1X~[k]WN−kn
- 其中 W N = e − j 2 π N W_N = e^{-j\frac{2\pi}{N}} WN=e−jN2π。
- X ~ [ k ] \tilde{X}[k] X~[k] 也是周期为 N N N 的周期序列。
- 周期序列的DTFT: X D T F T ( e j ω ) = ∑ k = − ∞ ∞ 2 π N X ~ [ k ] δ ( ω − 2 π k N ( m o d 2 π ) ) X_{DTFT}(e^{j\omega}) = \sum_{k=-\infty}^{\infty} \frac{2\pi}{N} \tilde{X}[k] \delta(\omega - \frac{2\pi k}{N} \pmod{2\pi}) XDTFT(ejω)=∑k=−∞∞N2πX~[k]δ(ω−N2πk(mod2π))
结论:周期序列的频谱是离散的(谱线),只在 ω k = 2 π k / N \omega_k = 2\pi k/N ωk=2πk/N 处有值。
2. 离散傅里叶变换 (DFT)
-
用于有限长序列 x [ n ] x[n] x[n] (假设长度为 M M M),或周期序列的一个主周期。
-
DFT计算的是序列DTFT在 [ 0 , 2 π ) [0, 2\pi) [0,2π) 上的 N N N 个等间隔频率点的采样值 (通常取 N ≥ M N \ge M N≥M)。
-
N N N点DFT对: (对长度为 M M M 的序列 x [ n ] x[n] x[n],若 N > M N>M N>M,则 x [ n ] x[n] x[n] 尾部补零到 N N N 点;若 N < M N<M N<M,会发生时域混叠)
- 分析式: X [ k ] = ∑ n = 0 N − 1 x [ n ] W N k n X[k] = \sum_{n=0}^{N-1} x[n] W_N^{kn} X[k]=∑n=0N−1x[n]WNkn, k = 0 , 1 , … , N − 1 k=0, 1, \dots, N-1 k=0,1,…,N−1
- 综合式 (IDFT): x [ n ] = 1 N ∑ k = 0 N − 1 X [ k ] W N − k n x[n] = \frac{1}{N} \sum_{k=0}^{N-1} X[k] W_N^{-kn} x[n]=N1∑k=0N−1X[k]WN−kn, n = 0 , 1 , … , N − 1 n=0, 1, \dots, N-1 n=0,1,…,N−1
-
DFT与DTFT的关系:
X [ k ] = X D T F T ( e j ω ) ∣ ω = 2 π k N X[k] = X_{DTFT}(e^{j\omega})|_{\omega = \frac{2\pi k}{N}} X[k]=XDTFT(ejω)∣ω=N2πk, for k = 0 , 1 , … , N − 1 k=0, 1, \dots, N-1 k=0,1,…,N−1.
DFT是DTFT在 N N N 个频率点上的采样。 -
DFT与DFS的关系:
若 x ~ [ n ] \tilde{x}[n] x~[n] 是 x [ n ] x[n] x[n] (长度 M ≤ N M \le N M≤N) 以 N N N 为周期的周期延拓,则 X ~ [ k ] \tilde{X}[k] X~[k] (DFS系数) 等于 X [ k ] X[k] X[k] (DFT系数)。
X [ k ] = X ~ [ k ] X[k] = \tilde{X}[k] X[k]=X~[k] for k = 0 , … , N − 1 k=0, \dots, N-1 k=0,…,N−1.
x [ n ] x[n] x[n] (IDFT结果) 是 x ~ [ n ] \tilde{x}[n] x~[n] (IDFS结果) 的一个主值周期。 -
例:求序列 x [ n ] = { 1 ↑ , 2 , 3 , 4 } x[n]=\{\underset{\uparrow}{1}, 2, 3, 4\} x[n]={↑1,2,3,4} 的4点DFT。
x [ 0 ] = 1 , x [ 1 ] = 2 , x [ 2 ] = 3 , x [ 3 ] = 4 x[0]=1, x[1]=2, x[2]=3, x[3]=4 x[0]=1,x[1]=2,x[2]=3,x[3]=4。 N = 4 N=4 N=4。 W 4 = e − j 2 π / 4 = e − j π / 2 = − j W_4 = e^{-j2\pi/4} = e^{-j\pi/2} = -j W4=e−j2π/4=e−jπ/2=−j。
X [ k ] = ∑ n = 0 3 x [ n ] W 4 k n X[k] = \sum_{n=0}^{3} x[n] W_4^{kn} X[k]=∑n=03x[n]W4kn- X [ 0 ] = ∑ x [ n ] W 4 0 = x [ 0 ] + x [ 1 ] + x [ 2 ] + x [ 3 ] = 1 + 2 + 3 + 4 = 10 X[0] = \sum x[n] W_4^0 = x[0]+x[1]+x[2]+x[3] = 1+2+3+4 = 10 X[0]=∑x[n]W40=x[0]+x[1]+x[2]+x[3]=1+2+3+4=10
- X [ 1 ] = x [ 0 ] W 4 0 + x [ 1 ] W 4 1 + x [ 2 ] W 4 2 + x [ 3 ] W 4 3 X[1] = x[0]W_4^0 + x[1]W_4^1 + x[2]W_4^2 + x[3]W_4^3 X[1]=x[0]W40+x[1]W41+x[2]W42+x[3]W43
= 1 ( 1 ) + 2 ( − j ) + 3 ( − j ) 2 + 4 ( − j ) 3 = 1(1) + 2(-j) + 3(-j)^2 + 4(-j)^3 =1(1)+2(−j)+3(−j)2+4(−j)3
= 1 − 2 j + 3 ( − 1 ) + 4 ( j ) = 1 − 2 j − 3 + 4 j = − 2 + 2 j = 1 - 2j + 3(-1) + 4(j) = 1 - 2j - 3 + 4j = -2 + 2j =1−2j+3(−1)+4(j)=1−2j−3+4j=−2+2j - X [ 2 ] = x [ 0 ] W 4 0 + x [ 1 ] W 4 2 + x [ 2 ] W 4 4 + x [ 3 ] W 4 6 X[2] = x[0]W_4^0 + x[1]W_4^2 + x[2]W_4^4 + x[3]W_4^6 X[2]=x[0]W40+x[1]W42+x[2]W44+x[3]W46
= 1 ( 1 ) + 2 ( − 1 ) + 3 ( 1 ) + 4 ( − 1 ) 3 = 1 − 2 + 3 − 4 = − 2 = 1(1) + 2(-1) + 3(1) + 4(-1)^3 = 1 - 2 + 3 - 4 = -2 =1(1)+2(−1)+3(1)+4(−1)3=1−2+3−4=−2
( W 4 4 = ( W 4 2 ) 2 = ( − 1 ) 2 = 1 W_4^4 = (W_4^2)^2 = (-1)^2 = 1 W44=(W42)2=(−1)2=1, W 4 6 = W 4 2 ⋅ W 4 4 = − 1 ⋅ 1 = − 1 W_4^6 = W_4^2 \cdot W_4^4 = -1 \cdot 1 = -1 W46=W42⋅W44=−1⋅1=−1) - X [ 3 ] = x [ 0 ] W 4 0 + x [ 1 ] W 4 3 + x [ 2 ] W 4 6 + x [ 3 ] W 4 9 X[3] = x[0]W_4^0 + x[1]W_4^3 + x[2]W_4^6 + x[3]W_4^9 X[3]=x[0]W40+x[1]W43+x[2]W46+x[3]W49
= 1 ( 1 ) + 2 ( j ) + 3 ( − 1 ) + 4 ( W 4 1 ⋅ W 4 8 = − j ⋅ 1 = − j ) = 1(1) + 2(j) + 3(-1) + 4(W_4^1 \cdot W_4^8 = -j \cdot 1 = -j) =1(1)+2(j)+3(−1)+4(W41⋅W48=−j⋅1=−j)
= 1 + 2 j − 3 − 4 j = − 2 − 2 j = 1 + 2j - 3 - 4j = -2 - 2j =1+2j−3−4j=−2−2j
所以, X [ k ] = { 10 , − 2 + 2 j , − 2 , − 2 − 2 j } X[k] = \{10, -2+2j, -2, -2-2j\} X[k]={10,−2+2j,−2,−2−2j}。
注意:对于实序列 x [ n ] x[n] x[n], X [ k ] X[k] X[k] 具有共轭对称性 X [ k ] = X ∗ [ N − k ] X[k] = X^*[N-k] X[k]=X∗[N−k]。
X [ 3 ] = X ∗ [ 4 − 3 ] = X ∗ [ 1 ] X[3] = X^*[4-3] = X^*[1] X[3]=X∗[4−3]=X∗[1]。 ( − 2 − 2 j ) = ( − 2 + 2 j ) ∗ (-2-2j) = (-2+2j)^* (−2−2j)=(−2+2j)∗。
3. DFT性质
-
线性、周期性 ( X [ k + N ] = X [ k ] , x [ n + N ] = x [ n ] X[k+N]=X[k], x[n+N]=x[n] X[k+N]=X[k],x[n+N]=x[n] 隐含在DFT定义中)
-
循环移位 (Circular Shift):
x ( ( n − m ) ) N ↔ W N k m X [ k ] x((n-m))_N \leftrightarrow W_N^{km} X[k] x((n−m))N↔WNkmX[k]
W N − l n x [ n ] ↔ X ( ( k − l ) ) N W_N^{-ln} x[n] \leftrightarrow X((k-l))_N WN−lnx[n]↔X((k−l))N
( ( n − m ) ) N ((n-m))_N ((n−m))N 表示对 n − m n-m n−m 模 N N N 运算 (结果在 0 … N − 1 0 \dots N-1 0…N−1 之间)。 -
循环卷积 (Circular Convolution):
y [ n ] = x 1 [ n ] ⊛ N x 2 [ n ] = ∑ m = 0 N − 1 x 1 [ m ] x 2 ( ( n − m ) ) N ↔ X 1 [ k ] X 2 [ k ] y[n] = x_1[n] \circledast_N x_2[n] = \sum_{m=0}^{N-1} x_1[m] x_2((n-m))_N \leftrightarrow X_1[k]X_2[k] y[n]=x1[n]⊛Nx2[n]=∑m=0N−1x1[m]x2((n−m))N↔X1[k]X2[k]- 计算方法 (时域):
- 将 x 2 [ m ] x_2[m] x2[m] 保持不动。
- 将 x 1 [ m ] x_1[m] x1[m] 反转得到 x 1 [ − m ] x_1[-m] x1[−m]。
- 将 x 1 [ − m ] x_1[-m] x1[−m] 循环右移 n n n 位得到 x 1 ( ( n − m ) ) N x_1((n-m))_N x1((n−m))N。
- x 1 ( ( n − m ) ) N x_1((n-m))_N x1((n−m))N 与 x 2 [ m ] x_2[m] x2[m] 对应相乘并求和。
- 通过线性卷积计算循环卷积:
- 计算 x 1 [ n ] x_1[n] x1[n] 和 x 2 [ n ] x_2[n] x2[n] 的线性卷积 y L [ n ] y_L[n] yL[n] (长度 M 1 + M 2 − 1 M_1+M_2-1 M1+M2−1)。假设 x 1 , x 2 x_1, x_2 x1,x2 长度都为 N N N (或已补零到 N N N)。则 y L [ n ] y_L[n] yL[n] 长度为 2 N − 1 2N-1 2N−1。
- N N N 点循环卷积 y [ n ] y[n] y[n] 是 y L [ n ] y_L[n] yL[n] 以 N N N 为周期的混叠版本:
y [ n ] = ∑ r = 0 ⌊ ( L − 1 ) / N ⌋ y L [ n + r N ] y[n] = \sum_{r=0}^{\lfloor (L-1)/N \rfloor} y_L[n+rN] y[n]=∑r=0⌊(L−1)/N⌋yL[n+rN] for n = 0 , … , N − 1 n=0, \dots, N-1 n=0,…,N−1, 其中 L = M 1 + M 2 − 1 L=M_1+M_2-1 L=M1+M2−1。
(即将 y L [ n ] y_L[n] yL[n] 中从第 N N N 个点开始的部分,周期性地叠加到前面 N N N 点上)
- 计算方法 (时域):
-
例: x 1 [ n ] = { 1 ↑ , 2 , 1 , 0 } x_1[n]=\{\underset{\uparrow}{1},2,1,0\} x1[n]={↑1,2,1,0}, x 2 [ n ] = { 1 ↑ , 1 , 2 , 0 } x_2[n]=\{\underset{\uparrow}{1},1,2,0\} x2[n]={↑1,1,2,0} (均为4点序列)。求4点循环卷积。
-
线性卷积 y L [ n ] y_L[n] yL[n]:
x 1 [ n ] x_1[n] x1[n]: 1 , 2 , 1 , 0 1, 2, 1, 0 1,2,1,0
x 2 [ n ] x_2[n] x2[n]: 1 , 1 , 2 , 0 1, 1, 2, 0 1,1,2,01 2 1 0 x 1 1 2 0 --------------------0 0 0 0 (x0)2 4 2 0 (x2, shifted)1 2 1 0 (x1, shifted) 1 2 1 0 (x1, shifted) -------------------- 1 3 5 3 2 0 0
y L [ n ] = { 1 , 3 , 5 , 3 , 2 , 0 , 0 } y_L[n] = \{1, 3, 5, 3, 2, 0, 0\} yL[n]={1,3,5,3,2,0,0} (长度 4 + 4 − 1 = 7 4+4-1=7 4+4−1=7)
y L [ 0 ] = 1 , y L [ 1 ] = 3 , y L [ 2 ] = 5 , y L [ 3 ] = 3 , y L [ 4 ] = 2 , y L [ 5 ] = 0 , y L [ 6 ] = 0 y_L[0]=1, y_L[1]=3, y_L[2]=5, y_L[3]=3, y_L[4]=2, y_L[5]=0, y_L[6]=0 yL[0]=1,yL[1]=3,yL[2]=5,yL[3]=3,yL[4]=2,yL[5]=0,yL[6]=0 -
4点循环卷积 y [ n ] y[n] y[n]: N = 4 N=4 N=4.
y [ 0 ] = y L [ 0 ] + y L [ 4 ] = 1 + 2 = 3 y[0] = y_L[0] + y_L[4] = 1 + 2 = 3 y[0]=yL[0]+yL[4]=1+2=3
y [ 1 ] = y L [ 1 ] + y L [ 5 ] = 3 + 0 = 3 y[1] = y_L[1] + y_L[5] = 3 + 0 = 3 y[1]=yL[1]+yL[5]=3+0=3
y [ 2 ] = y L [ 2 ] + y L [ 6 ] = 5 + 0 = 5 y[2] = y_L[2] + y_L[6] = 5 + 0 = 5 y[2]=yL[2]+yL[6]=5+0=5
y [ 3 ] = y L [ 3 ] = 3 y[3] = y_L[3] = 3 y[3]=yL[3]=3
y [ n ] = { 3 ↑ , 3 , 5 , 3 } y[n] = \{\underset{\uparrow}{3}, 3, 5, 3\} y[n]={↑3,3,5,3}
-
-
对称性、Parseval定理等。
-
补零 (Zero-padding):
在有限长序列 x [ n ] x[n] x[n] (长度 M M M) 尾部补 L L L 个零,得到长度为 N = M + L N=M+L N=M+L 的新序列 x p [ n ] x_p[n] xp[n]。
X p [ k ] X_p[k] Xp[k] (N点DFT) 是 X D T F T ( e j ω ) X_{DTFT}(e^{j\omega}) XDTFT(ejω) (原序列DTFT) 在 N N N 个点上的采样。
补零不改变DTFT的包络形状,但增加了DFT的采样点数(提高了频率分辨率),使DFT谱更精细,能更好显示DTFT的细节。补零可以用来通过FFT计算线性卷积。
七、题型六:快速傅里叶变换 (FFT)
FFT是DFT的一种高效算法,利用旋转因子 W N k n W_N^{kn} WNkn 的对称性和周期性减少运算量。主要有时间抽取 (DIT) 和频率抽取 (DIF) 两大类。
1. DIT-FFT (Decimation-In-Time FFT / 时域抽取法)
- 基本思想: 将输入序列 x [ n ] x[n] x[n] 按奇偶项分解为两个 N / 2 N/2 N/2 点的子序列。
X [ k ] = ∑ m = 0 N / 2 − 1 x [ 2 m ] W N 2 m k + ∑ m = 0 N / 2 − 1 x [ 2 m + 1 ] W N ( 2 m + 1 ) k X[k] = \sum_{m=0}^{N/2-1} x[2m]W_N^{2mk} + \sum_{m=0}^{N/2-1} x[2m+1]W_N^{(2m+1)k} X[k]=∑m=0N/2−1x[2m]WN2mk+∑m=0N/2−1x[2m+1]WN(2m+1)k
利用 W N 2 = W N / 2 W_N^2 = W_{N/2} WN2=WN/2,
X [ k ] = ∑ m = 0 N / 2 − 1 x e v e n [ m ] W N / 2 m k + W N k ∑ m = 0 N / 2 − 1 x o d d [ m ] W N / 2 m k X[k] = \sum_{m=0}^{N/2-1} x_{even}[m]W_{N/2}^{mk} + W_N^k \sum_{m=0}^{N/2-1} x_{odd}[m]W_{N/2}^{mk} X[k]=∑m=0N/2−1xeven[m]WN/2mk+WNk∑m=0N/2−1xodd[m]WN/2mk
X [ k ] = G [ k ] + W N k H [ k ] X[k] = G[k] + W_N^k H[k] X[k]=G[k]+WNkH[k] for k = 0 , … , N − 1 k=0, \dots, N-1 k=0,…,N−1 (注意 G [ k ] G[k] G[k] 和 H [ k ] H[k] H[k] 是 N / 2 N/2 N/2 点DFT,周期为 N / 2 N/2 N/2) - 对于 k = 0 , … , N / 2 − 1 k = 0, \dots, N/2-1 k=0,…,N/2−1:
X [ k ] = G [ k ] + W N k H [ k ] X[k] = G[k] + W_N^k H[k] X[k]=G[k]+WNkH[k] - 利用 W N k + N / 2 = − W N k W_N^{k+N/2} = -W_N^k WNk+N/2=−WNk 和 G [ k + N / 2 ] = G [ k ] , H [ k + N / 2 ] = H [ k ] G[k+N/2]=G[k], H[k+N/2]=H[k] G[k+N/2]=G[k],H[k+N/2]=H[k]:
X [ k + N / 2 ] = G [ k ] − W N k H [ k ] X[k+N/2] = G[k] - W_N^k H[k] X[k+N/2]=G[k]−WNkH[k] for k = 0 , … , N / 2 − 1 k=0, \dots, N/2-1 k=0,…,N/2−1 - 蝶形运算 (Butterfly Operation):
输入 A , B A, B A,B,旋转因子 W N p W_N^p WNp。
输出 A ′ = A + W N p B A' = A + W_N^p B A′=A+WNpB
输出 B ′ = A − W N p B B' = A - W_N^p B B′=A−WNpB - 特点:
- 输入序列需要按位倒序 (bit-reversed order) 排列。
- 输出序列是自然顺序 (natural order)。
- 逐级分解,直到2点DFT。
2. DIF-FFT (Decimation-In-Frequency FFT / 频域抽取法)
- 基本思想: 将输出序列 X [ k ] X[k] X[k] 按奇偶项分解。
x [ n ] x[n] x[n] 分为前半部分 x 1 [ n ] = x [ n ] x_1[n]=x[n] x1[n]=x[n] 和后半部分 x 2 [ n ] = x [ n + N / 2 ] x_2[n]=x[n+N/2] x2[n]=x[n+N/2] for n = 0 , … , N / 2 − 1 n=0, \dots, N/2-1 n=0,…,N/2−1.
X [ 2 k ] = ∑ n = 0 N / 2 − 1 ( x [ n ] + x [ n + N / 2 ] ) W N / 2 k n X[2k] = \sum_{n=0}^{N/2-1} (x[n]+x[n+N/2]) W_{N/2}^{kn} X[2k]=∑n=0N/2−1(x[n]+x[n+N/2])WN/2kn (偶数频率分量DFT)
X [ 2 k + 1 ] = ∑ n = 0 N / 2 − 1 ( ( x [ n ] − x [ n + N / 2 ] ) W N n ) W N / 2 k n X[2k+1] = \sum_{n=0}^{N/2-1} ((x[n]-x[n+N/2])W_N^n) W_{N/2}^{kn} X[2k+1]=∑n=0N/2−1((x[n]−x[n+N/2])WNn)WN/2kn (奇数频率分量DFT) - 蝶形运算:
输入 A , B A, B A,B。
输出 A ′ = A + B A' = A+B A′=A+B
输出 B ′ = ( A − B ) W N p B' = (A-B)W_N^p B′=(A−B)WNp (旋转因子在输出端) - 特点:
- 输入序列是自然顺序。
- 输出序列需要按位倒序排列。
3. 蝶形图 (Butterfly Diagram) - 以8点DIT-FFT为例
- N = 8 = 2 3 N=8=2^3 N=8=23 点FFT有 M = log 2 N = 3 M = \log_2 N = 3 M=log2N=3 级。
- 输入位倒序:
x [ 000 ] → x [ 0 ] x[000] \to x[0] x[000]→x[0]
x [ 001 ] → x [ 4 ] x[001] \to x[4] x[001]→x[4]
x [ 010 ] → x [ 2 ] x[010] \to x[2] x[010]→x[2]
x [ 011 ] → x [ 6 ] x[011] \to x[6] x[011]→x[6]
x [ 100 ] → x [ 1 ] x[100] \to x[1] x[100]→x[1]
x [ 101 ] → x [ 5 ] x[101] \to x[5] x[101]→x[5]
x [ 110 ] → x [ 3 ] x[110] \to x[3] x[110]→x[3]
x [ 111 ] → x [ 7 ] x[111] \to x[7] x[111]→x[7]
输入顺序为 x [ 0 ] , x [ 4 ] , x [ 2 ] , x [ 6 ] , x [ 1 ] , x [ 5 ] , x [ 3 ] , x [ 7 ] x[0], x[4], x[2], x[6], x[1], x[5], x[3], x[7] x[0],x[4],x[2],x[6],x[1],x[5],x[3],x[7]。 - 第一级 (2点DFT):
( x [ 0 ] , x [ 4 ] ) → ( G 0 [ 0 ] , G 0 [ 1 ] ) (x[0], x[4]) \to (G_0[0], G_0[1]) (x[0],x[4])→(G0[0],G0[1]) with W 8 0 W_8^0 W80
( x [ 2 ] , x [ 6 ] ) → ( G 1 [ 0 ] , G 1 [ 1 ] ) (x[2], x[6]) \to (G_1[0], G_1[1]) (x[2],x[6])→(G1[0],G1[1]) with W 8 0 W_8^0 W80
( x [ 1 ] , x [ 5 ] ) → ( H 0 [ 0 ] , H 0 [ 1 ] ) (x[1], x[5]) \to (H_0[0], H_0[1]) (x[1],x[5])→(H0[0],H0[1]) with W 8 0 W_8^0 W80
( x [ 3 ] , x [ 7 ] ) → ( H 1 [ 0 ] , H 1 [ 1 ] ) (x[3], x[7]) \to (H_1[0], H_1[1]) (x[3],x[7])→(H1[0],H1[1]) with W 8 0 W_8^0 W80 - 第二级 (4点DFT的组合):
( G 0 [ 0 ] , G 1 [ 0 ] ) (G_0[0], G_1[0]) (G0[0],G1[0]) with W 8 0 W_8^0 W80 and ( G 0 [ 1 ] , G 1 [ 1 ] ) (G_0[1], G_1[1]) (G0[1],G1[1]) with W 8 2 W_8^2 W82 to form intermediate X e v e n [ 0..3 ] X_{even}[0..3] Xeven[0..3]
( H 0 [ 0 ] , H 1 [ 0 ] ) (H_0[0], H_1[0]) (H0[0],H1[0]) with W 8 0 W_8^0 W80 and ( H 0 [ 1 ] , H 1 [ 1 ] ) (H_0[1], H_1[1]) (H0[1],H1[1]) with W 8 2 W_8^2 W82 to form intermediate X o d d [ 0..3 ] X_{odd}[0..3] Xodd[0..3] - 第三级 (8点DFT的组合):
( X e v e n [ 0 ] , X o d d [ 0 ] ) (X_{even}[0], X_{odd}[0]) (Xeven[0],Xodd[0]) with W 8 0 W_8^0 W80
( X e v e n [ 1 ] , X o d d [ 1 ] ) (X_{even}[1], X_{odd}[1]) (Xeven[1],Xodd[1]) with W 8 1 W_8^1 W81
( X e v e n [ 2 ] , X o d d [ 2 ] ) (X_{even}[2], X_{odd}[2]) (Xeven[2],Xodd[2]) with W 8 2 W_8^2 W82
( X e v e n [ 3 ] , X o d d [ 3 ] ) (X_{even}[3], X_{odd}[3]) (Xeven[3],Xodd[3]) with W 8 3 W_8^3 W83
得到自然顺序的 X [ 0 ] , … , X [ 7 ] X[0], \dots, X[7] X[0],…,X[7]。
4. 计算量对比 (N点变换, N = 2 M N=2^M N=2M)
运算类型 | DFT (直接计算) | FFT (基2) |
---|---|---|
复数乘法 | N 2 N^2 N2 | ( N / 2 ) log 2 N (N/2)\log_2 N (N/2)log2N |
复数加法 | N ( N − 1 ) N(N-1) N(N−1) | N log 2 N N \log_2 N Nlog2N |
- 1次复数乘法 ≈ \approx ≈ 4次实数乘法 + 2次实数加法
- 1次复数加法 ≈ \approx ≈ 2次实数加法
FFT大大减少了运算量,特别是对于大的N。
八、总结:时域与频域的对偶关系
时域特性 (信号类型) | 频域特性 (频谱类型) | 对应变换 (主要数学工具) |
---|---|---|
连续,周期 | 离散,非周期 | 傅里叶级数 (FS - Fourier Series) |
连续,非周期 | 连续,非周期 | 傅里叶变换 (FT - Fourier Transform) |
离散,周期 | 离散,周期 | 离散傅里叶级数 (DFS - Discrete Fourier Series) |
离散,非周期 | 连续,周期 | 离散时间傅里叶变换 (DTFT - Discrete-Time Fourier Transform) |
(有限长序列) | (DTFT的N点等间隔采样) | (N点)离散傅里叶变换 (DFT - Discrete Fourier Transform) |
- 一个域的离散性 ⇔ \Leftrightarrow ⇔ 另一个域的周期性。
- 一个域的连续性 ⇔ \Leftrightarrow ⇔ 另一个域的非周期性。