Logo

数字信号处理

1. 引言

数字信号处理(DSP)(\text{DSP})是通过离散化与数学模型高效处理多领域数据(如金融、通信、生物医学信号)的技术,其核心是将连续信号转换为离散时间序列。线性代数的子空间理论为此提供了结构化框架:离散信号空间 S ~\mathbb{S}~的子空间(如有限长信号子空间 Sn ~\mathbb{S}_n~)通过基向量(如移位单位脉冲)将信号编码为有限维向量,简化存储与运算;无限维子空间Sf\mathbb{S}_f支持动态数据流处理。

2. 离散时间信号

离散时间信号是无限序列 {yk} ~\{y_k\}~,其中下标 k ~k~覆盖所有整数,表示在离散时间点上的采样值。例如,股票每日价格、传感器周期性读数等均可视为离散时间信号。其核心特性包括:
  • 离散性:仅在整数时间点定义,与连续时间信号形成对比。

  • 结构化表示:通过向量空间 S ~\mathbb{S}~描述,支持线性代数操作(如加法、标量乘法)。

下面是常用的离散时间信号类型:
典型信号类型
信号名称符号向量正式描述
单位脉冲δ\delta(,0,0,0,1,0,0,0,)(\ldots,0,0,0,1,0,0,0,\ldots){dk}, where dk={1if k=00if k0\{d_k\}, \text{ where } d_k = \begin{cases} 1 & \text{if } k = 0 \\ 0 & \text{if } k \neq 0 \end{cases}
单位阶跃ν\nu(,0,0,0,1,1,1,1,)(\ldots,0,0,0,1,1,1,1,\ldots){uk}, where uk={1if k00if k<0\{u_k\}, \text{ where } u_k = \begin{cases} 1 & \text{if } k \geq 0 \\ 0 & \text{if } k < 0 \end{cases}
常数信号χ\chi(,1,1,1,1,1,1,1,)(\ldots,1,1,1,1,1,1,1,\ldots){ck}, where ck=1\{c_k\}, \text{ where } c_k = 1
交替信号α\alpha(,1,1,1,1,1,1,1,)(\ldots,-1,1,-1,1,-1,1,-1,\ldots){ak}, where ak=(1)k\{a_k\}, \text{ where } a_k = (-1)^k
斐波那契信号FF(,2,1,1,0,1,1,2,)(\ldots,2,-1,1,0,1,1,2,\ldots){fk}, where fk={0if k=01if k=1\{f_k\}, \text{ where } f_k = \begin{cases} 0 & \text{if } k = 0 \\ 1 & \text{if } k = 1 \end{cases}
指数信号ϵc\epsilon_c(,c2,c1,c0,c1,c2,)(\ldots,c^{-2},c^{-1},c^0,c^1,c^2,\ldots){ek}, where ek=ck\{e_k\}, \text{ where } e_k = c^k
另一种常见的离散信号类型是周期性信号,其特点是信号的值在每隔一个固定的整数 q ~q~后重复。换句话说,对于所有整数 k ~k~,信号的值 pk ~p_k~ pk+q ~p_k+q~是相等的。例如,正弦信号是周期信号的数学表达式为:
σf,θ={cos(fkπ+θπ)}\sigma_{f,\theta} = \{ \cos(f k \pi + \theta \pi) \}
其中,f f~是频率,表示信号的周期性变化速率,θ \theta~是相位偏移,表示信号的起始位置。下图展示了正弦信号 {cos(16πk+14π)} ~\left\{ \cos\left( \frac{1}{6} \pi k + \frac{1}{4} \pi \right) \right\}~的点阵图:

开通会员解锁全部动画

3. 线性时不变( LTI )(\text{~LTI}~)变换

线性时不变( LTI, Linear Time-Invariant )(\text{~LTI,~Linear Time-Invariant~})变换是信号处理中的核心工具,广泛应用于通信、控制、音频处理、图像处理等领域。其关键特性包括线性和时不变性,这使得 LTI ~\text{LTI}~变换可进一步简化数学模型。下面是线性时不变变换的具体定义:

1\mathbf{1}:设 S ~\mathbb{S}~是将信号中每个元素右移一位的变换(移位变换),即
S({xk})={yk},其中  yk=xk1S(\{x_k\}) = \{y_k\},\quad \small{其中}~~ y_k = x_{k-1}
为简化符号,写作 S({xk})={xk1} ~S(\{x_k\}) = \{x_{k-1}\}~。左移变换为 S1 ~S^{-1}~,即:
S1({xk})={xk+1}S^{-1}(\{x_k\}) = \{x_{k+1}\}
验证S \mathbb{S}~是线性时不变( LTI )(~\text{LTI}~)变换,并说明其可逆性。

  • 加法封闭:对任意信号 {xk} ~\{x_k\}~ {yk} ~\{y_k\}~
    S({k+yk})={k1+yk1}=S({k})+S({yk})S(\{k + y_k\}) = \{k-1 + y_{k-1}\} = S(\{k\}) + S(\{y_k\})
  • 数乘封闭:对任意标量 c ~c~
    S(c{xk})={cxk1}=cS({xk})S(c\{x_k \}) = \{ c \cdot x_{k-1} \} = c \cdot S(\{ x_k \})

对任意整数 q ~q~,若输入信号时移 q ~q~位(即 {xk+q} ~\{x_{k+q}\}~),则输出信号也时移 q ~q~位:
S({xk+q})={x(k1)+q}={xk+q1}={yk+q}S(\{x_{k+q}\}) = \{x_{(k-1)+q}\} = \{x_{k+q-1}\} = \{y_{k+q}\}
其中 yk=xk1 ~y_k = x_{k-1}~,满足时不变性。

  • 右移后左移恢复原信号:
    S1(S({xk}))=S1({xk1})={x(k1)+1}={xk}=I({xk})S^{-1}(S(\{x_k\})) = S^{-1}(\{x_{k-1}\}) = \{x_{(k-1)+1}\} = \{x_k\} = I(\{x_k\})
  • 同理,左移后右移也恢复原信号::
    S(S1({xk}))=S({xk+1})={x(k+1)1}={xk}=I({xk})S(S^{-1}(\{x_k\})) = S(\{x_{k+1}\}) = \{x_{(k+1)-1}\} = \{x_k\} = I(\{x_k\})
    因此,S S~是可逆变换,且 S1S=SS1=I ~S^{-1}S = SS^{-1} = \mathbf{I}~
对单位信号 δ=(,0,1,0,) ~\delta = (\ldots, 0, 1, 0, \ldots)~应用 S1 ~S^{1}~ S1 ~S^{-1}~
  • S1(δ)=(,0,0,0,1,0,)S^1(\delta) = (\ldots, 0, 0, \textcolor{#2196f3}{0}, \textcolor{#f22222}{1}, 0, \ldots)(右移一位,k=1 k=1~处为 1 ~1~

  • S1(δ)=(,0,1,0,0,0)S^{-1}(\delta) = (\ldots, 0, \textcolor{#f22222}{1}, \textcolor{#2196f3}{0}, 0, 0 \ldots)(左移一位,k=1 k=-1~处为 1 ~1~

如下表所示,这些操作生成了信号空间 Sn ~\mathbb{S}_n~的基向量。
变换基向量表达式
.........
S2(δ)S^{-2}(\delta)(,1,0, 0, 0,0,)(\ldots,\textcolor{#f22222}{1},0,~\textcolor{#2196f3}{0},~0,0,\ldots){wk}, where wk={1if k=20if k2\{w_k\}, \text{ where } w_k = \begin{cases} 1 & \text{if } k = -2 \\ 0 & \text{if } k \neq -2 \end{cases}
S1(δ)S^{-1}(\delta)(,0,1, 0, 0,0,)(\ldots,0,\textcolor{#f22222}{1},~\textcolor{#2196f3}{0},~0,0,\ldots){xk}, where xk={1if k=10if k1\{x_k\}, \text{ where } x_k = \begin{cases} 1 & \text{if } k = -1 \\ 0 & \text{if } k \neq -1 \end{cases}
δ\delta(,0,0, 1, 0,0,)(\ldots,0,0,~\textcolor{#2196f3}{1},~0,0,\ldots){dk}, where dk={1if k=00if k0\{d_k\}, \text{ where } d_k = \begin{cases} 1 & \text{if } k = 0 \\ 0 & \text{if } k \neq 0 \end{cases}
S1(δ)S^{1}(\delta)(,0,0, 0, 1,0,)(\ldots,0,0,~\textcolor{#2196f3}{0},~\textcolor{#f22222}{1},0,\ldots){yk}, where yk={1if k=10if k1\{y_k\}, \text{ where } y_k = \begin{cases} 1 & \text{if } k = 1 \\ 0 & \text{if } k \neq 1 \end{cases}
S2(δ)S^{2}(\delta)(,0,0, 0 ,0,1,)(\ldots,0,0,~\textcolor{#2196f3}{0}~,0,\textcolor{#f22222}{1},\ldots){zk}, where zk={1if k=20if k2\{z_k\}, \text{ where } z_k = \begin{cases} 1 & \text{if } k = 2 \\ 0 & \text{if } k \neq 2 \end{cases}
.........

LTI \text{LTI}~变换是一类同时满足线性性(加法和数乘封闭)和时不变性的变换。它不仅继承了一般线性变换的数学性质,还额外要求系统响应与时间无关。因此,LTI\text{LTI}变换是线性变换中具有严格约束的特例。有如下定理:

4. LTI \text{LTI}~变换在信号处理中的应用

在数字信号处理( DSP )(~\text{DSP}~)中, LTI ~\text{LTI}~变换是处理和分析信号的核心工具之一。 LTI ~\text{LTI}~变换不仅可以用于平滑和过滤信号,还可以通过组合信号来生成更复杂和真实的信号。下面我们分别讨论 LTI ~\text{LTI}~变换在信号平滑和信号组合中的应用。

4.1 移动平均变换

移动平均变换( Moving Average, MA )(~\text{Moving Average, MA}~), 在信号处理中属于 LTI ~\text{LTI}~滤波器的一种。其核心思想是通过局部窗口内的数据平均值来平滑信号,抑制噪声或短期波动,突出长期趋势或周期性成分。

2\mathbf{2}:对于任意正整数 m ~m~,移动平均 LTI ~\text{LTI}~变换为 Mm ~M_m~定义为:
Mm({xk})={yk},其中  yk=1mj=km+1kxjM_m(\{x_k\}) = \{y_k\}, \quad \small{其中} ~~ y_k = \frac{1}{m} \sum_{j=k-m+1}^k x_j
移动平均变换 Mm ~M_m~的输出 yk ~y_k~是输入信号 xk ~x_k~在时间窗口 [km+1,k] ~[k-m+1,k]~内的平均值。假设有一个输入信号 {xk} ~\{x_k\}~,例如:
{xk}={0.25,0.29,0.51,0.77,0.86,0.97,}\{x_k\} = \{-0.25, -0.29, -0.51, -0.77, -0.86, -0.97,\cdots\}
对于 m=3 ~m=3~,计算每个 yk~y_k
y1=NANy2=NANy3=(x1+x2+x3)/3=0.35y4=(x2+x3+x4)/3=0.52y5=(x3+x4+x5)/3=0.71y6=(x4+x5+x6)/3=0.86\begin{alignat*}{5} y_1 &= \footnotesize{NAN} \\[1ex] y_2 &= \footnotesize{NAN} \\[1ex] y_3 &= (x_1 + x_2 + x_3) / 3 = -0.35 \\[1ex] y_4 &= (x_2 + x_3 + x_4) / 3 = -0.52 \\[1ex] y_5 &= (x_3 + x_4 + x_5) / 3 = -0.71 \\[1ex] y_6 &= (x_4 + x_5 + x_6) / 3 = -0.86 \\[1ex] & \cdots \end{alignat*}
从计算结果可以看出,经过移动平均变换后的输出信号 {yk} ~\{y_k\}~相比输入信号 {xk} ~\{x_k\}~更加平滑,数据波动明显减少。如下图所示:

开通会员解锁全部动画

4.2 信号组合与声学质量增强

可听化( auralization )(~\text{auralization}~)是一种声音信号处理技术,它通过组合和处理信号来增强虚拟声音的真实感。这种技术在虚拟现实、游戏音频、音乐制作和影视音效等领域广泛使用。它通过模拟现实世界中的声音特性,为用户提供一个更加沉浸和真实的听觉体验。例如,在虚拟现实和游戏音频中,可听化技术可以生成逼真的环境音效;在音乐制作中,它能够生成丰富的音色和效果;在影视音效中,可听化技术则用于创造复杂的背景音效和特殊效果。

3\mathbf{3}:下面来展示如何通过组合多个信号来生成更复杂和真实的虚拟声音。

开通会员解锁全部动画

  1. 原始信号:一个余弦信号 {cos(440πk)} ~\{\cos(440\pi k)\}~,其频率为 440Hz ~440Hz~,是一个单一频率的正弦波。

  2. 引入衰减的信号:通过引入衰减系数 (0.3)4k ~(0.3)^{4k}~,生成信号 {(0.3)4kcos(440πk)} ~\{(0.3)^{4k}\cos(440\pi k)\}~使信号逐渐减弱,模拟声音逐渐消失的效果。

  3. 多频率组合:通过组合三个不同频率的余弦信号{cos(420πk)+cos(440πk)+cos(460πk)}\{\cos(420\pi k) + \cos(440\pi k) + \cos(460\pi k)\},增加声音的复杂性和变化。

  4. 调制信号:通过调制信号 {(0.2)kcos(2π)cos(440πk)} ~\{(0.2)^k \cos(2\pi) \cos(440\pi k)\}~,进一步增强信号的变化。

5. 有限维子空间的基生成方法

在数字信号处理中,我们通常处理的是有限长度的信号,即在某个固定时间窗口内采样到的数据。这类信号可以表示为:
{yk}(yk=0, k<0  或  k>n)\{y_k\} \quad (y_k = 0,\ \forall k < 0 \small{~~或~~} k > n)
这意味着我们关心的信号只在从时间 k=0 ~k=0~ k=n ~k=n~的区间内有意义,其余部分均为零。我们将这类信号构成的集合定义为信号空间 Sn ~\mathbb{S}_n~,它是全集S\mathbb{S}(无限长度信号空间)的子空间:
Sn={{yk}S | yk=0, k<0 或 k>n}S_n = \left\{ \{y_k\} \in S \ \middle| \ y_k = 0, \ \forall k < 0 \small{~或~} k > n \right\}
即,Sn \mathbb{S}_n~是所有仅在时刻 k=0,1,2,,n ~k=0,1,2,\cdots,n~可能非零,其余位置全为零的信号所构成的子空间。为了对 Sn ~\mathbb{S}_n~中的信号进行表达与计算,我们需要构造一组基,使得任意信号都可以表示为这些基的线性组合。理想情况下,这组基应当具有线性无关性,并能覆盖整个 Sn ~\mathbb{S}_n~。我们有如下定理:

  1. 证明Bn\mathcal{B}_n Sn ~\mathbb{S}_n~的生成集

    • 任取{yk}Sn\{y_k\} \in \mathbb{S}_n,根据定义它仅在 k=0,1,,n ~k=0,1,\cdots,n~可能非零;

    • 我们可以将它表示为:
      {yk}=j=0nyjSj(δ)\{ y_k \} = \sum_{j=0}^{n} y_j \mathcal{S}^j(\delta)
    • 因此,任意 Sn ~\mathbb{S}_n~中的信号都可以由 Bn ~\mathcal{B}_n~中的元素线性组合得到,说明它是一个生成集。
  2. 证明Sn \mathbb{S}_n~是线性无关的

    • 假设存在实数 c0,c1,,cn ~c_0,c_1,\cdots,c_n~使得:
      c0δ+c1S(δ)++cnSn(δ)=0c_0 \delta + c_1 \mathcal{S}(\delta) + \cdots + c_n \mathcal{S}^n(\delta) = 0
    • 该线性组合对应的信号是:
      (,0,0,c0,c1,,cn,0,0,)(\ldots, 0, 0, c_0, c_1, \ldots, c_n, 0, 0, \ldots)
    • 若等于零信号,说明所有系数都为零,即:c0=c1==cn=0 c_0=c_1=\cdots = c_n = 0~
    • 因此,Bn\mathcal{B}_n是线性无关的。
  3. 结论

    • Bn \mathcal{B}_n~ Sn ~\mathbb{S}_n~的一组基;

    • 所以 Sn ~\mathbb{S}_n~是一个维数为 n+1 ~n+1~的向量空间,与 Rn+1 ~\mathbb{R}^{n+1}~同构。

4\mathbf{4}:使用基底
B2={ δ, S(δ), S2(δ) }\mathcal{B}_2 = \{~\delta,~S(\delta),~S^2(\delta)~\}
表示信号 {yk}S2 ~\{y_k\} \in \mathbb{S}_2~,其中:
yk={0,k<0 或 k>32,k=03,k=11,k=2y_k = \begin{cases} 0, & k < 0 \small{~或~} k > 3 \\ 2, & k = 0 \\ 3, & k = 1 \\ -1, & k = 2 \end{cases}
将该信号表示为 R3 ~\mathbb{R^3}~中的向量。

  1. 信号在 k=0, 1, 2 ~k=0,~1,~2~处分别为 2, 3, 1 ~2,~3,~-1~

  2. 这对应的线性组合为:
    {yk}=2δ+3S(δ)S2(δ)\{ y_k \} = 2\delta + 3\mathcal{S}(\delta) - \mathcal{S}^2(\delta)
  3. 所以其坐标向量为:
    [{yk}]B2=[231]R3[\{ y_k \}]_{\mathcal{B}_2} = \begin{bmatrix} 2 \\ 3 \\ -1 \end{bmatrix} \in \mathbb{R}^3

6. 有限支持信号空间及其无限维基

如果我们不再限制信号的长度,只要求“非零项是有限个”,这样的信号能否构成一个空间?又能否找到合适的基?这就引出了有限支持信号( finitely supported signals )(~\textbf{finitely supported signals}~)空间Sf\mathbb{S}_f的概念。Sf \mathbb{S}_f~是所有只有有限个非零项的离散信号{yk}\{y_k\}组成的集合,更形式化的表示为:
Sf={{yk}Syk0 仅在有限个 kZ 上成立 }\mathbb{S}_f = \left\{ \{ y_k \} \in \mathbb{S} \mid y_k \ne 0 \small{~仅在有限个~} k \in \mathbb{Z} \small{~上成立~} \right\}
  • SfS\mathbb{S}_f \subseteq \mathbb{S},是全体离散时间信号的子空间。

  • 它包含所有的 Sn ~\mathbb{S}_n~,即:
    nN, SnSf\forall n \in \mathbb{N},\ \mathbb{S}_n \subseteq \mathbb{S}_f
  • 例如:每天记录一支股票的价格,虽然数据每天在增长,但在任意时刻,仍只有有限长,它属于 Sf ~\mathbb{S}_f~,不属于某个固定的 Sn ~\mathbb{S}_n~
有限支持信号空间 Sf ~\mathbb{S}_f~依然可以用单位冲激信号 δ ~\delta~及其平移来构造基,有如下定理:

  1. 证明Bf\mathcal{B}_f Sf ~\mathbb{S}_f~的生成集

    • 任取 {yk}Sf~\{y_k\} \in \mathbb{S}_f,则它仅有有限个非零项;

    • 设其非零项出现在 k=p,p+1, ,,q ~k=p,p+1,~,\cdots,q~之间,p, qZ p,~q\in \mathbb{Z}~

    • 信号 {yk} ~\{y_k\}~可表示为:
      {yk}=j=pqyjSj(δ)\{ y_k \} = \sum_{j=p}^{q} y_j \cdot \mathcal{S}^j(\delta)
    • 所以 {yk} ~\{y_k\}~可由 Bf ~\mathcal{B}_f~中的有限多个元素线性组合得到。

    • 结论Bf\mathcal{B}_f生成了整个 Sf ~\mathbb{S}_f~

  2. 证明Bf\mathcal{B}_f线性无关

    • 假设存在有限个系数 cj ~c_j~,使得:
      j=pqcjSj(δ)=0\sum_{j=p}^{q} c_j \cdot \mathcal{S}^j(\delta) = 0
    • 展开后该信号在 k=p, ,, q ~k=p,~,\cdots,~q~处分别为 cp, , cq ~c_p,~\cdots,~c_q~
    • 若该线性组合为零信号,说明这些位置上的值都为 0 ~0~
      cp=cp+1==cq=0c_p = c_{p+1} = \cdots = c_q = 0
    • 因此,Bf\mathcal{B}_f中的元素线性无关。
  3. 结论

    • Bf \mathcal{B}_f~同时满足生成性和线性无关性;

    • 所以它是 Sf ~\mathbb{S}_f~的一组基;

    • 因为它包含无限多个元素( jZ )(~j \in \mathbb{Z}~),所以 Sf ~\mathbb{S}_f~无限维向量空间

有限支持信号空间 Sf ~\mathbb{S}_f~是一个无限维空间,因为它的基包含了无限多个元素。尽管这些基元素是通过平移单位冲激信号得到的,但它们的数量是无限的,因此整个空间 Sf ~\mathbb{S}_f~也是无限维的。