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

信号的时域截断——频谱泄漏——光晕效应

在时域信号中,如果对一个包含不连续点的信号进行截断,即使用有限个样本点来表示原本无限长或更长的信号,那么在频域中这相当于对信号进行了乘以一个矩形窗的操作。这种操作会导致原信号频谱与矩形窗的频谱卷积,从而在频域中引入额外的频率成分,这就是所谓的“频谱泄漏”(Spectral Leakage)。

频谱泄漏(Spectral Leakage)是指在对一个非周期信号或周期但长度与分析窗口不匹配的信号进行离散傅里叶变换(DFT)时,信号的能量不再集中在原来的频率位置,而是扩散到周围的频率上。这种现象主要是由于信号在时域中被截断所引起的。

同时,在时域中,这种截断也会导致Gibbs现象的发生,即在信号的不连续点附近会出现振荡,这些振荡的峰值不会随着采样点数目的增加而减少。

数学解释

假设有一个连续时间信号 x ( t ) x(t) x(t),其傅里叶变换为 X ( f ) X(f) X(f)。当我们对该信号进行采样,得到离散时间信号 x [ n ] = x ( n T s ) x[n] = x(nT_s) x[n]=x(nTs),其中 T s T_s Ts是采样间隔, f s = 1 / T s f_s = 1/T_s fs=1/Ts是采样频率。然后我们对 N N N个采样点进行 DFT,得到离散频谱 X [ k ] X[k] X[k]

1. 理想情况下的 DFT

如果 x ( t ) x(t) x(t)是一个周期信号,并且采样点数 N N N恰好等于信号的一个完整周期,则 DFT 可以完美地表示信号的频谱。此时,DFT 的定义为:

X [ k ] = ∑ n = 0 N − 1 x [ n ] e − j 2 π k n / N X[k] = \sum_{n=0}^{N-1} x[n] e^{-j 2 \pi k n / N} X[k]=n=0N1x[n]ej2πkn/N

2. 实际情况下的 DFT

然而,大多数情况下,信号不是严格周期的,或者采样点数 N N N不等于信号的一个完整周期。在这种情况下,信号在时域中被一个矩形窗 w [ n ] w[n] w[n]截断,即:

x N [ n ] = x [ n ] ⋅ w [ n ] x_N[n] = x[n] \cdot w[n] xN[n]=x[n]w[n]

其中,矩形窗 w [ n ] w[n] w[n]定义为:

w [ n ] = { 1 if  0 ≤ n < N 0 otherwise w[n] = \begin{cases} 1 & \text{if } 0 \leq n < N \\ 0 & \text{otherwise} \end{cases} w[n]={10if 0n<Notherwise

因此,实际的 DFT 变为:

X N [ k ] = ∑ n = 0 N − 1 x [ n ] w [ n ] e − j 2 π k n / N X_N[k] = \sum_{n=0}^{N-1} x[n] w[n] e^{-j 2 \pi k n / N} XN[k]=n=0N1x[n]w[n]ej2πkn/N

根据傅里叶变换的性质,时域中的乘积对应于频域中的卷积。因此,实际的频谱 X w ( f ) X_w(f) Xw(f)可以表示为:

X w ( f ) = X ( f ) ∗ W ( f ) X_w(f) = X(f) * W(f) Xw(f)=X(f)W(f)

其中, W ( f ) W(f) W(f)是矩形窗的傅里叶变换,即:

W ( f ) = sin ⁡ ( π f N ) sin ⁡ ( π f ) W(f) = \frac{\sin(\pi f N)}{\sin(\pi f)} W(f)=sin(πf)sin(πfN)

这个函数被称为 sinc 函数,其主瓣宽度为 2 N \frac{2}{N} N2Hz,旁瓣高度逐渐减小但始终存在。

频谱泄漏的影响

由于 W ( f ) W(f) W(f)的主瓣和旁瓣,实际的频谱 X w ( f ) X_w(f) Xw(f)会受到以下影响:

  1. 主瓣宽度:主瓣越宽,信号的能量就越分散,导致分辨率降低。
  2. 旁瓣高度:旁瓣的存在会导致相邻频率成分之间的干扰,使得频谱中的尖峰变得模糊。

在这里插入图片描述

在这里插入图片描述
增加数据长度——提高频率分辨率

http://www.lryc.cn/news/510770.html

相关文章:

  • 【Linux编程】TcpServer 类的设计与实现:构建高性能的 TCP 服务器(二)
  • Mono里运行C#脚本8—mono_image_storage_open打开EXE文件
  • XMLHttpRequest的基础知识
  • 力扣矩阵-算法模版总结
  • 如何在短时间内读懂复杂的英文文献?
  • 基于aspose.words组件的word bytes转pdf bytes,去除水印和解决linux中文乱码问题
  • Bert中文文本分类
  • 【深度学习】Java DL4J基于 CNN 构建车辆识别与跟踪模型
  • 【C#】C#打印当前时间以及TimeSpan()介绍
  • 【Linux 网络 (五)】Tcp/Udp协议
  • 多旋翼无人机理论 | 四旋翼动力学数学模型与Matlab仿真
  • Vue3项目中引入TailwindCSS(图文详情)
  • 【开源项目】数字孪生化工厂—开源工程及源码
  • 咨询团队如何通过轻量型工具优化项目管理和提高团队协作效率?
  • javaWeb开发
  • 如何在 Vue 中处理 API 请求?
  • 基于Debian的Linux发行版的包管理工具
  • 2022年国家公考《申论》题(行政执法)
  • 贪心算法(常见贪心模型)
  • git自动压缩提交的脚本
  • Kinova在开源家庭服务机器人TidyBot++研究里大展身手
  • 使用 Spring Boot 实现文件上传:从配置文件中动态读取上传路径
  • 《鸿蒙HarmonyOS应用开发从入门到精通(第2版)》学习笔记——HarmonyOS技术理念
  • 将多个 k8s yaml 配置文件合并为一个文件
  • Linux 文件的特殊权限—Sticky Bit(SBIT)权限
  • MIPI D-PHY/C-PHY/M-PHY 高速串行接口标准
  • USB免驱IC读写器QT小程序开发
  • OSCP靶场训练冒险之kioprix4:shell逃逸以及利用数据库提权
  • NIPS2014 | GAN: 生成对抗网络
  • Postman接口测试01|接口测试基础概念、http协议、RESTful风格、接口文档