前言
最近学习以下IIR滤波器和FIR滤波器
前置
1. 时域和频域
时域和频域代表着频率和时间与振幅的一一对应关系
2. 卷积运算
关于卷积的定义,详情请看 这篇文章能让你明白卷积
卷积运算是一种数学运算,广泛应用于信号处理、图像处理、控制系统和概率论等领域。卷积运算可以看作是两个函数之间的一种积分操作,用于描述一个函数在另一个函数上的“滑动”效果。
连续卷积:
对于连续函数 f ( t ) f(t) f(t)和 g ( t ) g(t) g(t)它们的卷积定义为:
( f ∗ g ) ( t ) = ∫ − ∞ ∞ f ( τ ) g ( t − τ ) d τ (f * g)(t) = \int_{-\infty}^{\infty} f(\tau) g(t - \tau) \, d\tau (f∗g)(t)=∫−∞∞f(τ)g(t−τ)dτ
离散卷积
对于离散函数 f [ n ] f[n] f[n] 和 g [ n ] g[n] g[n],他们的卷积定义为:
( f ∗ g ) [ n ] = ∑ k = − ∞ ∞ f [ k ] g [ n − k ] (f * g)[n] = \sum_{k=-\infty}^{\infty} f[k] g[n - k] (f∗g)[n]=k=−∞∑∞f[k]g[n−k]
卷积运算的性质
1. 交换律
f
∗
g
=
g
∗
f
f * g = g * f
f∗g=g∗f
这意味着两个函数的卷积不受顺序影响。
2. 结合律(结合性)
(
f
∗
g
)
∗
h
=
f
∗
(
g
∗
h
)
(f * g) * h = f * (g * h)
(f∗g)∗h=f∗(g∗h)
这意味着多重卷积的计算顺序可以随意改变。
3.分配律
f
∗
(
g
+
h
)
=
(
f
∗
g
)
+
(
f
∗
h
)
f * (g + h) = (f * g) + (f * h)
f∗(g+h)=(f∗g)+(f∗h)
这意味着卷积运算对加法是分配的。
4. 与冲激函数的卷积(单位冲激函数)
对于单位冲激函数 δ ( t ) \delta(t) δ(t)有:
f
∗
δ
=
f
f * \delta = f
f∗δ=f
这意味着任何函数与单位冲激函数的卷积等于该函数本身。
5.平移性
f
(
t
−
t
0
)
∗
g
(
t
)
=
(
f
∗
g
)
(
t
−
t
0
)
f(t - t_0) * g(t) = (f * g)(t - t_0)
f(t−t0)∗g(t)=(f∗g)(t−t0)
这意味着函数的平移在卷积后仍然保留。
卷积定理
在傅里叶变换域中,卷积运算可以转化为点乘运算。具体来说,如果 F ( ω ) F(\omega) F(ω) 和 G ( ω ) G(\omega) G(ω)分别是 f ( t ) f(t) f(t) 和 g ( t ) g(t) g(t) 的傅里叶变换,那么:
F { f ∗ g } = F { f } ⋅ F { g } \mathcal{F}\{f * g\} = \mathcal{F}\{f\} \cdot \mathcal{F}\{g\} F{f∗g}=F{f}⋅F{g}
反之亦然,即傅里叶变换的点乘可以通过逆傅里叶变换转化为时域的卷积运算。
3. 傅里叶变换
傅里叶变换将一个时域信号转换到频域,使得可以分析信号的频率成分。对于非周期信号,傅里叶变换定义为:
F ( w ) = ∫ − ∞ ∞ f ( t ) e − j π t d t F(w) = \int_{-\infty}^{\infty} f(t) e^{-j\pi t} \, dt F(w)=∫−∞∞f(t)e−jπtdt
其中 F ( w ) F(w) F(w)是频域表示,称为频谱。 f ( t ) f(t) f(t)是时域信号,w是角频率
逆傅里叶变换可以将频域信号转换回时域:
f ( t ) = 1 2 π ∫ − ∞ ∞ F ( w ) e j π t d w f(t) = \frac{1}{2\pi}\int_{-\infty}^{\infty} F(w) e^{j\pi t} \, dw f(t)=2π1∫−∞∞F(w)ejπtdw
关键点包括:
-
频域与时域的对应关系:时域信号可以通过傅里叶变换转换到频域,反之亦然。这提供了分析和处理信号的新方法。
-
频谱:傅里叶变换的结果 F ( w ) F(w) F(w)称为信号的频谱,表示信号在不同频率成分上的分布。
-
正交性 : 正弦和余弦函数是正交的,这使得傅里叶级数能够分解任何周期信号,而傅里叶变换能够分解任何非周期信号。
-
卷积定理 : 时域中的卷积对应于频域中的乘积,这大大简化了信号处理中的卷积运算。
我们常见的其实会由这个卷积定理延申出来一个定理:
为了接下来的这个问题,我们需要用到一些傅里叶变换的性质:
1. 线性性质
傅里叶变换是线性的。对于任意两个信号 x 1 ( t ) x_1(t) x1(t) 和 x 2 ( t ) x_2(t) x2(t),以及任意常数 a a a 和 b b b,有:
F { a x 1 ( t ) + b x 2 ( t ) } = a X 1 ( ω ) + b X 2 ( ω ) \mathcal{F}\{a x_1(t) + b x_2(t)\} = a X_1(\omega) + b X_2(\omega) F{ax1(t)+bx2(t)}=aX1(ω)+bX2(ω)
2. 平移性质
如果一个信号 x ( t ) x(t) x(t) 在时域上平移 t 0 t_0 t0,其傅里叶变换为:
F { x ( t − t 0 ) } = X ( ω ) e − i ω t 0 \mathcal{F}\{x(t - t_0)\} = X(\omega) e^{-i\omega t_0} F{x(t−t0)}=X(ω)e−iωt0
3. 调制性质
如果一个信号 x ( t ) x(t) x(t) 在时域上乘以一个复指数函数 e i ω 0 t e^{i\omega_0 t} eiω0t,其傅里叶变换为:
F { x ( t ) e i ω 0 t } = X ( ω − ω 0 ) \mathcal{F}\{x(t) e^{i\omega_0 t}\} = X(\omega - \omega_0) F{x(t)eiω0t}=X(ω−ω0)
4. 微分性质
如果一个信号 x ( t ) x(t) x(t) 的导数 d n x ( t ) d t n \frac{d^n x(t)}{dt^n} dtndnx(t) 存在,其傅里叶变换为:
F { d n x ( t ) d t n } = ( i ω ) n X ( ω ) \mathcal{F}\left\{\frac{d^n x(t)}{dt^n}\right\} = (i\omega)^n X(\omega) F{dtndnx(t)}=(iω)nX(ω)
5. 卷积性质
如果两个信号
x
1
(
t
)
x_1(t)
x1(t) 和
x
2
(
t
)
x_2(t)
x2(t) 的卷积
(
x
1
∗
x
2
)
(
t
)
(x_1 * x_2)(t)
(x1∗x2)(t) 存在,其傅里叶变换为:
F { ( x 1 ∗ x 2 ) ( t ) } = X 1 ( ω ) ⋅ X 2 ( ω ) \mathcal{F}\{(x_1 * x_2)(t)\} = X_1(\omega) \cdot X_2(\omega) F{(x1∗x2)(t)}=X1(ω)⋅X2(ω)
时域的卷积等于频域相乘
这是怎么来的呢,我们首先知道两个时域信号 x ( t ) x(t) x(t)和 h ( t ) h(t) h(t)的卷积:
( x ∗ h ) ( t ) = ∫ − ∞ ∞ x ( τ ) h ( t − τ ) d τ (x * h)(t) = \int_{-\infty}^{\infty} x(\tau) h(t - \tau) \, d\tau (x∗h)(t)=∫−∞∞x(τ)h(t−τ)dτ
我们得到X(f)和H(f)是他们分别通过傅里叶变换得到的频域表示,那么时域中的卷积
x
(
t
)
∗
h
(
t
)
x(t) * h(t)
x(t)∗h(t)就对应于频域中的乘积
X
(
f
)
⋅
H
(
f
)
X(f)·H(f)
X(f)⋅H(f)
也就是说,时域中的复杂操作,我们最后用频域中的简单操作就可以指代了。
换句话说:
时域信号可以分解成一串不同频率正弦信号的叠加。根据卷积的分配率,两个时域信号的卷积最终可以展开成两两正弦信号的卷积的和。由于不同频率的正弦信号的卷积为0,所以最终只剩下相同频率的正弦信号的卷积。而卷积的结果就是频率不变,幅度相乘。
在频域里边就表现为直接相乘。
关于这句话,我们还可以生硬的推导一下:
推导
卷积定理的推导
我们首先知道两个时域信号 x ( t ) x(t) x(t) 和 h ( t ) h(t) h(t) 的卷积定义为:
( x ∗ h ) ( t ) = ∫ − ∞ ∞ x ( τ ) h ( t − τ ) d τ (x * h)(t) = \int_{-\infty}^{\infty} x(\tau) h(t - \tau) \, d\tau (x∗h)(t)=∫−∞∞x(τ)h(t−τ)dτ
令 y ( t ) = ( x ∗ h ) ( t ) y(t) = (x * h)(t) y(t)=(x∗h)(t),则 y ( t ) y(t) y(t) 是 x ( t ) x(t) x(t) 和 h ( t ) h(t) h(t) 的卷积。
傅里叶变换
对 y ( t ) y(t) y(t) 进行傅里叶变换:
Y ( f ) = F { y ( t ) } = F { ∫ − ∞ ∞ x ( τ ) h ( t − τ ) d τ } Y(f) = \mathcal{F}\{y(t)\} = \mathcal{F}\left\{\int_{-\infty}^{\infty} x(\tau) h(t - \tau) \, d\tau\right\} Y(f)=F{y(t)}=F{∫−∞∞x(τ)h(t−τ)dτ}
根据傅里叶变换的线性性质,我们可以将积分符号放到傅里叶变换操作符的前面:
Y ( f ) = ∫ − ∞ ∞ x ( τ ) F { h ( t − τ ) } d τ Y(f) = \int_{-\infty}^{\infty} x(\tau) \mathcal{F}\{h(t - \tau)\} \, d\tau Y(f)=∫−∞∞x(τ)F{h(t−τ)}dτ
时移性质
根据傅里叶变换的时移性质,如果 h ( t − τ ) h(t - \tau) h(t−τ) 的傅里叶变换为 H ( f ) H(f) H(f),则:
F { h ( t − τ ) } = H ( f ) e − i 2 π f τ \mathcal{F}\{h(t - \tau)\} = H(f) e^{-i2\pi f \tau} F{h(t−τ)}=H(f)e−i2πfτ
将其代入上式:
Y ( f ) = ∫ − ∞ ∞ x ( τ ) H ( f ) e − i 2 π f τ d τ Y(f) = \int_{-\infty}^{\infty} x(\tau) H(f) e^{-i2\pi f \tau} \, d\tau Y(f)=∫−∞∞x(τ)H(f)e−i2πfτdτ
分离变量
将 H ( f ) H(f) H(f) 从积分符号中分离出来:
Y ( f ) = H ( f ) ∫ − ∞ ∞ x ( τ ) e − i 2 π f τ d τ Y(f) = H(f) \int_{-\infty}^{\infty} x(\tau) e^{-i2\pi f \tau} \, d\tau Y(f)=H(f)∫−∞∞x(τ)e−i2πfτdτ
这里, ∫ − ∞ ∞ x ( τ ) e − i 2 π f τ d τ \int_{-\infty}^{\infty} x(\tau) e^{-i2\pi f \tau} \, d\tau ∫−∞∞x(τ)e−i2πfτdτ 是 x ( t ) x(t) x(t) 的傅里叶变换:
X ( f ) = ∫ − ∞ ∞ x ( τ ) e − i 2 π f τ d τ X(f) = \int_{-\infty}^{\infty} x(\tau) e^{-i2\pi f \tau} \, d\tau X(f)=∫−∞∞x(τ)e−i2πfτdτ
因此:
Y ( f ) = X ( f ) ⋅ H ( f ) Y(f) = X(f) \cdot H(f) Y(f)=X(f)⋅H(f)
总结
我们得到了频域中的乘积:
Y ( f ) = X ( f ) ⋅ H ( f ) Y(f) = X(f) \cdot H(f) Y(f)=X(f)⋅H(f)
这表明时域中的卷积对应于频域中的乘积。这就是卷积定理的内容。