信号与系统(Python) 学习笔记摘录 (1) 信号简介 Intro

  • 快速链接:
    • 【总目录】信号与系统 学习笔记 Signals and Systems with Python
    • (1) 简介 Intro
    • (2) 傅里叶 Fourier
      • 常用函数的傅里叶变换汇总
    • (3) LTI 系统 与 滤波器
  • 1. Introduction
    • 1.1. 周期信号
      • 1.1.1. 连续信号周期
      • 1.1.2. 离散信号周期
      • 1.1.3. 信号的 Python 表示与绘图
    • 1.2. 信号分类
      • 1.2.1. 能量信号
      • 1.2.2. 功率信号
      • 1.2.3. 因果信号
      • 1.2.4. 反因果信号
      • 1.2.5. 其他类型
      • 1.2.6. Remark
    • 1.3. 冲激函数
      • 1.3.1. 单位冲激函数 Dirac delta function
      • 1.3.2. 阶跃函数
      • 1.3.3. 广义函数定义
      • 1.3.4. 取样性质
      • 1.3.5. 导数
      • 1.3.6. 尺度变化
    • 1.4. LTI 连续系统
      • 1.4.1. 微分方程的经典解法
      • 1.4.2. 初始值
      • 1.4.3. 响应
      • 1.4.4. Python 求解系统的响应
      • 1.4.5. 冲激响应
      • 1.4.6. 阶跃响应
      • 1.4.7. Python 冲激响应与阶跃响应
      • 1.4.8. 卷积积分 Convolution
      • 1.4.9. Python 求卷积积分
      • 1.4.10. 连续系统的算子 P
    • 1.5. 差分方程
      • 1.5.1. 定义
      • 1.5.2. 经典解法
      • 1.5.3. 初始值
      • 1.5.4. 响应
      • 1.5.5. Python 求解离散系统的零状态响应
      • 1.5.6. 单位脉冲序列
      • 1.5.7. 单位阶跃序列
      • 1.5.8. 单位脉冲响应
      • 1.5.9. 单位阶跃响应
      • 1.5.10. Python 求解单位脉冲响应
      • 1.5.11. 卷积和
      • 1.5.12. Python 求卷积和
      • 1.5.13. 差分算子 E
  • 信号与系统(Python) 学习笔记摘录 (2) 傅里叶 Fourier

1. Introduction

1.1. 周期信号

  • Period Signal

1.1.1. 连续信号周期

  • 连续周期信号 f ( t ) f(t) f(t), 周期为 T T T, 满足
    f ( t ) = f ( t + m T ) ,   m = 0 , ± 1 , ± 2 , … f(t) = f(t + mT), \ m = 0, \pm 1, \pm 2, \dots f(t)=f(t+mT), m=0,±1,±2,
    • 典型周期连续信号: 余弦信号 cos ⁡ ω t \cos \omega t cosωt 周期为 T = 2 π ω ( s ) T = \frac{2\pi}{\omega}(s) T=ω2π(s)

1.1.2. 离散信号周期

  • 离散周期信号 f ( k ) f(k) f(k), 周期为 N N N, 满足
    f ( k ) = f ( k + m N ) ,   m = 0 , ± 1 , ± 2 , … f(k) = f(k +mN), \ m = 0, \pm 1, \pm 2, \dots f(k)=f(k+mN), m=0,±1,±2,

1.1.3. 信号的 Python 表示与绘图

  • 连续信号 f ( t ) = 5 e − 0.8 t sin ⁡ ( π t ) ,   0 < t < 5 f(t) = 5 e^{-0.8t} \sin(\pi t), \, 0f(t)=5e0.8tsin(πt),0<t<5 绘图
    # 导入 需要的 library 库  
    import numpy as np # 科学计算
    import matplotlib.pyplot as plt # 画图
    import scipy.signal as sg # 导入 scipy 的 signal 库 命名为 sg

    a,b = 0.8,5
    t = np.linspace(0,5,100) # 另一种表达式 t = np.mgrid[0:5:0.01]
    y = b*np.exp(-a*t)*np.sin(np.pi*t)
    plt.xlabel('time')
    plt.ylabel('Y')
    plt.plot(t,y)
    plt.grid(True)
    plt.show()

信号与系统(Python) 学习笔记摘录 (1) 信号简介 Intro_第1张图片


1.2. 信号分类

  • 将信号 f ( t ) f(t) f(t) 施加于 1 Ω 1 \Omega 1Ω 电阻上, 所消耗的瞬时功率为 ∣ f ( t ) ∣ 2 \lvert f(t) \rvert ^2 f(t)2, 在区间 ( − ∞ , ∞ ) ( -\infty, \infty) (,)能量平均功率定义为
    E = d e f ∫ − ∞ ∞ ∣ f ( t ) ∣ 2 d t E \overset{def}{=} \int_{-\infty}^\infty \lvert f(t) \rvert ^2 dt E=deff(t)2dt
    P = d e f lim ⁡ T → ∞ 1 T ∫ − T / 2 T / 2 ∣ f ( t ) ∣ 2 d t P \overset{def}{=} \lim_{T \to \infty} \frac{1}{T} \int_{-T/2}^{T/2} \lvert f(t) \rvert ^2 dt P=defTlimT1T/2T/2f(t)2dt

1.2.1. 能量信号

  • 能量有限信号: 信号的能量 E < ∞ E < \infty E< , 简称 能量信号 , 此时 P = 0 P = 0 P=0.
    • 离散: E = ∑ k = − ∞ ∞ ∣ f ( k ) ∣ 2 < ∞ E = \displaystyle\sum_{k=-\infty}^{\infty} \lvert f(k) \rvert ^2 < \infty E=k=f(k)2<

1.2.2. 功率信号

  • 功率有限信号: 信号的功率 P < ∞ P < \infty P< , 简称 功率信号 , 此时 E = ∞ E = \infty E=.
    • 离散: P = lim ⁡ N → ∞ 1 N ∑ k = − N / 2 N / 2 ∣ f ( k ) ∣ 2 < ∞ P = \displaystyle \lim_{N \to \infty} \frac{1}{N} \sum_{k=-N/2}^{N/2} \lvert f(k) \rvert ^2 < \infty P=NlimN1k=N/2N/2f(k)2<

1.2.3. 因果信号

  • 因果信号: t < 0 ,   f ( t ) = 0 t <0, \ f(t) = 0 t<0, f(t)=0 的信号
    • 例如: 阶跃信号

1.2.4. 反因果信号

  • 反因果信号: t ≤ 0 ,   f ( t ) = 0 t \leq 0, \ f(t) = 0 t0, f(t)=0 的信号

1.2.5. 其他类型

  • 一维信号, 多维信号; 实信号,复信号; 左信号, 右信号。。。。。。

1.2.6. Remark

  1. 时限信号为能量信号
  2. 周期信号为功率信号
  3. 非周期信号 可能为能量也可能为功率信号
  4. f ( t ) = e t f(t) = e^t f(t)=et 既不是能量也不是功率信号

1.3. 冲激函数

δ ( x ) = d e f { 0 , x ≠ 0 1 , x = 0 \begin{aligned} \delta (x) \overset{def}{=} {\begin{cases} 0 , & x\neq 0 \\ 1 , & x = 0 \end{cases}} \end{aligned} δ(x)=def{0,1,x=0x=0

1.3.1. 单位冲激函数 Dirac delta function

  • 单位冲激函数: 奇异函数, 强度极大, 作用时间极短的物理量的理想化模型
    { δ ( x ) = 0 , x ≠ 0 ∫ − ∞ ∞ δ ( x ) d x = 1 \begin{aligned} {\begin{cases} \delta (x) = 0 , & x\neq 0 \\ \int_{-\infty}^{\infty} \delta(x) dx = 1 \end{cases}} \end{aligned} {δ(x)=0,δ(x)dx=1x=0
    • aka Dirac delta function
    • 高度无穷大, 宽度无穷小, 面积为 1 的对称窄脉冲

1.3.2. 阶跃函数

  • 阶跃函数:
    ε ( t ) = d e f { 0 , t < 0 1 , t > 0 \varepsilon(t) \overset{def}{=} {\begin{cases} 0, & t<0 \\ 1, & t>0 \end{cases}} ε(t)=def{0,1,t<0t>0
    • 积分: ∫ − ∞ t ε ( τ ) d τ = t ⋅ ε ( t ) \int_{-\infty}^{t} \varepsilon(\tau)d\tau = t \cdot \varepsilon(t) tε(τ)dτ=tε(t)
    • 与 冲激函数 关联:
      • δ ( t ) = d ε ( t ) d t \delta(t) = \frac{d \varepsilon(t)}{dt} δ(t)=dtdε(t)
      • ε ( t ) = ∫ − ∞ t δ ( τ ) d τ \varepsilon(t) = \int_{-\infty}^{t} \delta(\tau) d\tau ε(t)=tδ(τ)dτ

1.3.3. 广义函数定义

  • Dirac Delta function 广义函数定义:
    ∫ − ∞ ∞ δ ( t ) φ ( t ) d t = φ ( 0 ) \int_{-\infty}^{\infty} \delta(t) \varphi(t)dt = \varphi(0) δ(t)φ(t)dt=φ(0)
    • 冲激函数 δ ( t ) \delta (t) δ(t) 作用于检验函数 φ ( t ) \varphi (t) φ(t) 的结果是赋值为 φ ( 0 ) \varphi (0) φ(0), 称为 冲激函数的取样性质。
    • 例如:
      • 高斯函数 δ ( t ) = lim ⁡ b → ∞ b e − π ( b ⋅ t ) 2 \delta(t) = \lim_{b\to \infty} b e^{-\pi(b\cdot t)^2} δ(t)=limbbeπ(bt)2
      • 取样函数 δ ( t ) = lim ⁡ b → ∞ sin ⁡ ( b t ) π t \delta(t) = \lim_{b\to \infty} \frac{\sin(bt)}{\pi t} δ(t)=limbπtsin(bt)

1.3.4. 取样性质

  • Dirac Delta function 取样性质:
    f ( t ) δ ( t − a ) = f ( a ) δ ( t − a ) ⟶ f ( t ) δ ( t ) = f ( 0 ) δ ( t ) f(t) \delta(t-a) = f(a) \delta(t-a) \longrightarrow f(t) \delta(t) = f(0) \delta(t) f(t)δ(ta)=f(a)δ(ta)f(t)δ(t)=f(0)δ(t)
    ∫ − ∞ ∞ f ( t ) δ ( t − a ) d t = f ( a ) ⟶ ∫ − ∞ ∞ f ( t ) δ ( t ) d t = f ( 0 ) \int_{-\infty}^{\infty} f(t) \delta(t-a) dt = f(a) \longrightarrow \int_{-\infty}^{\infty} f(t) \delta(t) dt = f(0) f(t)δ(ta)dt=f(a)f(t)δ(t)dt=f(0)
    • Notice: 积分区间要包含 t = a t=a t=a

1.3.5. 导数

  • Dirac Delta function 导数:
    • 冲激偶 δ ′ ( t ) \delta^\prime (t) δ(t):
      f ( t ) δ ′ ( t ) = f ( 0 ) δ ′ ( t ) − f ′ ( 0 ) δ ( t ) f(t) \delta^\prime (t) = f(0)\delta^\prime(t) - f^\prime(0)\delta(t) f(t)δ(t)=f(0)δ(t)f(0)δ(t)
      ∫ − ∞ ∞ f ( t ) δ ′ ( t ) d t = − f ′ ( 0 ) \int_{-\infty}^{\infty} f(t) \delta^\prime(t) dt = - f^\prime(0) f(t)δ(t)dt=f(0)
      ∫ − ∞ ∞ f ( t ) δ ′ ( t − a ) d t = − f ′ ( a ) \int_{-\infty}^{\infty} f(t) \delta^\prime(t-a) dt = - f^\prime(a) f(t)δ(ta)dt=f(a)
      ∫ − ∞ ∞ f ( t ) δ ( n ) ( t ) d t = ( − 1 ) n f ( n ) ( 0 ) \int_{-\infty}^{\infty} f(t) \delta^{(n)}(t) dt = (-1)^nf^{(n)}(0) f(t)δ(n)(t)dt=(1)nf(n)(0)

1.3.6. 尺度变化

  • Dirac Delta function 尺度变化:
    δ ( a t ) = 1 ∣ a ∣ δ ( t ) \delta(at) = \frac{1}{\lvert a \rvert} \delta(t) δ(at)=a1δ(t)
    δ ( n ) ( a t ) = 1 ∣ a ∣ 1 a n δ ( n ) ( t ) \delta^{(n)} (at) = \frac{1}{\lvert a \rvert} \frac{1}{a^n} \delta^{(n)}(t) δ(n)(at)=a1an1δ(n)(t)

1.4. LTI 连续系统

f ( t ) → LTI (linear time-invariant systems) → y ( t ) f(t) \to \text{LTI (linear time-invariant systems)} \to y(t) f(t)LTI (linear time-invariant systems)y(t)

1.4.1. 微分方程的经典解法

y ( n ) ( t ) + a n − 1 y ( n − 1 ) ( t ) + ⋯ + a 1 y ( 1 ) ( t ) + a 0 y ( t ) = b m f ( m ) ( t ) + b m − 1 f ( m − 1 ) ( t ) + ⋯ + b 1 f ( 1 ) ( t ) + b 0 f ( t ) y^{(n)}(t) + a_{n-1}y^{(n-1)}(t)+\dots + a_1y^{(1)}(t) + a_0y(t) \\ = b_mf^{(m)}(t)+b_{m-1}f^{(m-1)}(t) + \dots + b_1f^{(1)}(t) +b_0f(t) y(n)(t)+an1y(n1)(t)++a1y(1)(t)+a0y(t)=bmf(m)(t)+bm1f(m1)(t)++b1f(1)(t)+b0f(t)

  • 经典解法: y ( t ) = y h ( t ) + y p ( t ) y(t) = y_h(t) + y_p(t) y(t)=yh(t)+yp(t)

    • y ( t ) y(t) y(t) 完全解
    • y h ( t ) y_h(t) yh(t) 齐次解 homogeneous solution
    • y p ( t ) y_p(t) yp(t) 特解
  • 特征根: eigenvalue 特征值
    λ n + a n − 1 λ n − 1 + ⋯ + a 0 = 0   →   λ i ( i = 1 , 2 , … , n ) \lambda^n + a_{n-1}\lambda^{n-1} + \dots + a_0 = 0\, \to\, \lambda_i(i=1,2,\dots, n) λn+an1λn1++a0=0λi(i=1,2,,n)

信号与系统(Python) 学习笔记摘录 (1) 信号简介 Intro_第2张图片

1.4.2. 初始值

  • 初始值: 是n阶系统在 t = 0 t=0 t=0 时接入激励, 其响应在 t = 0 + t=0_+ t=0+ 时刻的值, 即 y ( j ) ( 0 + )   ( j = 0 , 1 , 2 , … , n − 1 ) y^{(j)}(0_+) \, (j=0,1,2,\dots,{n-1}) y(j)(0+)(j=0,1,2,,n1)

  • 初始状态: 是系统在激励尚未接入的 t = 0 − t=0_- t=0 时刻的响应值 y ( j ) ( 0 − ) y^{(j)}(0_-) y(j)(0), 该值反映了系统的历史情况,且与激励无关。

1.4.3. 响应

y ( t ) = y z i ( t ) + y z s ( t ) y(t) = y_{zi}(t) + y_{zs}(t) y(t)=yzi(t)+yzs(t)

  • 零输入响应: y z i ( t ) y_{zi}(t) yzi(t) (zero input)

  • 零状态响应: y z s ( t ) y_{zs}(t) yzs(t) (zero status)

    • y z s ( 0 − ) = 0 ⟶ y z i ( 0 + ) = y z i ( 0 − ) = y ( 0 − ) y_{zs}(0_-) = 0 \longrightarrow y_{zi}(0_+)=y_{zi}(0_-)=y(0_-) yzs(0)=0yzi(0+)=yzi(0)=y(0)
  • 响应分类:

    • 固有响应:系统固有频率 或叫自由响应
    • 强迫响应:与激励函数有关
    • 暂态响应:随时间增长而消失
    • 稳态响应:通常为阶跃函数和周期

1.4.4. Python 求解系统的响应

  • 系统的微分方程为
    77 y ( t ) + 2 d d t y ( t ) + d 2 d t 2 y ( t ) = f ( t ) 77 y{\left(t \right)} + 2 \frac{d}{d t} y{\left(t \right)} + \frac{d^{2}}{d t^{2}} y{\left(t \right)} = f(t) 77y(t)+2dtdy(t)+dt2d2y(t)=f(t)
    • t ≥ 0 t\geq0 t0 时,接入激励 f ( t ) = 10 sin ⁡ ( 2 π t ) f(t)=10\sin(2\pi t) f(t)=10sin(2πt), 求零状态响应
    • 可得 y ′ ′ ( t ) = − 77 y ( t ) − 2 y ′ ( t ) + f ( t ) ,   t ≥ 0 y^{\prime\prime}{\left(t \right)} = - 77 y{\left(t \right)} - 2 y^{\prime}{\left(t \right)} + f(t) , \, t\geq0 y(t)=77y(t)2y(t)+f(t),t0
    # 使用方程解  
    from scipy.integrate import odeint, solve_bvp, solve_ivp
    # odeint: Integrate a system of ordinary differential equations
    # solve_bvp: Solve a boundary-value problem for a system of ODEs
    # solve_ivp: Solve an initial value problem for a system of ODEs

    # 一阶微分方程组  
    def fvdp(t,y):
        '''
        来源:https://www.jianshu.com/p/ab57b600b854?utm_campaign=shakespeare
        要把y看出一个向量,y = [dy0,dy1,dy2,...]分别表示y的n阶导
        对于二阶微分方程,肯定是由0阶和1阶函数组合而成的,所以下面把y看成向量的话,y0表示最初始的函数,也就是我们要求解的函数,y1表示一阶导,对于高阶微分方程也可以以此类推
        '''
        y0, y1 = y
        ft = 10*np.sin(2*np.pi*t)
        y2 = -2*y1-77*y0+ft
        # y0是需要求解的函数,y1是一阶导
        # 返回的顺序是[一阶导, 二阶导],这就形成了一阶微分方程组
        return [y1, y2]

    y0 = [0, 0] # 初值[0,0]表示y(0)=0,y'(0)=0  
    t = np.linspace(0,5,100)
    y = odeint(fvdp, y0, t, tfirst=True) # 用 odeint 计算 y(t)
    y_ = solve_ivp(fvdp, t_span=(0,5), y0=y0, t_eval=t) # 用 solve_ivp 计算 y(t)

    # 开始绘图
    plt.subplot(211)
    y1, = plt.plot(t, y[:,0], label='y')
    y1_, = plt.plot(t,y[:,1],label='y‘')            
    plt.legend(handles=[y1,y1_], loc='upper right')
    plt.grid(True)

    plt.subplot(212)
    y2, = plt.plot(y_.t, y_.y[0,:],'g--',label='y(0)')
    y2_, = plt.plot(y_.t, y_.y[1,:],'r-',label='y(1)')
    plt.legend(handles=[y2,y2_], loc='upper right')
    plt.grid(True)

    plt.show()

信号与系统(Python) 学习笔记摘录 (1) 信号简介 Intro_第3张图片

    # 用已有库的方法解 sg is scipy.signal
    sys = sg.lti([1],[1, 2, 77]) # 方程里的系数  
    ft = 10*np.sin(2*np.pi*t)
    _,y,_ = sg.lsim(sys,ft,T=t)
    # 开始绘图
    plt.plot(t,y,label='simple way') 
    plt.grid(True)
    plt.show()

信号与系统(Python) 学习笔记摘录 (1) 信号简介 Intro_第4张图片

1.4.5. 冲激响应

  • 由单位冲激函数 δ ( t ) \delta(t) δ(t) 所引起的零状态响应,记为 h ( t ) h(t) h(t)
    • δ ( t ) → LTI → h ( t ) \delta(t) \to \text{LTI} \to h(t) δ(t)LTIh(t)
    • 隐含条件:
      f ( t ) = δ ( t ) f(t) = \delta(t) f(t)=δ(t)
      对二阶系统 h ( 0 − ) = h ′ ( 0 − ) = 0 h(0_-) = h^\prime(0_-) = 0 h(0)=h(0)=0

1.4.6. 阶跃响应

  • 由单位阶跃函数 ε ( t ) \varepsilon(t) ε(t) 所引起的零状态响应,记为 g ( t ) g(t) g(t)

    • ε ( t ) → LTI → g ( t ) \varepsilon(t) \to \text{LTI} \to g(t) ε(t)LTIg(t)
    • 隐含条件:
      f ( t ) = ε ( t ) f(t) = \varepsilon(t) f(t)=ε(t)
      g ( 0 − ) = g ′ ( 0 − ) = 0 g(0_-)=g^\prime(0_-)=0 g(0)=g(0)=0
  • 关联:
    g ( t ) = ∫ − ∞ t h ( τ ) d τ g(t) = \int^t_{-\infty} h(\tau) d\tau g(t)=th(τ)dτ
    h ( t ) = d d t g ( t ) h(t) = \frac{d }{d t}g(t) h(t)=dtdg(t)

1.4.7. Python 冲激响应与阶跃响应

  • 求以下系统的冲激响应和阶跃响应:
    7 y ′ ′ ( t ) + 4 y ′ ( t ) + 6 y ( t ) = f ′ ( t ) + f ( t ) 7y^{\prime\prime}(t) + 4y^{\prime}(t) + 6y(t) = f^\prime(t) + f(t) 7y(t)+4y(t)+6y(t)=f(t)+f(t)
    sys = sg.lti([1,1],[7,4,6]) # 方程里的系数 由高次幂到低次幂  
    st, sy = sg.step2(sys)
    it, iy = sg.impulse2(sys)
    sy1, = plt.plot(st, sy, label='step')
    iy1, = plt.plot(it, iy, label='impluse')
    # 开始绘图
    plt.legend(handles=[sy1,iy1], loc='upper right')
    plt.grid(True)
    plt.show()

信号与系统(Python) 学习笔记摘录 (1) 信号简介 Intro_第5张图片


1.4.8. 卷积积分 Convolution

  • 来源 f ^ ( t ) = ∑ n = − ∞ ∞ f ( n Δ ) Δ p ( t − n Δ ) \hat{f}(t) = \displaystyle\sum_{n=-\infty}^{\infty} f(n\Delta)\Delta p(t-n\Delta) f^(t)=n=f(nΔ)Δp(tnΔ) , p 为脉冲
    lim ⁡ Δ → 0 f ^ ( t ) = f ( t ) = ∫ − ∞ ∞ f ( τ ) δ ( t − τ ) d τ \lim_{\Delta\to0} \hat{f}(t) = f(t) = \int_{-\infty}^{\infty} f(\tau)\delta(t-\tau)d\tau Δ0limf^(t)=f(t)=f(τ)δ(tτ)dτ

  • ∫ − ∞ ∞ f ( τ ) δ ( t − τ ) d τ ⟶ ∫ − ∞ ∞ f ( τ ) h ( t − τ ) d τ \int_{-\infty}^{\infty} f(\tau)\delta(t-\tau)d\tau \longrightarrow \int_{-\infty}^{\infty} f(\tau)h(t-\tau)d\tau f(τ)δ(tτ)dτf(τ)h(tτ)dτ
    可得 f ( t ) → LTI → y z s ( t ) f(t) \to \text{LTI} \to y_{zs}(t) f(t)LTIyzs(t)

    • 卷积积分 y z s = ∫ − ∞ ∞ f ( τ ) h ( t − τ ) d τ y_{zs}= \int_{-\infty}^{\infty} f(\tau)h(t-\tau)d\tau yzs=f(τ)h(tτ)dτ
  • 定义:

    • f 1 f_1 f1 f 2 f_2 f2 的 卷积: f ( t ) = ∫ − ∞ ∞ f 1 ( τ ) f 2 ( t − τ ) d τ f(t) = \int_{-\infty}^{\infty} f_1(\tau)f_2(t-\tau)d\tau f(t)=f1(τ)f2(tτ)dτ
    • 记为 f ( t ) = f 1 ( t ) ⋆ f 2 ( t ) f(t) = f_1(t) \star f_2(t) f(t)=f1(t)f2(t)
  • 代数性质:

    • 三定律:
      1. 交换律: f 1 ⋆ f 2 = f 2 ⋆ f 1 f_1 \star f_2 = f_2 \star f_1 f1f2=f2f1
      2. 分配律: f 1 ⋆ [ f 2 + f 3 ] = f 1 ⋆ f 2 + f 1 ⋆ f 3 f_1 \star [f_2 + f_3] = f_1\star f_2 + f_1 \star f_3 f1[f2+f3]=f1f2+f1f3
      3. 结合律: [ f 1 ⋆ f 2 ] ⋆ f 3 = f 1 ⋆ [ f 2 ⋆ f 3 ] [f_1\star f_2]\star f_3 = f_1\star [f_2 \star f_3] [f1f2]f3=f1[f2f3]
  • 特性:

    • f ( t ) ⋆ δ ( t − t 0 ) = δ ( t − t 0 ) ⋆ f ( t ) = f ( t − t 0 ) f(t)\star\delta(t-t_0) = \delta(t-t_0) \star f(t) = f(t-t_0) f(t)δ(tt0)=δ(tt0)f(t)=f(tt0)
    • f ( t ) ⋆ δ ( n ) ( t ) = f ( n ) ( t ) f(t)\star \delta^{(n)}(t) = f^{(n)}(t) f(t)δ(n)(t)=f(n)(t)
    • f ( t ) ⋆ ε ( t ) = ∫ − ∞ t f ( τ ) d τ f(t) \star \varepsilon(t) = \int_{-\infty}^{t} f(\tau)d\tau f(t)ε(t)=tf(τ)dτ
    • ε ( t ) ⋆ ε ( t ) = t ⋅ ε ( t ) \varepsilon(t) \star \varepsilon(t) = t \cdot \varepsilon(t) ε(t)ε(t)=tε(t)
    • 衍生:
      • f ( t ) = f 1 ( t ) ⋆ f 2 ( t ) f(t) = f_1(t)\star f_2(t) f(t)=f1(t)f2(t)
      • f ( t − t 1 − t 2 ) = f 1 ( t − t 1 ) ⋆ f 2 ( t − t 2 ) = f 1 ( t − t 1 − t 2 ) ⋆ f 2 ( t ) = f 1 ⋆ f 2 ( t − t 1 − t 2 ) f(t-t_1-t_2) = f_1(t-t_1)\star f_2(t-t_2) = f_1(t-t_1-t_2)\star f_2(t) = f_1 \star f_2(t-t_1-t_2) f(tt1t2)=f1(tt1)f2(tt2)=f1(tt1t2)f2(t)=f1f2(tt1t2)
  • 微分特性:

    • d n d t n [ f 1 ( t ) ⋆ f 2 ( t ) ] = f 1 ( n ) ( t ) ⋆ f 2 ( t ) = f 1 ( t ) ⋆ f 2 ( n ) ( t ) \frac{d^n}{d t^n}[f_1(t) \star f_2(t)] = f_1^{(n)}(t) \star f_2(t) = f_1(t) \star f_2^{(n)}(t) dtndn[f1(t)f2(t)]=f1(n)(t)f2(t)=f1(t)f2(n)(t)
    • ∫ − ∞ t [ f 1 ( τ ) ⋆ f 2 ( τ ) ] d τ = [ ∫ − ∞ t f 1 ( τ ) d τ ] ⋆ f 2 ( t ) = f 1 ( t ) ⋆ [ ∫ − ∞ t f 2 ( τ ) d τ ] \int_{-\infty}^{t}[f_1(\tau) \star f_2(\tau)]d\tau = [\int_{-\infty}^{t}f_1(\tau)d\tau]\star f_2(t) = f_1(t) \star [\int_{-\infty}^{t}f_2(\tau)d\tau] t[f1(τ)f2(τ)]dτ=[tf1(τ)dτ]f2(t)=f1(t)[tf2(τ)dτ]
    • if f 1 ( − ∞ ) = 0   or   f 2 ( − 1 ) ( ∞ ) = 0 ,   then   f 1 ( t ) ⋆ f 2 ( t ) = f 1 ′ ( t ) ⋆ f 2 ( − 1 ) ( t ) f_1(-\infty) = 0 \, \text{or} \, f_2^{(-1)}(\infty)=0, \, \text{then} \, f_1(t)\star f_2(t) = f_1^\prime(t) \star f_2^{(-1)}(t) f1()=0orf2(1)()=0,thenf1(t)f2(t)=f1(t)f2(1)(t)
  • 常用公式汇总:

    • K ⋆ f ( t ) = K ⋅ [ f ( t ) 净面积 ] K \star f(t) = K \cdot [f(t) \text{净面积}] Kf(t)=K[f(t)净面积]
    • f ( t ) ⋆ δ ( t ) = f ( t ) f(t) \star \delta(t) = f(t) f(t)δ(t)=f(t)
    • f ( t ) ⋆ δ ′ ( t ) = f ′ ( t ) ⋆ δ ( t ) = f ′ ( t ) f(t) \star \delta^\prime(t) = f^\prime(t) \star \delta(t) = f^\prime(t) f(t)δ(t)=f(t)δ(t)=f(t)
    • f ( t ) ⋆ ε ( t ) = f ( t ) ⋆ δ ( − 1 ) ( t ) = f ( − 1 ) ( t ) ⋆ δ ( t ) = f ( − 1 ) ( t ) f(t) \star \varepsilon(t) = f(t) \star \delta^{(-1)} (t) = f^{(-1)}(t) \star \delta(t) = f^{(-1)}(t) f(t)ε(t)=f(t)δ(1)(t)=f(1)(t)δ(t)=f(1)(t)
    • ε ( t ) ⋆ ε ( t ) = t ⋅ ε ( t ) \varepsilon(t) \star \varepsilon(t) = t \cdot \varepsilon(t) ε(t)ε(t)=tε(t)
    • e − α t ε ( t ) ⋆ e − α t ε ( t ) = t ⋅ e − α t ε ( t ) e^{-\alpha t}\varepsilon(t) \star e^{-\alpha t}\varepsilon(t) = t\cdot e^{-\alpha t}\varepsilon(t) eαtε(t)eαtε(t)=teαtε(t)
    • e − α 1 t ε ( t ) ⋆ e − α 2 t ε ( t ) = 1 α 2 − α 1 ( e − α 1 t − e − α 2 t ) ε ( t )   ( α 1 ≠ α 2 ) e^{-\alpha_1 t}\varepsilon(t) \star e^{-\alpha_2 t}\varepsilon(t) =\displaystyle\frac{1}{\alpha_2 - \alpha_1}(e^{-\alpha_1 t} - e^{-\alpha_2 t})\varepsilon(t) \, (\alpha_1 \neq \alpha_2) eα1tε(t)eα2tε(t)=α2α11(eα1teα2t)ε(t)(α1=α2)
    • ε ( t ) ⋆ e − α t ε ( t ) = 1 α ( 1 − e − α t ) ε ( t ) \varepsilon(t) \star e^{-\alpha t}\varepsilon(t) = \frac{1}{\alpha} (1-e^{-\alpha t})\varepsilon(t) ε(t)eαtε(t)=α1(1eαt)ε(t)
    • f ( t ) ⋆ δ T ( t ) = f ( t ) ⋆ ∑ m = − ∞ ∞ δ ( t − m T ) = ∑ m = − ∞ ∞ f ( t − m T ) f(t) \star \delta_T (t) = f(t) \star \displaystyle \sum^{\infty}_{m=-\infty} \delta(t-mT) = \sum^{\infty}_{m=-\infty} f(t-mT) f(t)δT(t)=f(t)m=δ(tmT)=m=f(tmT)
      • 周期为 T T T 的周期单位冲激函数序列 δ T ( t ) = ∑ m = − ∞ ∞ δ ( t − m T ) \delta_T(t) = \sum^\infty_{m=-\infty} \delta(t-mT) δT(t)=m=δ(tmT) , 常称为梳状 comb 函数
  • 相关函数:

    • 雷达卷积函数:
      R 12 ( t ) = f 1 ( t ) ⋆ f 2 ( − t ) = ∫ − ∞ ∞ f 1 ( τ ) f 2 ( τ − t ) d τ = ∫ − ∞ ∞ f 1 ( τ + t ) f 2 ( τ ) d τ = R 21 ( − t ) R_{12} (t) = f_1(t) \star f_2(-t) = \int_{-\infty}^{\infty}f_1(\tau)f_2(\tau-t)d\tau = \int_{-\infty}^{\infty}f_1(\tau+t)f_2(\tau)d\tau = R_{21}(-t) R12(t)=f1(t)f2(t)=f1(τ)f2(τt)dτ=f1(τ+t)f2(τ)dτ=R21(t)
      R 21 ( t ) = f 1 ( − t ) ⋆ f 2 ( t ) = ∫ − ∞ ∞ f 1 ( τ ) f 2 ( τ + t ) d τ = ∫ − ∞ ∞ f 1 ( τ − t ) f 2 ( τ ) d τ = R 12 ( − t ) R_{21} (t) = f_1(-t) \star f_2(t) = \int_{-\infty}^{\infty}f_1(\tau)f_2(\tau+t)d\tau = \int_{-\infty}^{\infty}f_1(\tau-t)f_2(\tau)d\tau = R_{12}(-t) R21(t)=f1(t)f2(t)=f1(τ)f2(τ+t)dτ=f1(τt)f2(τ)dτ=R12(t)
      • Normally R 12 ( τ ) ≠ R 21 ( τ ) R_{12}(\tau) \neq R_{21}(\tau) R12(τ)=R21(τ)
    • 自相关函数:
      R ( t ) = f ( t ) ⋆ f ( − t ) = ∫ − ∞ ∞ f ( τ ) f ( τ − t ) d τ = ∫ − ∞ ∞ f ( τ + t ) f ( τ ) d τ = R ( − t ) R (t) = f(t) \star f(-t) = \int_{-\infty}^{\infty}f(\tau)f(\tau-t)d\tau = \int_{-\infty}^{\infty}f(\tau+t)f(\tau)d\tau = R(-t) R(t)=f(t)f(t)=f(τ)f(τt)dτ=f(τ+t)f(τ)dτ=R(t)
  • 其他:

    • 多径传输中存在失真问题, 发射机经某些物体反射产生回波现象,就算是反射信号也被采集。
      把在多条路径上 由延迟时间与衰减系数 的情况 称为混响。
      为了从 有干扰信号的回波系统中提取正常信号,可以设计逆系统进行补偿。
      e ( t ) → 回波系统 h ( t ) → r ( t ) → 逆系统 h i ( t ) → e ( t ) e(t) \to \text{回波系统} h(t) \to r(t) \to \text{逆系统} h_i (t) \to e(t) e(t)回波系统h(t)r(t)逆系统hi(t)e(t)
      为了保证 输出为原激励信号 e ( t ) = e ( t ) ⋆ δ ( t ) e(t) = e(t) \star \delta (t) e(t)=e(t)δ(t) 必须满足 h ( t ) ⋆ h i ( t ) = δ ( t ) h(t) \star h_i(t) = \delta(t) h(t)hi(t)=δ(t)
      h i ( t ) h_i(t) hi(t) 的问题 称为 解卷积反卷积
    • 自适应滤波器 AF (Adaptive Filter) 可以根据误差信号调整系数 去对消 噪声信号,使得输出信号趋近于真实信号。

1.4.9. Python 求卷积积分

  • 已知两个连续时间信号为:
    f 1 ( t ) = { 2 ,   0 < t < 1 0 ,   else f 2 ( t ) = { t ,   0 < t < 2 0 ,   else f_1(t) = \begin{cases} 2, \, & 0f1(t)={2,0,0<t<1elsef2(t)={t,0,0<t<2else
    # sg is scipy.signal
    t1 = np.array([t*0.1 for t in range(-10,31)]) # t in [-1, 3]
    f1t = np.array([2 if 0<t<10 else 0 for t in range(-10,31)])
    t2 = np.array([t*0.1 for t in range(-10,31)]) # t in [-1,3]
    f2t = np.array([t*0.1 if 0<t<20 else 0 for t in range(-10,31)]) 
    yt = sg.convolve(f1t, f2t,'full')*0.1 # 计算卷积 calculate convolution  
    t3 = np.array([t*0.1 for t in range(-20,61)]) # t in [-1+-1, 3+3]
    # 开始绘图
    plt.plot(t3, yt, label='conv')
    plt.grid(True)
    plt.show()

信号与系统(Python) 学习笔记摘录 (1) 信号简介 Intro_第6张图片

1.4.10. 连续系统的算子 P

  • 微分算子: P = d d t P = \frac{d}{dt} P=dtd ; P ( n ) = d n d t n P^{(n)} = \frac{d^n}{dt^n} P(n)=dtndn

  • 积分算子: P − 1 = ∫ − ∞ t ( ⋅ ) d τ P^{-1} = \int^{t}_{-\infty} (\cdot) d\tau P1=t()dτ

  • 性质:

    • P P P正幂 多项式可以因式分解
    • A ( P ) , B ( P ) A(P), B(P) A(P),B(P) P P P正幂多项式,则 A ( P ) B ( P ) = B ( P ) A ( P ) A(P)B(P) = B(P)A(P) A(P)B(P)=B(P)A(P)
    • 微分算子方程公因子 不能随意 消去
    • A ( P ) , B ( P ) , D ( P ) A(P), B(P), D(P) A(P),B(P),D(P) P P P正幂多项式,
      D ( P ) ⋅ [ A ( P ) D ( P ) ⋅ B ( P ) ] f ( t ) = A ( P ) B ( P ) f ( t ) \displaystyle D(P) \cdot [\frac{A(P)}{D(P)\cdot B(P)}]f(t) = \frac{A(P)}{B(P)}f(t) D(P)[D(P)B(P)A(P)]f(t)=B(P)A(P)f(t)
      A ( P ) D ( P ) ⋅ B ( P ) [ D ( p ) f ( t ) ] ≠ A ( P ) B ( P ) f ( t ) \displaystyle\frac{A(P)}{D(P)\cdot B(P)}[D(p)f(t)] \neq \frac{A(P)}{B(P)}f(t) D(P)B(P)A(P)[D(p)f(t)]=B(P)A(P)f(t)
  • 传输算子:
    H ( P ) = B ( P ) A ( P ) = b m P m + b m − 1 P m − 1 + ⋯ + b 0 P n + a n − 1 P n − 1 + ⋯ + a 0 H(P) = \displaystyle \frac{B(P)}{A(P)} = \frac{b_m P^m+ b_{m-1} P^{m-1} + \dots + b_0}{P^n + a_{n-1}P^{n-1} + \dots + a_0} H(P)=A(P)B(P)=Pn+an1Pn1++a0bmPm+bm1Pm1++b0


1.5. 差分方程

1.5.1. 定义

  • 一阶差分:
    一阶前向差分   Δ f ( k ) Δ k = f ( k + 1 ) − f ( k ) ( k + 1 ) − k ⟶ Δ f ( k ) = f ( k + 1 ) − f ( k ) \text{一阶前向差分}\, \displaystyle \frac{\Delta f(k)}{\Delta k} = \frac{f(k+1)-f(k)}{(k+1)-k} \\ \longrightarrow \Delta f(k) = f(k+1) - f(k) 一阶前向差分ΔkΔf(k)=(k+1)kf(k+1)f(k)Δf(k)=f(k+1)f(k)
    一阶后向差分   ∇ f ( k ) ∇ k = f ( k ) − f ( k − 1 ) k − ( k − 1 ) ⟶ ∇ f ( k ) = f ( k ) − f ( k − 1 ) \text{一阶后向差分}\, \displaystyle \frac{\nabla f(k)}{\nabla k} = \frac{f(k)-f(k-1)}{k-(k-1)} \\ \longrightarrow \nabla f(k) = f(k) - f(k-1) 一阶后向差分kf(k)=k(k1)f(k)f(k1)f(k)=f(k)f(k1)

  • 线性性质:
    ∇ [ α f 1 ( k ) + b f 2 ( k ) ] = α ∇ f 1 ( k ) + b ∇ f 2 ( k ) \nabla[\alpha f_1(k) + bf_2(k)] = \alpha \nabla f_1(k) + b\nabla f_2(k) [αf1(k)+bf2(k)]=αf1(k)+bf2(k)

  • 二阶差分:
    ∇ 2 f ( k ) = ∇ [ ∇ f ( k ) ] = f ( k ) − 2 f ( k − 1 ) + f ( k − 2 ) \nabla^2 f(k) = \nabla[\nabla f(k)] = f(k) - 2f(k-1) + f(k-2) 2f(k)=[f(k)]=f(k)2f(k1)+f(k2)

  • m阶差分:
    ∇ m f ( k ) = f ( k ) + b 1 f ( k − 1 ) + ⋯ + b m f ( k − m ) \nabla^{m} f(k) = f(k) + b_1f(k-1) + \dots + b_mf(k-m) mf(k)=f(k)+b1f(k1)++bmf(km)

1.5.2. 经典解法

  • 差分方程 本质上是 递推的代数方程, 若已知初始条件和激励, 利用迭代法可求其数值解。

y ( k ) + a n − 1 y ( k − 1 ) + ⋯ + a 0 y ( k − n ) = b m f ( k ) + b m − 1 f ( k − 1 ) + ⋯ + b 0 f ( k − m ) y(k) + a_{n-1}y(k-1)+\dots + a_0y(k-n) \\ = b_mf(k)+b_{m-1}f^(k-1) + \dots + b_0f(k-m) y(k)+an1y(k1)++a0y(kn)=bmf(k)+bm1f(k1)++b0f(km)

  • 经典解法: y ( k ) = y h ( k ) + y p ( k ) y(k) = y_h(k) + y_p(k) y(k)=yh(k)+yp(k)

    • y ( k ) y(k) y(k) 完全解
    • y h ( k ) y_h(k) yh(k) 齐次解 homogeneous solution
      y ( k ) + a n − 1 y ( k − 1 ) + ⋯ + a 0 y ( k − n ) = 0 y(k) + a_{n-1}y(k-1)+\dots + a_0y(k-n) = 0 y(k)+an1y(k1)++a0y(kn)=0
    • y p ( k ) y_p(k) yp(k) 特解
  • 特征根: eigenvalue 特征值
    1 + a n − 1 λ − 1 + ⋯ + a 0 λ − n = 0   →   λ i ( i = 1 , 2 , … , n ) 1 + a_{n-1}\lambda^{-1} + \dots + a_0\lambda^{-n} = 0\, \to\, \lambda_i(i=1,2,\dots, n) 1+an1λ1++a0λn=0λi(i=1,2,,n)

信号与系统(Python) 学习笔记摘录 (1) 信号简介 Intro_第7张图片

1.5.3. 初始值

  • 初始状态: 用 y ( − 1 ) , y ( − 2 ) , … , y ( − n ) y(-1), y(-2), \dots, y(-n) y(1),y(2),,y(n) 描述 n阶系统的初始状态。

1.5.4. 响应

y ( − l ) = y z i ( − l ) + y z s ( − l ) y(-l) = y_{zi}(-l) + y_{zs}(-l) y(l)=yzi(l)+yzs(l)

  • 零输入响应: y z i ( k ) y_{zi}(k) yzi(k) (zero input)

    • 离散系统的激励为零,仅由系统的初始状态引起的响应
      y z i ( k ) + α n − 1 y z i ( k − 1 ) + ⋯ + α 0 y z i ( k − n ) = 0 y_{zi}(k) +\alpha_{n-1} y_{zi}(k-1) + \dots + \alpha_0 y_{zi}(k-n) = 0 yzi(k)+αn1yzi(k1)++α0yzi(kn)=0
  • 零状态响应: y z s ( k ) y_{zs}(k) yzs(k) (zero status)

    • 系统的初始状态 y z s ( − l ) = 0 ,   l = 1 , 2 , … , n y_{zs}(-l) = 0, \, l = 1,2, \dots, n yzs(l)=0,l=1,2,,n为零,仅由激励 f ( k ) f(k) f(k) 引起的响应
    • 初始值:由迭代法求出 y z s ( j ) ,   j = 0 , 1 , … , n − 1 y_{zs}(j),\, j = 0,1,\dots,n-1 yzs(j),j=0,1,,n1
  • 响应分类:

    • 固有响应:系统固有频率 或叫自由响应
    • 强迫响应:与激励函数有关
    • 暂态响应:随时间增长而消失
    • 稳态响应:通常为阶跃函数和周期

1.5.5. Python 求解离散系统的零状态响应

  • 输入信号 f ( k ) = s ( k ) + d ( k ) f(k) = s(k) + d(k) f(k)=s(k)+d(k), 其中 s ( k ) = ( 2 k ) 0. 9 k ,   d ( k ) s(k)= (2k)0.9^k, \, d(k) s(k)=(2k)0.9k,d(k) 是随机噪声信号。求以下系统的零状态响应(均值滤波结果),取 M = 5 M=5 M=5
    y ( k ) = 1 M ∑ n = 0 M − 1 f ( k − n ) y(k) = \displaystyle \frac{1}{M}\sum^{M-1}_{n=0}f(k-n) y(k)=M1n=0M1f(kn)
    # sg is scipy.signal
    d = np.random.rand(1,51)-0.5 # random.rand 出来的是 0到1 的随机数
    k = np.array([k for k in range(0,51)])
    s = 2*k*np.power(0.9,k)
    f = s+d[0]

    plt.subplot(211)
    plt.stem(k,f,'-',use_line_collection=True)
    plt.grid(True)

    M = 5
    a = 1
    b = np.ones(5)/5
    plt.subplot(212)
    y = sg.filtfilt(b,a,f) # digital filter forward and backward to a signal
    plt.stem(k,y,':',use_line_collection=True)
    plt.grid(True)
    
    plt.xlabel('time index k')
    plt.show()

信号与系统(Python) 学习笔记摘录 (1) 信号简介 Intro_第8张图片

1.5.6. 单位脉冲序列

  • 单位脉冲序列 (单位样值序列/单位取样序列)
    δ ( k ) = { 1 k = 0 0 k ≠ 0 \begin{aligned}\delta(k) = \begin{cases} 1 & k = 0 \\ 0 & k \neq 0\end{cases}\end{aligned} δ(k)={10k=0k=0
    • 位移:
      δ ( k − k 0 ) = { 1 k = k 0 0 k ≠ k 0 \begin{aligned}\delta(k-k_0) = \begin{cases} 1 & k = k_0 \\ 0 & k \neq k_0\end{cases}\end{aligned} δ(kk0)={10k=k0k=k0
    • 加: δ ( k ) + 2 δ ( k ) = 3 δ ( k ) \delta(k) + 2\delta(k) = 3\delta(k) δ(k)+2δ(k)=3δ(k)
    • 乘: δ ( k ) ⋅ δ ( k ) = δ ( k ) \delta(k) \cdot \delta(k) = \delta(k) δ(k)δ(k)=δ(k)
    • 延时: δ ( k − 1 ) ⋅ δ ( k − 2 ) = 0 \delta(k-1) \cdot \delta(k-2) = 0 δ(k1)δ(k2)=0
    • 迭分:
      ∑ i = − ∞ k δ ( i ) = { 0 , k < 0 1 , k ≥ 0 = ε ( k ) \begin{aligned}\displaystyle \sum^{k}_{i=-\infty} \delta(i) & = \begin{cases} 0, & k<0 \\ 1, & k\geq0 \end{cases} \\ & = \varepsilon(k)\end{aligned} i=kδ(i)={0,1,k<0k0=ε(k)
    • 取样性质:
      • f ( k ) δ ( k ) = f ( 0 ) δ ( k ) f(k)\delta(k) = f(0) \delta(k) f(k)δ(k)=f(0)δ(k)
      • f ( k ) δ ( k − k 0 ) = f ( k 0 ) δ ( k − k 0 ) f(k)\delta(k-k_0) = f(k_0)\delta(k-k_0) f(k)δ(kk0)=f(k0)δ(kk0)
      • ∑ k = − ∞ ∞ δ ( k ) = 1 \displaystyle \sum_{k=-\infty}^{\infty} \delta(k) = 1 k=δ(k)=1
      • ∑ k = − ∞ ∞ f ( k ) δ ( k ) = f ( 0 ) \displaystyle \sum_{k=-\infty}^{\infty} f(k) \delta(k) = f(0) k=f(k)δ(k)=f(0)
      • ∑ k = − ∞ ∞ f ( k ) δ ( k − k 0 ) = f ( k 0 ) \displaystyle \sum_{k=-\infty}^{\infty} f(k) \delta(k-k_0) = f(k_0) k=f(k)δ(kk0)=f(k0)
    • 偶函数: δ ( k ) = δ ( − k ) \delta(k) = \delta(-k) δ(k)=δ(k)

1.5.7. 单位阶跃序列

  • 单位阶跃序列
    ε ( k ) = { 0 k < 0 1 k ≥ 0 \begin{aligned}\varepsilon(k) = \begin{cases} 0 & k < 0 \\ 1 & k \geq 0\end{cases}\end{aligned} ε(k)={01k<0k0
    • 位移:
      ε ( k − k 0 ) = { 0 k < k 0 1 k ≥ k 0 \begin{aligned}\varepsilon(k-k_0) = \begin{cases} 0 & k < k_0 \\ 1 & k \geq k_0\end{cases}\end{aligned} ε(kk0)={01k<k0kk0
    • 加: ε ( k ) + 2 ε ( k ) = 3 ε ( k ) \varepsilon(k) + 2\varepsilon(k) = 3\varepsilon(k) ε(k)+2ε(k)=3ε(k)
    • 乘: ε ( k ) ⋅ ε ( k ) = ε ( k ) \varepsilon(k) \cdot \varepsilon(k) = \varepsilon(k) ε(k)ε(k)=ε(k)
    • 延时: ε ( k − 1 ) ⋅ ε ( k − 5 ) = ε ( k − 5 ) \varepsilon(k-1) \cdot \varepsilon(k-5) = \varepsilon(k-5) ε(k1)ε(k5)=ε(k5)
    • 迭分:
      ∑ i = − ∞ k ε ( i ) = { 0 , k < 0 k + 1 , k ≥ 0 = ( k + 1 ) ε ( k ) \begin{aligned}\displaystyle \sum^{k}_{i=-\infty} \varepsilon(i) & = \begin{cases} 0, & k<0 \\ k+1, & k\geq0 \end{cases} \\ & = (k+1)\varepsilon(k)\end{aligned} i=kε(i)={0,k+1,k<0k0=(k+1)ε(k)
    • δ ( k ) \delta(k) δ(k) 的关系:
      δ ( k ) = ε ( k ) − ε ( k − 1 ) ε ( k ) = ∑ i = − ∞ k δ ( i ) \begin{aligned} \delta(k) & = \varepsilon(k) - \varepsilon(k-1) \\ \varepsilon(k) & = \displaystyle \sum_{i=-\infty}^{k}\delta(i) \end{aligned} δ(k)ε(k)=ε(k)ε(k1)=i=kδ(i)

1.5.8. 单位脉冲响应

  • 由单位脉冲序列 δ ( k ) \delta(k) δ(k) 所引起的零状态响应,记为 h ( k ) h(k) h(k)
    • 隐含条件:
      f ( k ) = δ ( k ) f(k) = \delta(k) f(k)=δ(k)
      对二阶系统 h ( − 1 ) = h ( − 2 ) = 0 h(-1) = h(-2) = 0 h(1)=h(2)=0

1.5.9. 单位阶跃响应

  • 由单位阶跃序列 ε ( k ) \varepsilon(k) ε(k) 所引起的零状态响应,记为 g ( k ) g(k) g(k)

    • 隐含条件:
      f ( k ) = ε ( k ) f(k) = \varepsilon(k) f(k)=ε(k)
      对二阶系统 g ( − 1 ) = g ( − 2 ) = 0 g(-1)=g(-2)=0 g(1)=g(2)=0
  • 关联:
    g ( t ) = ∑ i = − ∞ k h ( i ) g(t) = \displaystyle \sum^{k}_{i=-\infty} h(i) g(t)=i=kh(i)
    h ( t ) = ∇ g ( k ) = g ( k ) − g ( k − 1 ) h(t) = \nabla g(k) = g(k) - g(k-1) h(t)=g(k)=g(k)g(k1)

1.5.10. Python 求解单位脉冲响应

  • 求以下离散系统的单位脉冲响应:
    y ( k ) + 3 y ( k − 1 ) + 2 y ( k − 2 ) = f ( k ) y(k) + 3y(k-1) +2y(k-2) = f(k) y(k)+3y(k1)+2y(k2)=f(k)
    # sg is scipy.signal
    k = np.array([k for k in range(11)])
    a = [1., 3., 2.]
    b = [1.]
    h = sg.lfilter(b,a,k) # IIR or FIR filter
    plt.stem(k,h,'-', use_line_collection = True)
    plt.grid(True)
    plt.show()

信号与系统(Python) 学习笔记摘录 (1) 信号简介 Intro_第9张图片


1.5.11. 卷积和

  • ∑ i = − ∞ ∞ f ( i ) δ ( k − i ) ⟶ ∑ i = − ∞ ∞ f ( i ) h ( k − i ) \displaystyle\sum_{i=-\infty}^{\infty} f(i)\delta(k-i) \longrightarrow \sum_{i=-\infty}^{\infty} f(i)h(k-i) i=f(i)δ(ki)i=f(i)h(ki)
    可得 f ( k ) → LTI 零状态 → y z s ( k ) f(k) \to \text{LTI 零状态} \to y_{zs}(k) f(k)LTI 零状态yzs(k)

    • 卷积和 y z s ( k ) = ∑ i = − ∞ ∞ f ( i ) h ( k − i ) y_{zs}(k)= \displaystyle\sum_{i = -\infty}^{\infty} f(i)h(k-i) yzs(k)=i=f(i)h(ki)
  • 定义:

    • f 1 f_1 f1 f 2 f_2 f2 在区间 ( − ∞ , ∞ ) (-\infty,\infty) (,) 的 卷积: f ( k ) = ∑ i = − ∞ ∞ f 1 ( i ) f 2 ( k − i ) f(k) = \displaystyle\sum_{i=-\infty}^{\infty} f_1(i)f_2(k-i) f(k)=i=f1(i)f2(ki)
    • 记为 f ( k ) = f 1 ( k ) ⋆ f 2 ( k ) f(k) = f_1(k) \star f_2(k) f(k)=f1(k)f2(k)
    • y z s ( k ) = ∑ i = − ∞ ∞ f ( i ) h ( k − i ) = f ( k ) ⋆ h ( k ) y_{zs}(k)= \displaystyle\sum_{i = -\infty}^{\infty} f(i)h(k-i)= f(k)\star h(k) yzs(k)=i=f(i)h(ki)=f(k)h(k)
    • f 1 ( k ) f_1(k) f1(k) 是因果序列 ( f 1 ( k ) = 0 ,   k < 0 f_1(k)=0,\, k<0 f1(k)=0,k<0), 则: f ( k ) = ∑ i = 0 ∞ f 1 ( i ) f 2 ( k − i ) f(k) = \displaystyle\sum_{i=0}^{\infty} f_1(i)f_2(k-i) f(k)=i=0f1(i)f2(ki)
    • f 2 ( k ) f_2(k) f2(k) 是因果序列 ( f 2 ( k ) = 0 ,   k < 0 f_2(k)=0,\, k<0 f2(k)=0,k<0), 则: f ( k ) = ∑ i = − ∞ k f 1 ( i ) f 2 ( k − i ) f(k) = \displaystyle\sum_{i=-\infty}^{k} f_1(i)f_2(k-i) f(k)=i=kf1(i)f2(ki)
    • f 1 ( k ) ,   f 2 ( k ) f_1(k), \, f_2(k) f1(k),f2(k) 均是因果序列 ( f 1 ( k ) = f 2 ( k ) = 0 ,   k < 0 f_1(k)=f_2(k)=0,\, k<0 f1(k)=f2(k)=0,k<0), 则: f ( k ) = [ ∑ i = 0 k f 1 ( i ) f 2 ( k − i ) ] ε ( k ) f(k) = \displaystyle[\sum_{i=0}^{k} f_1(i)f_2(k-i)]\varepsilon(k) f(k)=[i=0kf1(i)f2(ki)]ε(k)
  • 代数性质:

    • 三定律:
      1. 交换律: f 1 ⋆ f 2 = f 2 ⋆ f 1 f_1 \star f_2 = f_2 \star f_1 f1f2=f2f1
      2. 分配律: f 1 ⋆ [ f 2 + f 3 ] = f 1 ⋆ f 2 + f 1 ⋆ f 3 f_1 \star [f_2 + f_3] = f_1\star f_2 + f_1 \star f_3 f1[f2+f3]=f1f2+f1f3
      3. 结合律: [ f 1 ⋆ f 2 ] ⋆ f 3 = f 1 ⋆ [ f 2 ⋆ f 3 ] [f_1\star f_2]\star f_3 = f_1\star [f_2 \star f_3] [f1f2]f3=f1[f2f3]
  • 特性:

    • f ( k ) ⋆ δ ( k − k 0 ) = δ ( k − k 0 ) ⋆ f ( k ) = f ( k − k 0 ) f(k)\star\delta(k-k_0) = \delta(k-k_0) \star f(k) = f(k-k_0) f(k)δ(kk0)=δ(kk0)f(k)=f(kk0)
    • δ ( k ) ⋆ δ ( k ) = δ ( k ) \delta(k) \star \delta(k) = \delta(k) δ(k)δ(k)=δ(k)
    • f ( k ) ⋆ ε ( k ) = ∑ − ∞ k f ( i ) f(k) \star \varepsilon(k) = \displaystyle\sum_{-\infty}^{k} f(i) f(k)ε(k)=kf(i)
    • ε ( k ) ⋆ ε ( k ) = ( k + 1 ) ⋅ ε ( k ) \varepsilon(k) \star \varepsilon(k) = (k+1) \cdot \varepsilon(k) ε(k)ε(k)=(k+1)ε(k)
    • ∇ [ f 1 ( k ) ⋆ f 2 ( k ) ] = ∇ f 1 ( k ) ⋆ f 2 ( k ) = f 1 ( k ) ⋆ ∇ f 2 ( k ) \nabla[f_1(k) \star f_2(k)] = \nabla f_1(k) \star f_2(k) = f_1(k) \star \nabla f_2(k) [f1(k)f2(k)]=f1(k)f2(k)=f1(k)f2(k)
    • 衍生:
      f ( k ) = f 1 ( k ) ⋆ f 2 ( k ) f ( k − k 1 − k 2 ) = f 1 ( k − k 1 ) ⋆ f 2 ( k − k 2 ) = f 1 ( k − k 1 − k 2 ) ⋆ f 2 ( k ) = f 1 ⋆ f 2 ( k − k 1 − k 2 ) \begin{aligned}f(k) &= f_1(k)\star f_2(k) \\ f(k-k_1-k_2) & = f_1(k-k_1)\star f_2(k-k_2) \\ &= f_1(k-k_1-k_2)\star f_2(k) \\ & = f_1 \star f_2(k-k_1-k_2)\end{aligned} f(k)f(kk1k2)=f1(k)f2(k)=f1(kk1)f2(kk2)=f1(kk1k2)f2(k)=f1f2(kk1k2)

1.5.12. Python 求卷积和

  • 求以下两个离散序列的卷积:
    x 1 ( k ) = sin ⁡ ( k ) ,   0 ≤ k ≤ 10 x 2 ( k ) = 0. 8 k ,   0 ≤ k ≤ 15 x_1(k) = \sin(k),\, 0\leq k \leq 10 \hspace{3em} x_2(k) = 0.8^k,\, 0\leq k\leq 15 x1(k)=sin(k),0k10x2(k)=0.8k,0k15
    # sg is scipy.signal
    k1 = np.linspace(0,10,11)
    x1 = np.sin(k1)
    plt.subplot(221)
    plt.stem(k1,x1,'-',use_line_collection=True)
    plt.grid(True)
    plt.title('x_1(k)=sin(k)')
    
    k2 = np.linspace(0,15,16)
    x2 = np.power(0.8,k2)
    plt.subplot(222)
    plt.stem(k2,x2,'-',use_line_collection=True)
    plt.grid(True)
    plt.title('x_2(k) = 0.8^k')
    
    plt.subplot(212)
    y = sg.convolve(x1, x2,'full') # 使用 scipy.signal 的卷积函数 convolve
    k3 = np.linspace(0, 25,26)
    plt.stem(k3,y,'-',use_line_collection=True)
    plt.grid(True)
    plt.title('y(k)')
    
    plt.xlabel('time index k')
    plt.subplots_adjust(top=1, wspace=0.4, hspace=0.5) # 调整视图  
    plt.show()

信号与系统(Python) 学习笔记摘录 (1) 信号简介 Intro_第10张图片

1.5.13. 差分算子 E

E − 1 → 延迟算子 E → 超前算子 E − 1 f ( k ) = f ( k − 1 ) E f ( k ) = f ( k + 1 ) E − 2 f ( k ) = f ( k − 2 ) E 2 f ( k ) = f ( k + 2 ) E − n f ( k ) = f ( k − n ) E n f ( k ) = f ( k + n ) \begin{aligned} E^{-1} & \to \text{延迟算子} \hspace{3em} & E & \to \text{超前算子} \\ E^{-1}f(k) & = f(k-1) & Ef(k) & = f(k+1) \\ E^{-2}f(k) & = f(k-2) & E^{2}f(k) & = f(k+2) \\ E^{-n}f(k) & = f(k-n) & E^{n}f(k) & = f(k+n)\end{aligned} E1E1f(k)E2f(k)Enf(k)延迟算子=f(k1)=f(k2)=f(kn)EEf(k)E2f(k)Enf(k)超前算子=f(k+1)=f(k+2)=f(k+n)

  • 性质:

    • E E E正幂 多项式可以因式分解 也可以相乘
    • A ( E ) , B ( E ) A(E), B(E) A(E),B(E) E E E 的正幂或负幂多项式,则 A ( E ) B ( E ) = B ( E ) A ( E ) A(E)B(E) = B(E)A(E) A(E)B(E)=B(E)A(E)
    • 差分算子方程公因子 不能随意 消去
    • A ( E ) , B ( E ) , D ( E ) A(E), B(E), D(E) A(E),B(E),D(E) E E E正幂多项式,
      D ( E ) ⋅ [ A ( E ) D ( E ) ⋅ B ( E ) ] f ( t ) = A ( E ) B ( E ) f ( t ) \displaystyle D(E) \cdot [\frac{A(E)}{D(E)\cdot B(E)}]f(t) = \frac{A(E)}{B(E)}f(t) D(E)[D(E)B(E)A(E)]f(t)=B(E)A(E)f(t)
      A ( E ) D ( E ) ⋅ B ( E ) [ D ( E ) f ( t ) ] ≠ A ( E ) B ( E ) f ( t ) \displaystyle\frac{A(E)}{D(E)\cdot B(E)}[D(E)f(t)] \neq \frac{A(E)}{B(E)}f(t) D(E)B(E)A(E)[D(E)f(t)]=B(E)A(E)f(t)
  • 传输算子:
    H ( E ) = B ( E ) A ( E ) = b m E m + b m − 1 E m − 1 + ⋯ + b 0 E n + a n − 1 E n − 1 + ⋯ + a 0 H(E) = \displaystyle \frac{B(E)}{A(E)} = \frac{b_m E^m+ b_{m-1} E^{m-1} + \dots + b_0}{E^n + a_{n-1}E^{n-1} + \dots + a_0} H(E)=A(E)B(E)=En+an1En1++a0bmEm+bm1Em1++b0

To TOP 至目录

信号与系统(Python) 学习笔记摘录 (2) 傅里叶 Fourier

你可能感兴趣的:(#,信号与系统,信号处理,傅立叶分析,python)