信号与系统02-信号的时域分析

第2讲:信号的时域分析


一、引言

在信号与系统中,时域分析是研究信号随时间变化行为的核心方法。通过时域分析,我们可以直接观察信号的波形、幅度、相位等特征,并利用这些特征设计系统或提取信息。而人工智能(AI)中的许多技术(如卷积神经网络、时间序列预测)本质上也是在时域中操作信号。本节课将从信号的基本运算入手,逐步深入到卷积积分与卷积和,并结合AI中的实际案例,帮助大家理解时域分析的重要性。


二、信号的基本运算

信号的基本运算包括**平移(延迟/提前)、缩放(振幅调整)、翻转(对称变换)**等。这些操作是构建复杂信号和系统的基础。

(一)信号平移(延迟/提前)

  • 定义:将信号 x ( t ) x(t) x(t) 沿时间轴移动 τ \tau τ 秒,得到新的信号 x ( t − τ ) x(t - \tau) x(tτ)。若 τ > 0 \tau > 0 τ>0,表示延迟;若 τ < 0 \tau < 0 τ<0,表示提前。
  • 数学表达式
    x ( t − τ ) = { x ( t ) , t ≥ τ 0 , 否则 x(t - \tau) = \begin{cases} x(t), & t \geq \tau \\ 0, & \text{否则} \end{cases} x(tτ)={x(t),0,tτ否则
  • AI中的应用:在时间序列预测中,平移操作常用于构建滑动窗口(sliding window),例如股票价格预测。

(二)信号缩放

  • 定义:将信号 x ( t ) x(t) x(t) 的振幅乘以一个常数 A A A,得到新的信号 A x ( t ) A x(t) Ax(t)。若 A > 1 A > 1 A>1,表示放大;若 0 < A < 1 0 < A < 1 0<A<1,表示衰减。
  • 数学表达式
    y ( t ) = A x ( t ) y(t) = A x(t) y(t)=Ax(t)
  • AI中的应用:在图像处理中,缩放操作用于调整图像亮度或对比度。

(三)信号翻转

  • 定义:将信号 x ( t ) x(t) x(t) 关于时间轴对称变换,得到 x ( − t ) x(-t) x(t)。若进一步平移,得到 x ( − t + τ ) x(-t + \tau) x(t+τ)
  • 数学表达式
    y ( t ) = x ( − t ) y(t) = x(-t) y(t)=x(t)
  • AI中的应用:在语音识别中,翻转操作可用于提取信号的对称特征。

三、冲激信号与阶跃信号

冲激信号和阶跃信号是时域分析中最重要的基本信号,它们在系统建模和特征提取中具有关键作用。

(一)冲激信号(Delta Function)

  • 定义:单位冲激信号 δ ( t ) \delta(t) δ(t) 满足以下条件:
    δ ( t ) = { ∞ , t = 0 0 , t ≠ 0 , ∫ − ∞ ∞ δ ( t ) d t = 1 \delta(t) = \begin{cases} \infty, & t = 0 \\ 0, & t \neq 0 \end{cases}, \quad \int_{-\infty}^{\infty} \delta(t) dt = 1 δ(t)={,0,t=0t=0,δ(t)dt=1
  • 物理意义:表示一个瞬时能量极大的脉冲信号。
  • AI中的应用:在卷积神经网络(CNN)中,冲激响应的概念被用于建模滤波器的权重分布。

(二)阶跃信号(Step Function)

  • 定义:单位阶跃信号 u ( t ) u(t) u(t) 满足:
    u ( t ) = { 1 , t ≥ 0 0 , t < 0 u(t) = \begin{cases} 1, & t \geq 0 \\ 0, & t < 0 \end{cases} u(t)={1,0,t0t<0
  • 物理意义:表示一个突变的信号,常用于建模开关或启动事件。
  • AI中的应用:在二分类问题中,阶跃函数(如Sigmoid函数)用于输出离散决策。

四、卷积积分与卷积和

(一)连续时间信号的卷积积分

  • 定义:两个连续时间信号 x ( t ) x(t) x(t) h ( t ) h(t) h(t) 的卷积积分定义为:
    y ( t ) = x ( t ) ∗ h ( t ) = ∫ − ∞ ∞ x ( τ ) h ( t − τ ) d τ y(t) = x(t) * h(t) = \int_{-\infty}^{\infty} x(\tau) h(t - \tau) d\tau y(t)=x(t)h(t)=x(τ)h(tτ)dτ
  • 物理意义:卷积表示一个系统对输入信号 x ( t ) x(t) x(t) 的响应,其中 h ( t ) h(t) h(t) 是系统的冲激响应。
  • AI中的应用:卷积操作是卷积神经网络(CNN)的核心,用于提取局部特征。例如,在图像处理中,卷积核(filter)通过滑动窗口与图像信号卷积,提取边缘、纹理等特征。

(二)离散时间信号的卷积和

  • 定义:两个离散时间信号 x [ n ] x[n] x[n] h [ n ] h[n] h[n] 的卷积和为:
    y [ n ] = x [ n ] ∗ h [ n ] = ∑ k = − ∞ ∞ x [ k ] h [ n − k ] y[n] = x[n] * h[n] = \sum_{k=-\infty}^{\infty} x[k] h[n - k] y[n]=x[n]h[n]=k=x[k]h[nk]
  • 物理意义:与连续时间卷积类似,但适用于离散信号。
  • AI中的应用:在时间序列预测中,卷积和用于建模序列间的依赖关系,例如LSTM网络中的门控机制。

五、卷积神经网络(CNN)与信号处理的关联

(一)CNN中的卷积操作

  • 传统卷积 vs CNN卷积

    • 传统卷积:完全遵循数学定义,需严格对齐信号和滤波器。
    • CNN卷积:通过参数共享(weight sharing)和局部连接(local connectivity)减少计算量,同时引入非线性激活函数(如ReLU)增强模型表达能力。
  • 公式对比

    • 传统卷积:
      y [ n ] = ∑ k = − ∞ ∞ x [ k ] h [ n − k ] y[n] = \sum_{k=-\infty}^{\infty} x[k] h[n - k] y[n]=k=x[k]h[nk]
    • CNN卷积:
      y [ n ] = f ( ∑ k = 1 K w k x [ n − k ] + b ) y[n] = f\left( \sum_{k=1}^{K} w_k x[n - k] + b \right) y[n]=f(k=1Kwkx[nk]+b)
      其中 f f f 为激活函数(如ReLU), w k w_k wk 为可学习参数, b b b 为偏置。

(二)CNN在信号处理中的典型应用

  1. 图像分类:通过卷积层提取图像局部特征(如边缘、纹理)。
  2. 语音识别:通过卷积层提取语音信号的频谱特征。
  3. 医学信号分析:通过卷积层检测心电图(ECG)或脑电图(EEG)中的异常模式。

六、Python实践:信号的时域分析与卷积

(一)信号平移与缩放

import numpy as np
import matplotlib.pyplot as plt

# 生成一个正弦信号
fs = 1000
t = np.linspace(0, 1, fs)
x = np.sin(2 * np.pi * 5 * t)

# 平移操作(延迟0.2秒)
tau = 0.2
x_shifted = np.roll(x, int(tau * fs))

# 缩放操作(放大2倍)
x_scaled = 2 * x

# 绘制结果
plt.figure(figsize=(12, 6))
plt.subplot(2, 1, 1)
plt.plot(t, x, label='Original')
plt.plot(t, x_shifted, label='Shifted')
plt.legend()
plt.title('Signal Shifting')

plt.subplot(2, 1, 2)
plt.plot(t, x, label='Original')
plt.plot(t, x_scaled, label='Scaled')
plt.legend()
plt.title('Signal Scaling')
plt.tight_layout()
plt.show()

(二)卷积操作(连续时间近似)

from scipy.signal import convolve

# 定义两个信号
t = np.linspace(0, 2, 1000)
x = np.sin(2 * np.pi * 1 * t)  # 输入信号
h = np.exp(-5 * t) * (t >= 0)  # 冲激响应(指数衰减)

# 计算卷积
y = convolve(x, h, mode='same')  # mode='same' 表示输出长度与输入相同

# 绘制结果
plt.figure(figsize=(10, 6))
plt.plot(t, x, label='Input x(t)')
plt.plot(t, h, label='Impulse Response h(t)')
plt.plot(t, y, label='Convolution y(t)')
plt.legend()
plt.title('Convolution in Continuous-Time')
plt.grid(True)
plt.show()

(三)AI中的卷积(PyTorch示例)

import torch
import torch.nn as nn

# 定义一个简单的卷积层
conv_layer = nn.Conv1d(in_channels=1, out_channels=1, kernel_size=3, padding=1)

# 生成输入信号(形状: [batch_size, channels, length])
input_signal = torch.randn(1, 1, 100)

# 前向传播
output = conv_layer(input_signal)
print("Input shape:", input_signal.shape)
print("Output shape:", output.shape)

七、总结

本节课从信号的基本运算入手,深入讲解了冲激信号、阶跃信号以及卷积积分与卷积和的数学原理,并结合人工智能中的卷积神经网络(CNN)展示了它们的实际应用。通过Python代码示例,我们直观地观察了信号的平移、缩放、卷积操作,并初步体验了AI中的卷积实现。


八、课后思考题

  1. 为什么卷积神经网络(CNN)的卷积操作与传统信号处理中的卷积存在差异?
  2. 试举一个实际场景,说明信号平移在AI中的应用(如语音识别)。
  3. 在CNN中,参数共享和局部连接的意义是什么?

九、参考文献

  1. 《信号与系统(第3版)》清华大学出版社
  2. PyTorch官方文档
  3. Scipy.signal.convolve官方文档

通过本节课的学习,相信你已经掌握了信号时域分析的核心方法,并开始理解它们在AI中的重要性。在接下来的课程中,我们将进一步探讨系统的时域分析方法,并结合更多AI案例深入讲解。敬请期待!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值