线性移不变系统
线性移不变系统(Linear Time-Invariant System, LTI系统)同时满足线性和时不变性两个条件。
-
线性:如果输入信号的加权和通过系统后,输出是这些输入信号单独通过系统后的输出的相同加权和,那么该系统就是线性的。数学上,对于任意输入信号 x 1 ( t ) x_1(t) x1(t)和 x 2 ( t ) x_2(t) x2(t),以及任意常数 a a a和 b b b,如果系统满足:
y ( t ) = a ⋅ h ( x 1 ( t ) ) + b ⋅ h ( x 2 ( t ) ) y(t) = a \cdot h(x_1(t)) + b \cdot h(x_2(t)) y(t)=a⋅h(x1(t))+b⋅h(x2(t))
其中 h ( ⋅ ) h(\cdot) h(⋅)表示系统对输入的响应,则该系统是线性的。 -
时不变性:如果一个系统的输入信号延迟一段时间后,其输出仅仅是原输出信号同样延迟的时间,而没有其他变化,那么该系统就是时不变的。即,对于任意输入信号 x ( t ) x(t) x(t)及其延迟版本 x ( t − τ ) x(t - \tau) x(t−τ),系统的输出也仅仅是 y ( t ) y(t) y(t)延迟了 τ \tau τ时间单位的版本 y ( t − τ ) y(t - \tau) y(t−τ)。
LTI系统的一个重要性质是,它们可以通过卷积来描述。具体来说,如果 h ( t ) h(t) h(t)是系统的冲激响应(即当输入为单位脉冲时系统的输出), x ( t ) x(t) x(t)是系统的输入信号,那么系统的输出 y ( t ) y(t) y(t)可以通过输入信号与冲激响应的卷积来计算:
y ( t ) = ( x ∗ h ) ( t ) = ∫ − ∞ ∞ x ( τ ) h ( t − τ ) d τ y(t) = (x * h)(t) = \int_{-\infty}^{\infty} x(\tau) h(t - \tau) d\tau y(t)=(x∗h)(t)=∫−∞∞x(τ)h(t−τ)dτ
这个卷积公式表示,LTI系统的输出是输入信号与系统冲激响应之间的一种加权平均。这一性质使得LTI系统在理论分析和实际应用中都变得极其重要,尤其是在滤波器设计、通信系统、图像处理等领域。通过理解系统的冲激响应,可以预测系统对任何输入信号的响应。
卷积还可以写成频域乘积和矩阵向量乘积两种形式。
三者之间的等价关系与转换
时域卷积到频域乘积
①→②和②→①根据卷积定理,时域中的卷积对应于频域中的乘积。时域卷积通常用于理论分析,而频域乘积则更常用于实际计算,尤其是当信号长度较长时,通过快速傅里叶变换(FFT)实现的频域乘积可以显著提高计算效率。
- 傅里叶变换:首先对输入信号 x ( t ) x(t) x(t)和冲激响应 h ( t ) h(t) h(t)进行傅里叶变换,得到它们的频域表示 X ( f ) X(f) X(f)和 H ( f ) H(f) H(f)。
X ( f ) = F { x ( t ) } X(f) = \mathcal{F}\{x(t)\} X(f)=F{x(t)}
H ( f ) = F { h ( t ) } H(f) = \mathcal{F}\{h(t)\} H(f)=F{h(t)}
这里是psf2otf,解释见这里。 - 频域乘积:在频域中,将 X ( f ) X(f) X(f)和 H ( f ) H(f) H(f)相乘,得到输出信号的频域表示 Y ( f ) Y(f) Y(f)。
Y ( f ) = X ( f ) H ( f ) Y(f) = X(f) H(f) Y(f)=X(f)H(f) - 逆傅里叶变换:对 Y ( f ) Y(f) Y(f)进行逆傅里叶变换,得到输出信号 y ( t ) y(t) y(t)。
y ( t ) = F − 1 { Y ( f ) } y(t) = \mathcal{F}^{-1}\{Y(f)\} y(t)=F−1{Y(f)}
时域卷积到矩阵向量乘积
①→③对于有限长的离散信号,卷积可以完全等价地用矩阵向量乘积来表示。这种方法在实现离散信号处理算法时非常有用,它可以利用线性代数来进行表示和计算。
- 构建卷积矩阵:根据冲激响应 h [ n ] h[n] h[n],构建卷积矩阵 H \mathbf{H} H。假设 x [ n ] x[n] x[n]的长度为 N N N, h [ n ] h[n] h[n]的长度为 M M M,则 H \mathbf{H} H是一个 ( N + M − 1 ) × N (N+M-1) \times N (N+M−1)×N的矩阵。
H = [ h [ 0 ] 0 ⋯ 0 h [ 1 ] h [ 0 ] ⋯ 0 ⋮ ⋮ ⋱ ⋮ h [ M − 1 ] h [ M − 2 ] ⋯ h [ 0 ] 0 h [ M − 1 ] ⋯ h [ 1 ] ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ h [ M − 1 ] ] \mathbf{H} = \begin{bmatrix} h[0] & 0 & \cdots & 0 \\ h[1] & h[0] & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ h[M-1] & h[M-2] & \cdots & h[0] \\ 0 & h[M-1] & \cdots & h[1] \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & h[M-1] \end{bmatrix} H= h[0]h[1]⋮h[M−1]0⋮00h[0]⋮h[M−2]h[M−1]⋮0⋯⋯⋱⋯⋯⋱⋯00⋮h[0]h[1]⋮h[M−1] - 矩阵向量乘积:将输入信号 x [ n ] x[n] x[n]表示为列向量 x \mathbf{x} x,计算输出向量 y \mathbf{y} y。
y = H x \mathbf{y} = \mathbf{H} \mathbf{x} y=Hx
矩阵向量乘积到时域卷积
③→①对于一个 n × n n \times n n×n的循环矩阵 C C C和一个 n n n维向量 x x x,计算 C x Cx Cx的过程实际上是一个卷积操作。设 c c c为 C C C的第一列,那么 C x Cx Cx等价于将 c c c和 x x x进行循环卷积。
- 提取冲激响应:从卷积矩阵 H \mathbf{H} H中提取冲激响应 h [ n ] h[n] h[n]。通常, H \mathbf{H} H的第一行或第一列就是 h [ n ] h[n] h[n]。
- 计算卷积:使用提取的 h [ n ] h[n] h[n]和输入信号 x [ n ] x[n] x[n]计算卷积。
y [ n ] = ( x ∗ h ) [ n ] = ∑ k = 0 M − 1 x [ n − k ] h [ k ] y[n] = (x * h)[n] = \sum_{k=0}^{M-1} x[n-k] h[k] y[n]=(x∗h)[n]=k=0∑M−1x[n−k]h[k]
矩阵向量乘积到频域乘积
③→②[循环矩阵和BCCB矩阵的对角化,即特征值分解,特征值是傅里叶系数,特征向量是傅里叶变换基。](https://blog.csdn.net/u013600306/article/details/143728757?spm=1001.2014.3001.5501)
总结
- 时域卷积 和 频域乘积 通过傅里叶变换和逆傅里叶变换相互转换。
- 时域卷积 和 矩阵向量乘积 通过构建卷积矩阵实现相互转换。
- 矩阵向量乘积 到 时域卷积 通过提取卷积矩阵中的冲激响应实现。