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

傅里叶分析(2)

在《傅里叶分析(1)》中,讲述了连续信号的傅里叶分析方法,本文讲述离散信号的傅里叶分析方法。

虽然电、声、光、机械振动等信号在物理上是连续函数,但在实际工程中,其通常为离散信号,即若干离散的数据点。对于离散信号,傅里叶级数和傅里叶变换已经无法使用,需要使用 DTFT(离散时间傅里叶变换)和 DFT(离散傅里叶变换)分析离散信号。

1 离散信号的来源

离散信号来源于对连续信号的采样。数学处理上,离散信号为连续信号和采样函数(sampling function)的乘积:

采样函数为基于狄拉克 δ 函数(Dirac delta function)表述的脉冲序列,其定义如下:

采样函数为周期函数,其在非采样时刻的函数值为 0,由此可得仅限采样时刻的离散数据点。

采样函数的图像(图源:维基百科)

采样函数的傅里叶变换为频域上的采样函数,其周期为 1/T:

2 DTFT

根据前述采样方法,可将离散信号 x{n} 视为连续函数,除了采样点之外其他时刻函数值均为0。

傅里叶变换的卷积特性可表示为:

利用傅里叶变换的卷积特性,对 x{n} 进行傅里叶变换,其结果即 DTFT 计算公式为:

变换结果 X(ξ) 为连续周期函数,其周期为 1/T,即 X(ξ)=X(ξ+n/T)。

由于 X(ξ) 为连续函数,其逆变换可直接使用傅里叶逆变换的计算公式。对于周期函数,可将积分区间从无穷大简化到一个周期内,得到 DTFT 逆变换公式:

其中,积分区间可为任意的区间,只需满足区间的长度为单个周期长度 1/T 即可。根据 n 取值的不同即可获得 x{n} 各项取值。

对于纯实数的信号 x{n},其变换结果 X(ξ) 在正频率和负频率的幅值为对称关系。

3 DFT

虽然 DTFT 表明了离散信号的频谱分析方法,但是得到的频谱是连续函数,对基于程序的实际信号分析造成很大困难。

引用 DTFT 思路,将 x{n} 视为连续函数。根据连续信号的频谱特征,周期函数的频谱为离散点,由此可对频谱进行程序处理。

将包含 N 个数据点的有限数据集 x{n}(从 x{0} 至 x{N-1}),进行周期延拓,即 x{n} = x{n+k*T*N)},可使之成为在无穷大区间均有定义的周期函数,其周期为 T*N。由于 x{n} 的周期性,对 x{n} 进行 DTFT 仅需在单周期内即可进行。

单周期内的 DTFT 为 DFT,其计算公式为:

很显然,X{k} 在区间 [0, N-1] 只有 N 个取值,且周期为 N。

同理,在频域的单周期内进行 DTFT 逆变换,即可得到 DFT 逆变换计算公式:

对于纯实数的信号 x{n},其变换结果 X(ξ) 在正频率和负频率的幅值为对称关系。

4 重要问题

4.1 频谱的类型

通常而言,时域信号 x{n} 来源为传感器信号、A/D电路转换等,其表示的物理量通常为可直接测量的物理量,如速度、电流、温度等。

实际应用中,频谱通常分为幅值谱(amplitude spectrum)和功率谱(power spectrum)两类。幅值谱表示与功率的平方根成比例的物理量(如速度、电流、电压等);功率谱表示功率或与功率成比例的物理量(如光强度、声强度等)。

功率谱示意图(图源:mathworks.com)

幅值谱和功率谱分别定义如下:

4.2 频谱范围与精度

对于纯实数函数,DFT 可分析的频率范围为:

其中,t 为采样总时间,fs 为采样频率。

根据奈奎斯特采样定理(Nyquist sampling theorem),离散信号可分析的频谱最高频率为采样频率的一半。对于更高频率部分,DFT 已无法分析。

DFT 频谱的频率分辨率为:

其中 N 为信号的数据点数量。若需要更精细的频谱分辨率,只需要增加信号样本数量即可。

4.2 数据处理与窗函数

对离散信号的周期延拓,通常会在信号首尾两端形成较大的不连续。信号在时域的不连续会导致频谱泄露(spectral leakage),即人为形成某些本不存在的谐波。

通过窗函数(window function)对离散信号进行处理,使信号首尾两端的幅值逐步降低,可降低信号在两端的不连续性。

通过窗函数处理后的信号 y{n} 和原始信号 x{n} 之间,满足:

其中 w{n} 为窗函数。

窗函数应用效果对比(图源:《Digital Signal Processing Fundamentals and Applications》,作者 Li Tan)

常用的窗函数包括三角、Hamming、Hanning等。

若信号是宽带信号,即不存在很明显的频域尖峰,可无需窗函数处理。Hanning 窗函数适用于多数常规问题,可作为通用的窗函数。

Hanning 窗函数表达式为:

Hanning 窗函数特点为在信号首尾两端幅值为 0,正中心位置幅值为 1。

包含 21 个数据点的 Hanning 窗函数图像

5 DFT 和 FFT 的关系

快速傅里叶变换(Fast Fourier Transform,FFT)是 DFT 的一种计算方法。FFT 本质上是利用其它替代计算方式,避免根据 DFT 的定义直接计算 DFT,从而加快计算速度,节约硬件资源。

FFT 当前最常用方法为 Cooley–Tukey 方法。许多工程计算软件均有 FFT 相关功能,直接导入数据序列进行分析即可。

6 总结

对(1)、(2)文的重点进行总结:

  • 傅里叶级数和傅里叶变换表述了连续信号频谱分析方法
  • DTFT 表述了无限多样本的离散信号频谱分析方法
  • DFT 表述了有限多样本的离散信号频谱分析方法
  • 只有 DFT 可直接用于程序计算
  • 使用 FFT 可加快 DFT 计算速度


http://www.kler.cn/a/132719.html

相关文章:

  • 主机型入侵检测系统(HIDS)——Elkeid在Centos7的保姆级安装部署教程
  • 【ARM】MDK在debug模式下的Registers窗口包含哪些内容
  • Java基础-组件及事件处理(中)
  • Linux-何为CentOS
  • PG-DERN 解读:少样本学习、 双视角编码器、 关系图学习网络
  • 任意文件下载漏洞
  • elementui 实现树形控件单选
  • 哈希
  • 解决Redis分布式锁宕机出现不可靠问题-zookeeper分布式锁
  • kubernetes|云原生| 如何优雅的重启和更新pod---pod生命周期管理实务
  • QGIS003:【05高级数字化工具栏】-要素移动、修改、合并操作
  • Hadoop学习总结(MapRdeuce的词频统计)
  • 【原创】java+swing+mysql鲜花购物商城设计与实现
  • ATTCK实战系列——红队实战(一)
  • Alibaba Nacos注册中心源码剖析
  • 6.6.比例尺图层(ScaleBarOverlay)
  • Django框架之模型层(一)
  • 2023.11.17-hive调优的常见方式
  • nodeJs基础笔记
  • 自定义vtkActor动画场景及事件_vtkAnimationScene
  • Feature Pyramid Networks for Object Detection(2017.4)
  • [数据集][目标检测]斑马数据集VOC+yolo格式375张1类别
  • 03_SHELL编程之嵌套循环+随机数及综合案例
  • os.path.join函数用法
  • OpenCV C++ 张正友相机标定【相机标定原理、相机标定流程、图像畸变矫正】
  • 【Python 千题 —— 基础篇】输出列表方差