当前位置: 首页 > news >正文

信号与系统03-信号的频域分析

第3讲:信号的频域分析


一、引言

在信号处理中,频域分析是理解信号本质特征的重要工具。通过将信号从时域转换到频域,我们可以更直观地观察信号的频率组成,从而设计高效的滤波器、特征提取器或系统模型。而人工智能(AI)中的许多技术(如频谱分析、语音识别、图像压缩)都依赖于频域分析的核心思想。本节课将从傅里叶级数与傅里叶变换出发,结合AI中的典型应用,深入探讨频域分析的原理与实践。


二、傅里叶级数与傅里叶变换

(一)傅里叶级数(Fourier Series)

  • 定义:任何满足狄利克雷条件的周期信号 x ( t ) x(t) x(t) 都可以表示为一组正弦和余弦函数的线性组合:
    x ( t ) = a 0 + ∑ k = 1 ∞ [ a k cos ⁡ ( 2 π k f 0 t ) + b k sin ⁡ ( 2 π k f 0 t ) ] x(t) = a_0 + \sum_{k=1}^{\infty} \left[ a_k \cos(2\pi k f_0 t) + b_k \sin(2\pi k f_0 t) \right] x(t)=a0+k=1[akcos(2πkf0t)+bksin(2πkf0t)]
    其中:

    • f 0 = 1 T f_0 = \frac{1}{T} f0=T1 是信号的基本频率;
    • a 0 a_0 a0 是直流分量;
    • a k , b k a_k, b_k ak,bk 是傅里叶系数,表示各频率分量的幅度。
  • 物理意义:将周期信号分解为不同频率的正弦/余弦分量,揭示其频域特性。

  • AI中的应用:在音频信号处理中,傅里叶级数用于提取语音或音乐的基频和谐波成分。


(二)傅里叶变换(Fourier Transform)

  • 定义:对于非周期信号 x ( t ) x(t) x(t),其傅里叶变换为:
    X ( f ) = ∫ − ∞ ∞ x ( t ) e − j 2 π f t d t X(f) = \int_{-\infty}^{\infty} x(t) e^{-j2\pi f t} dt X(f)=x(t)ej2πftdt
    逆变换为:
    x ( t ) = ∫ − ∞ ∞ X ( f ) e j 2 π f t d f x(t) = \int_{-\infty}^{\infty} X(f) e^{j2\pi f t} df x(t)=X(f)ej2πftdf

  • 物理意义:将信号从时域转换到频域,表示信号在不同频率下的能量分布。

  • AI中的应用

    • 图像处理:频域滤波(如高通/低通滤波)用于图像锐化或模糊;
    • 语音识别:短时傅里叶变换(STFT)用于提取语音信号的时频特征;
    • 神经网络:频域卷积(如频域滤波器)用于加速计算或提取全局特征。

(三)快速傅里叶变换(FFT)

  • 定义:FFT是一种高效计算离散傅里叶变换(DFT)的算法,其时间复杂度为 O ( N log ⁡ N ) O(N \log N) O(NlogN),远低于直接计算DFT的 O ( N 2 ) O(N^2) O(N2)

  • 数学表达式
    X [ k ] = ∑ n = 0 N − 1 x [ n ] e − j 2 π k n / N , k = 0 , 1 , … , N − 1 X[k] = \sum_{n=0}^{N-1} x[n] e^{-j2\pi kn/N}, \quad k = 0, 1, \dots, N-1 X[k]=n=0N1x[n]ej2πkn/N,k=0,1,,N1

  • AI中的应用

    • 实时信号处理:在传感器数据或音频流中快速提取频域特征;
    • 频谱分析:在机器学习中用于特征工程(如频谱峰值检测)。

三、频域分析在人工智能中的典型应用

(一)图像处理中的频域滤波

  • 低通滤波:保留图像中的低频信息(平滑区域),去除高频噪声。
  • 高通滤波:保留图像中的高频信息(边缘、细节),增强轮廓。

案例:在卷积神经网络(CNN)中,频域卷积核(如Butterworth滤波器)可用于替代传统空间域卷积,减少参数量并提高效率。


(二)语音识别中的频谱分析

  • 短时傅里叶变换(STFT)
    X ( t , f ) = ∫ − ∞ ∞ x ( τ ) w ( τ − t ) e − j 2 π f τ d τ X(t, f) = \int_{-\infty}^{\infty} x(\tau) w(\tau - t) e^{-j2\pi f \tau} d\tau X(t,f)=x(τ)w(τt)ej2πfτdτ
    其中 w ( τ ) w(\tau) w(τ) 是窗函数,用于局部化时域信号。

  • AI中的应用:STFT生成的时频图(如梅尔频谱图)是语音识别模型(如Transformer)的输入特征。


(三)神经网络中的频域操作

  • 频域卷积:将卷积操作从时域转换到频域,利用傅里叶变换的卷积定理:
    x ( t ) ∗ h ( t ) ↔ X ( f ) H ( f ) x(t) * h(t) \leftrightarrow X(f) H(f) x(t)h(t)X(f)H(f)
    即时域卷积对应频域乘积。

  • 优势

    • 减少计算量(频域乘积比时域卷积快);
    • 提取全局频率特征(如图像中的纹理模式)。

四、Python实践:频域分析与AI应用

(一)生成信号并进行频谱分析

import numpy as np
import matplotlib.pyplot as plt# 参数设置
fs = 1000  # 采样频率
t = np.linspace(0, 1, fs)
f1, f2 = 5, 20  # 信号频率# 生成复合正弦信号
x = np.sin(2 * np.pi * f1 * t) + 0.5 * np.sin(2 * np.pi * f2 * t)# 快速傅里叶变换 (FFT)
X = np.fft.fft(x)
frequencies = np.fft.fftfreq(len(X), 1/fs)# 绘制结果
plt.figure(figsize=(12, 6))
plt.subplot(2, 1, 1)
plt.plot(t, x)
plt.title('Time Domain Signal')
plt.xlabel('Time [s]')plt.subplot(2, 1, 2)
plt.plot(frequencies[:len(frequencies)//2], np.abs(X[:len(X)//2]))
plt.title('Frequency Domain Spectrum')
plt.xlabel('Frequency [Hz]')
plt.tight_layout()
plt.show()

(二)AI中的频域处理(PyTorch示例)

import torch
import torch.nn as nn
import torch.fft as fft# 定义频域卷积层
class FrequencyConv1d(nn.Module):def __init__(self, in_channels, out_channels, kernel_size):super(FrequencyConv1d, self).__init__()self.kernel = nn.Parameter(torch.randn(out_channels, in_channels, kernel_size))def forward(self, x):# 时域转频域X = fft.fft(x, dim=-1)K = fft.fft(self.kernel, dim=-1)# 频域乘积Y = X * K.unsqueeze(0).unsqueeze(-2)# 频域转时域y = fft.ifft(Y, dim=-1).realreturn y# 示例:输入信号(形状: [batch_size, channels, length])
input_signal = torch.randn(1, 1, 100)# 初始化频域卷积层
freq_conv = FrequencyConv1d(in_channels=1, out_channels=1, kernel_size=3)# 前向传播
output = freq_conv(input_signal)
print("Input shape:", input_signal.shape)
print("Output shape:", output.shape)

五、总结

本节课从傅里叶级数与傅里叶变换出发,深入讲解了频域分析的数学原理,并结合人工智能中的图像处理、语音识别和神经网络等典型应用,展示了频域分析的实际价值。通过Python代码示例,我们直观地观察了信号的频谱特性,并体验了频域卷积的实现方法。


六、参考文献

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

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

相关文章:

  • 反本能---如何对抗你的习以为常
  • 哈希表的实现(上)
  • QString 写时拷贝简介
  • 探索常识性概念图谱:构建智能生活的知识桥梁
  • STM32 SPI通信(软件)
  • 【LINUX操作系统】线程池——线程部分综合运用并实现一个自己的线程池
  • [SWPUCTF 2021 新生赛]简简单单的解密
  • 疏锦行Python打卡 DAY 9 热力图和子图的绘制
  • C++---vector模拟实现
  • ld: cpu type/subtype in slice (arm64e.old) does not match fat header (arm64e)
  • 测试关键点
  • Java流式处理-Steam详解
  • 【Fifty Project - D30】
  • 告别手抖困扰:全方位健康护理指南
  • 《AI 绘画崛起,人类艺术家如何在夹缝中寻找新机遇?》
  • 电磁兼容(EMC)仿真(精编版)
  • MYSQL之复合查询
  • 实验13 数据库权限管理
  • Python语法特点与编码规范
  • CDGA|一线二线企业数据治理项目目前发展状况
  • 河南省住房城乡建设厅官方网站/谷歌chrome官网
  • 网站开发设计工程师职责简介/百度知道登录入口
  • 成都市文化馆网站建设/关键词优化方法
  • 网站建设制作流程/如何做网页
  • 在那里做网站/客户管理系统
  • 产品网站怎样做外部链接/怎样创建自己的电商平台