0%

数字信号处理之时域处理

本节主要介绍了数字信号处理中的一些时域上的处理,包括序列信号的线性时不变系统、线性卷积、Z变换等

数字信号的理解

  • 模拟信号:时域连续和幅度连续
  • 数字信号:时域和幅度均离散
  • 时域连续信号:时域连续、幅度连续或离散
  • 时域离散信号:时域离散、幅度连续或离散
  • 时域离散就意味着:
    • $x[n]$中$n$一定要是整数
  • 幅度离散并不要求幅度值一定是整数,只要是有限的状态值就可以了

序列的基本概念

1.任何序列都可以用单位样本序列$\delta (n)$来表示

$$
x(n)=\sum_{m=-\infty}^{\infty}x(m)\delta(n-m)
$$

2.正弦序列的周期性

  • 正弦序列$sin(mn)$不一定是周期信号

  • 若想要$sin(mn)$为周期信号,那么需满足
    $$
    sin(mn)=sinm(n+N)
    $$

  • 则需满足:
    $$
    mN = 2\pi k
    $$

    $$
    N=\frac{2\pi k}{m}
    $$

  • 而$N$需满足为整数,$k$也是整数,那么只有当$m$为$\pi$的倍数时,N才是整数,此时正弦序列$sin(mn)$才是周期信号

3.数字域频率

  • 数字域频率为:
    $$
    w_0=\Omega_0T_s=\frac{\Omega_0}{f_s}=2\pi\frac{f_0}{f_s}=\frac{2\pi}{N}
    $$

    $$
    其中:\Omega_0为模拟角频率(rad/s),\quad w_0为数字角频率(rad)\
    T_s为采样间隔(s),\quad f_s为采样频率(Hz),\quad f_0为模拟频率(Hz)\
    N=T_0\times f_s,其中T_0为原始模拟信号的周期
    $$

  • 推导过程:

    • 连续时间正弦信号:$x_a(t)=cos(\Omega_0t+\phi)$
    • 令$t=nT$,$T$为采样间隔
    • 则$x_a(t)|_{t=nT}=cos(\Omega nT+\phi)=x_a(nT)$
    • 将$x_a(nT)$简记为$x(n)$
    • $\Omega_0 T$记为$w_0$
    • 则离散时间正弦序列为:$x(n)=cos(w_0n+\phi)$

线性时不变系统

  • 线性特性:
    • $x(n)$做为一个整体只能是一次方,可以对$x(n)$乘以其它值;不能出现完全与$x(n)$无关的项;$x(n)$中的自变量$n$可以任意变换;
    • 线性是针对$x(n)$来讨论的
  • 时不变特性:
    • n必须作为$x(n)$(不能对$x(n)$乘以带$n$的系数,比如$sin(wn)$)中的自变量,不能对$n$进行乘法运算,可进行加减常数运算
    • 时不变是针对$n$来讨论的
  • 线性时不变特性:
    • $FIR$滤波:$y(n)=b_0x(n)+b_1x(n-1)+…b_rx(n-r)$的形式,其中$n-1,n-2..$也可为$n+1,n+2..$
    • $IIR$滤波:$y(n)+a_1y(n-1)+…=b_0x(n)+b_1x(n-1)+…b_rx(n-r)$的形式(需要满足$y(n)=0,n<0$)
  • 对于线性时不变系统因果稳定性的判定:
    • 因果性:$h(n)=0,n<0$
    • 稳定性:$\sum|h(n)|<\infty$
  • 系统的作用不过是改变正弦信号的幅度和相位

线性卷积

image-20231004202820105
  • 首先,定义系统对输入是单位脉冲序列的响应为单位脉冲响应,即:
    $$
    输入\delta (n)\rightarrow 输出h(n)
    $$

  • 其次,我们知道,任何一个序列信号都可以由单位脉冲序列表示,即:
    $$
    x(n)=\sum_{m=-\infty}^{\infty}x(m)\delta(n-m)
    $$

  • 此外,对于一个线性系统:
    $$
    \because \delta(n)\rightarrow h(n)\
    \therefore a\delta(n)\rightarrow ah(n)\
    \therefore a\delta(n-n_0)\rightarrow ah(n-n_0)
    $$

  • 那么$y(n)$就是$x(n)$经过线性系统的结果:
    $$
    \because x(n)=\cdots x(-1)\delta(n+1)+x(0)\delta(n)+x(1)\delta(n-1)+\cdots\
    \therefore y(n)=\cdots x(-1)h(n+1)+x(0)h(n)+x(1)h(n-1)+\cdots
    $$

  • 所以最终$y(n)$的结果是:
    $$
    y(n)=\sum_{m=-\infty}^{\infty}x(m)h(n-m)
    $$

  • 而我们称卷积为:
    $$
    y(n)=x(n)*h(n)=\sum_{m=-\infty}^{\infty}x(m)h(n-m)
    $$

    • 其中,$*$称为卷积运算
    • 卷积满足交换律:$x(n)h(n)=h(n)x(n)$
  • 所以系统输出$y(n)$就是输入$x(n)$与单位脉冲响应$h(n)$的卷积结果

1.卷积的意义

  • 卷积是系统的工作方式:翻转、移位、相乘相加

  • 举个例子:

    • 若$h(n)=[1,2,3,4]$,即$h(n)=\delta(n)+2\delta(n-1)+3\delta(n-2)+4\delta(n-3)$

    • 若$x(n)=[1,1,1,1]$

    • 那么$y(n)=\sum_{m=-\infty}^{\infty}x(m)h(n-m)$,有:
      $$
      y(0)=\sum_{m=-\infty}^{\infty}x(m)h(-m)\
      y(1)=\sum_{m=-\infty}^{\infty}x(m)h(1-m)\
      y(2)=\sum_{m=-\infty}^{\infty}x(m)h(2-m)\
      ……
      $$

    • 则可视化的运算如下:

      $x(n)$ 1 1 1 1
      $h(n)$ 4 3 2 1 $y(0)=1$
      $h(1-n)$ 4 3 2 1 $y(1)=3$
      $h(2-n)$ 4 3 2 1 $y(2)=6$
      $h(3-n)$ 4 3 2 1 $y(3)=10$
      $h(4-n)$ 4 3 2 1 $y(4)=9$
      $h(5-n)$ 4 3 2 1 $y(5)=7$
      $h(6-n)$ 4 3 2 1 $y(6)=4$
  • 线性卷积的长度是$len[x(n)]+len[h(n)]-1$

2.MATLAB实现举例

  • 特定的卷积核,对某些特定信号有的滤波作用

  • 示例代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    clc;                      %清屏
    clear all; %清变量

    fs=200; %采样频率为200Hz
    hn=ones(1,4); %系统hn

    t=0:1/fs:1; %时间序列
    xn1=sin(2*pi*50*t); %50Hz正弦信号
    xn2=sin(2*pi*5*t); %5Hz正弦信号
    xn=xn1+xn2; %叠加信号

    yn=conv(xn,hn); %卷积运算获得系统输出

    %绘图
    subplot(411);
    plot(t,xn1);title('50Hz正弦信号');
    subplot(412);
    plot(t,xn2);title('5Hz正弦信号');
    subplot(413);
    plot(t,xn);title('输入信号');
    subplot(414);
    plot(t,yn(1:length(xn)));title('输出信号');
  • 结果如下:

    LinearConv
    • 观察到输出信号中50Hz的正弦信号被滤除了

    • 其原因是采样频率200Hz是正弦信号50Hz的4倍,在一个周期内采样了4个点

      image-20231004212620824
    • 而这四个点正好对应这四个位置

      image-20231004213058396
    • 相当于是$0,1,0,-1,0,1,0,-1,…$这一串数接受$1,1,1,1$的检阅

      image-20231004214850605
      • 只有在起始和末尾绿色部分才会有值
      • 在中间红色部分滑动时是将滑窗中的4个数相加,和均为0

Z变换

1.Z变换的定义

  • 双边Z变换:
    $$
    X(z)=\sum_{n=-\infty}^{\infty}x(n)Z^{-n}
    $$

  • 单边Z变换:
    $$
    X(z)=\sum_{n=0}^{+\infty}x(n)Z^{-n}\quad or\quad \sum_{n=-\infty}^{0}x(n)Z^{-n}
    $$

  • 左边序列、右边序列、因果序列:

    • 左边序列:当$n<N$时有非零值,而在$n>N$时$x(n)$为0

    • 右边序列:当$n\ge N$时有非零值,而在$n<N$时$x(n)$为0

      • 若$N=0$,则称此序列为因果序列,即$x(n)=0,n<0$
    • 对于因果序列,有以下关系:
      $$
      因果序列\rightarrow |Z|>a
      $$

2.Z的收敛域

  • 因为要求Z变换有解,所以需要满足:
    $$
    |\sum_{n=-\infty}^{\infty}x(n)Z^{-n}|<+\infty
    $$

  • 等比数列求和公式:
    $$
    \frac{a_0-a_nq}{1-q}
    $$

    • 若想要其有界,需满足等比因子$|q|<1$
  • 而Z的表达式其实是:
    $$
    Z=re^{jw}
    $$

  • 那么:
    $$
    \begin{aligned}
    X(z) &=\sum_{n=-\infty}^{\infty}x(n)Z^{-n}\
    &=\sum_{n=-\infty}^{\infty}x(n)r^{-n}e^{-jwn}
    \end{aligned}
    $$

  • 所以,求Z的收敛域主要看$r$

3.Z变换的常用性质

  • 时移特性:
    $$
    x(n)\leftrightarrow X(z)\
    x(n-n_0)\leftrightarrow X(z)Z^{-n_0}
    $$

  • 卷积特性:
    $$
    x_1(n)*x_2(n)\leftrightarrow X_1(z)\cdot X_2(z)
    $$

  • 对于因果稳定的系统:

    • $H(Z)$的收敛域一定包括单位圆(稳定性)
    • $H(Z)$的所有极点一定在单位圆内(因为因果系统是$|Z|>a$,而又要求稳定,即收敛域需包含单位圆,故极点需在单位圆内,这样能使得$|Z|>极点,极点<1$)

Reference

欢迎来到ssy的世界