卷积、频域乘积和矩阵向量乘积三种形式之间的等价关系与转换

线性移不变系统

线性移不变系统(Linear Time-Invariant System, LTI系统)同时满足线性和时不变性两个条件。

  1. 线性 :如果输入信号的加权和通过系统后,输出是这些输入信号单独通过系统后的输出的相同加权和,那么该系统就是线性的。数学上,对于任意输入信号 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(⋅)表示系统对输入的响应,则该系统是线性的。

  2. 时不变性 :如果一个系统的输入信号延迟一段时间后,其输出仅仅是原输出信号同样延迟的时间,而没有其他变化,那么该系统就是时不变的。即,对于任意输入信号 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)实现的频域乘积可以显著提高计算效率。

  1. 傅里叶变换 :首先对输入信号 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,解释见这里
  2. 频域乘积 :在频域中,将 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)
  3. 逆傅里叶变换 :对 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)}


时域卷积到矩阵向量乘积

①→③对于有限长的离散信号,卷积可以完全等价地用矩阵向量乘积来表示。这种方法在实现离散信号处理算法时非常有用,它可以利用线性代数来进行表示和计算。

  1. 构建卷积矩阵 :根据冲激响应 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]
  2. 矩阵向量乘积 :将输入信号 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进行循环卷积。

  1. 提取冲激响应 :从卷积矩阵 H \mathbf{H} H中提取冲激响应 h [ n ] h[n] h[n]。通常, H \mathbf{H} H的第一行或第一列就是 h [ n ] h[n] h[n]。
  2. 计算卷积 :使用提取的 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)

总结

  • 时域卷积频域乘积 通过傅里叶变换和逆傅里叶变换相互转换。
  • 时域卷积矩阵向量乘积 通过构建卷积矩阵实现相互转换。
  • 矩阵向量乘积时域卷积 通过提取卷积矩阵中的冲激响应实现。
相关推荐
IT古董3 小时前
【机器学习】机器学习中用到的高等数学知识-1.线性代数 (Linear Algebra)
人工智能·python·线性代数·机器学习
远望清一色3 小时前
基于MATLAB身份证号码识别
开发语言·图像处理·算法·matlab
生信与遗传解读3 小时前
基于python的线性代数相关计算
python·线性代数·机器学习
取个名字真难呐4 小时前
矩阵乘法实现获取第i行,第j列值,矩阵大小不变
python·线性代数·矩阵·numpy
金蝶软件小李6 小时前
深度学习和图像处理
图像处理·深度学习·计算机视觉
慕容复之巅6 小时前
基于MATLAB的条形码的识别图像处理报告
开发语言·图像处理·matlab
可均可可7 小时前
C++之OpenCV入门到提高005:005 图像操作
c++·图像处理·opencv·图像操作
浪里个浪的10248 小时前
【C语言】从3x5矩阵计算前三行平均值并扩展到4x5矩阵
c语言·开发语言·矩阵
phoenix@Capricornus9 小时前
矩阵的对角化&特征值分解
图像处理·线性代数·机器学习·矩阵