德思特干货|如何使用SBench 6对数字化仪采集信号进行处理?(三)——快速傅立叶变换(FFT)

news2024/11/24 18:28:54

来源:德思特测量测试 德思特干货|如何使用SBench 6对数字化仪采集信号进行处理?(三)——快速傅立叶变换(FFT)

原文链接:https://mp.weixin.qq.com/s/mYS1iDXFNVfReCGGtF78mw

欢迎关注虹科,为您提供最新资讯!

#信号采集 #信号处理 #测量测试

上一篇文章介绍了德思特SBench 6的平均运算功能。本章将继续为大家介绍SBench 6的快速傅立叶变换(FFT)。

前文回顾:https://mp.weixin.qq.com/s/j-iN_2Jrn9ZHGMaaAYsDJg

快速傅立叶变换(FFT)

快速傅立叶变换(FFT)将获取的波形从时域(幅度对时间)映射到频谱域(幅度对频率)。这使得用户可以观察构成信号的频率成分。FFT本身并不能直接改善信号质量,但它能显示信号的频率成分结构,并提供了如何移除不需要的频谱成分的信息。

FFT产生的频谱有一个离散的时间轴,就像时域信号有离散的采样时间一样。频谱中的谱线,通常称为“bins”或“cells”,每个谱线之间由分辨率带宽(f)隔开,而分辨率带宽与采集到的原始信号长度成反比,因此,要增加FFT频谱的频率分辨率,必须增加采集的原始信号长度。而频谱显示的总频率范围,或者说频率跨度,是原始信号采样率的一半,因此,要增加总频率跨度,也必须增加采样率。

在德思特SBench 6软件中,FFT结果的纵轴缩放可以设为线性单位伏特,也可以是对数单位分贝(dB)。对数刻度可以参考数字化仪的满偏刻度(dBFS)、1 毫瓦(dBm)、1 微伏(dbμV)或设为针对假定载波频谱中的最大峰值(dBc)。

(1)权重函数

理论上的傅立叶变换假设输入记录的长度为无穷大。有限的采样长度则会在频域边缘引入不连续性,为频域引入伪频率,并一定程度扭曲实际的频谱。例如,当信号的开始和结束相位不同,或者信号频率落在两个相邻的谱线之间时,使频谱变宽。

频谱展宽,以至于扩展到许多相邻的频带,称为泄漏。对于这种问题的理论应对方法是确保在显示网格内包含整数个周期,或在边缘处不出现不连续性。两者都需要信号波形频率和数字化采样率之间非常精确的同步,并且需要准确地设置采集长度,这通常只可能在实验室中实现,而不能作用于真实世界的信号。另一种方法是使用窗函数(加权)来平滑信号的边缘。

为了尽量减少这些负面影响,对获取的信号应用加权函数,使记录的端点为零。德思特SBench 6软件中的FFT功能为用户提供八种加权函数的选择,而这些加权函数则可以改变谱线的形状。对此没什么概念的读者,可以把它想象为组合到一起的一些列并行的理想带通滤波器,这些滤波器之间的频率间距为分辨率带宽,而加权函数则会影响滤波器频率响应的形状。图1比较了四种最常用的加权函数对应的频率响应。

图1:四种最常用的加权函数的谱形状比较

理想情况下,主瓣应尽可能窄,且两侧平坦,以代表真实的频谱成分,而所有旁瓣应无限衰减。窗函数类型定义了在FFT处理中使用的等效滤波器的带宽和形状。表1中展示了频谱响应的最大旁瓣幅度。较大的旁瓣电平将有助于区分密集的频谱成分。

表1:不同加权函数的关键特性

如前所述,FFT结果的频率轴是离散的,具有以分辨率带宽的倍数间隔的频点。如果输入信号频率落在两个相邻的谱线之间,能量将被分配到两个谱线中,且峰值幅度将降低。这被称为栅栏效应或波浪状效应,而扩宽频谱响应可以减少幅度变化。表1中的栅栏损失列给出了不同加权函数该效应幅值。

同时,加权函数还会影响频谱响应的带宽。等效噪声带宽(ENBW)说明了相对于矩形窗加权带宽的相对变化。将功率谱归一化到测量带宽(功率谱密度)需要将功率谱除以ENBW与分辨率带宽的积(f✖️ENBW)。

相干增益描述了给定加权函数相对于矩形窗加权的频谱幅度变化。这是一个应用在所有频率上的固定增益,可以很容易地归一化。

矩形窗加权函数是采集信号没有任何加权的响应。它具有最窄的带宽,但旁瓣幅值则相当高。由于采集时域记录中的所有点的幅度响应都是均匀的,它常用于具有瞬态性质的信号(或相对记录总长短得多的信号)。当需要以最佳频率精度进行分析时,也会使用它。

Hanning和Hamming加权函数具有良好的通用的频率响应,能提供较好的频率分辨率以及合理的旁瓣响应。Blackman-Harris则旨在获得最佳幅度精度和优秀的旁瓣抑制。

(2)FFT应用实例

图2展现了一个典型的FFT应用实例。在该实例中,我们使用宽带的仪器级麦克风和德思特TS-M4i系列14位数字化仪,获得了超声波测距仪的信号。

图2:40 kHz的超声波脉冲(左)及其FFT结果(右下全频段,右上局部放大)

采集到的时域信号在左窗格中。时域记录包含了在3.90625 MS/s采样率下采集到的16384个样本点,持续时间为4.2毫秒。得到的FFT结果(右窗格)共有8192条谱线,每条谱线之间间隔238 Hz分辨率带宽(记录时长的倒数),总频率跨度为1.95 MHz(采样率的一半)。其中,右下角的频谱是全频段总览图,右上角则是局部放大视图,只显示了前100 kHz频率范围的内容,以便更好地观察主要频谱成分。

FFT能帮助我们更好地理解构成这个信号的成分。首先我们看时域,可以知道这是一个持续时间小于采集记录长度的瞬态信号,在这种情况下我们选用了矩形窗进行加权。FFT结果中幅值最大的频率成分,明显就是我们的主要信号——40 kHz左右的脉冲。而在80 kHz附近频率的一个小峰,则是40 kHz信号成分的二次谐波。其幅度大约比40 kHz信号成分低45 dB。此外,在0~10 kHz之间也有很多低频干扰成分,其中最高的、接近DC的那部分,对应的是设备所在房间中的环境噪声。

在该实例中,我们的目标是能够测量发射脉冲和40 kHz回波之间的时延。为了实现这一点,我们需要改进这个测量过程。第一步,我们希望移除频谱中40 kHz成分之外的其它成分。现在我们将带着这个目标,来进行滤波器的设置。

(3)滤波

在德思特SBench 6专业版软件中,我们提供了低通、带通或高通选项的有限冲激响应(FIR)数字滤波器。通过输入所需的滤波器类型、截止频率或频率,以及滤波器阶数,用户可以直接在图形界面中创建这些滤波器。SBench 6软件会在滤波器无法实现时给出提示,并提出解决建议。或者,您也可以输入从其他来源获取的滤波器系数。我们将这些滤波器应用于采集到的信号,然后将滤波结果与原始采样结果或平均采样结果进行比较。在图3中,应用的带通FIR滤波器截止频率为30和50 kHz,以帮助提取目标信号。

图3:原始波形和滤波后信号及其FFT结果的对比

左上角的窗格显示了原始波形,下面对应我们之前看到的原始信号FFT结果。右上角的窗格则为通过带通滤波后的波形,滤波信号的FFT结果在右下角的窗格中。可以发现,带通滤波器消除了低频拾取噪声和80 kHz位置的二次谐波。滤波后的信号在时间域视图现在有了一个相对平坦的基线,从而能使反射信号更清楚地分辨出来,而这就是我们滤波处理的目标。由此我们也可以看出FFT对深入了解信号提供的帮助。

结论

使用德思特SBench 6软件提供的信号处理工具,如模拟运算、平均值、FFT、滤波和直方图等,将有助于加深对采集信号的见解,此外,还能生成一系列有利于进一步分析的二级信号波形。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1404647.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu用gparted重新分配空间

ubuntu系统使用过程中安装系统时预先留的空间不够使用怎么办? 这么办! 首先 使用df -h 查看当前空间使用情况 已经分配的空间重新规划 ? 先将已分配的空间中的多余空间分离出来; 假设我想将挂载点/home下的一部分空间分给挂载…

用户资源(菜单)控制学习使用

效果图 第一步 需要再定义常量资源 //信访听证 资源前缀public static final String RESPREFIX_MODULE_XINFTZ_"module_xinftz_";//听证专家库public static final ConstantItem RES_MODULE_XINFTZ_TINGZZJK new ConstantItem(RESPREFIX_MODULE_XINFTZ_ "tin…

SpringCloud中服务间通信(应用间通信)-亲测有效-源码下载-连载2

1、微服务概述 本案例主要解决微服务之间的相互调用问题 如果已经理解什么是微服务,可以直接跳到实战。 本案例采用springBoot3.1.7springCloud2022.0.4版本测试 本案例使用springboot2.7.x版本测试代码相同 1、微服务是分布式架构,那么为什么要需要…

Unity中URP下的SimpleLit的 BlinnPhong高光反射计算

文章目录 前言一、回顾Blinn-Phong光照模型1、Blinn-Phong模型: 二、URP下的SimpleLit的 BlinnPhong1、输入参数2、程序体计算 前言 在上篇文章中,我们分析了 URP下的SimpleLit的 Lambert漫反射计算。 Unity中URP下的SimpleLit的 Lambert漫反射计算 我…

计算机网络自顶向下Wireshark labs1-Intro

Wireshark labs1 实验文档:http://www-net.cs.umass.edu/wireshark-labs/Wireshark_Intro_v8.0.pdf 介绍 加深对网络协议的理解通常可以通过观察协议的运行和不断调试协议来大大加深,具体而言,就是观察两个协议实体之间交换的报文序列&…

DEB方式安装elastic search7以及使用

参考:https://www.cnblogs.com/anech/p/15957607.html 1、安装elastic search7 #手动下载安装 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.1-amd64.deb wget https://artifacts.elastic.co/downloads/elasticsearch/elastics…

R语言简介

1.R语言 R语言是一种数学编程语言,主要用于统计分析、绘图和数据挖掘。 2.R语言特点 免费、开源,兼容性好(Windows、MacOS或Linux)。具有多种数据类型,如向量、矩阵、因子、数据集等常用数据结构。多用于交互式数据分析&#x…

Linux配置yum源以及基本yum指令

文章目录 一、yum介绍二、什么是软件包三、配置yum源四、一键配置yum源【三步走】五、yum指令搜索软件安装软件卸载软件 六、其他yum指令更新内核更新软件更新指定软件显示所有可更新的软件清单卸载指定包并自动移除依赖包删除软件包,以及软件包数据和配置文件 一、…

灵眸边缘计算产品学习

EASY EAI灵眸科技 | 让边缘AI落地更简单 (easy-eai.com) 产品简介 支持4路1080P30fps视频流采集,四核CPU1.5GHz与2Tops AI边缘算力能力。集成有以太网、Wi-Fi、4G等网络通信外设;RS232、RS485、UART等本地通信接口。HDMI显示屏接口、音频输入输出等交互…

打造出色的 Prometheus 监控系统,看完后薪资翻倍?

一、监控概念&误区 监控是管理基础设施和业务的核心工具,监控应该和应用程序一起构建和部署,没有监控,将无法了解你的系统运行环境,进行故障诊断,也无法阻止提供系统性的性能、成本和状态等信息。 误区&#xff1…

【江科大】STM32:(超级详细)定时器输出比较

文章目录 输出比较单元特点 高级定时器:均有4个通道 PWM简介PWM(Pulse Width Modulation)脉冲宽度调制输出比较通道PWM基本结构基本定时器 参数计算捕获/比较通道的输出部分详细介绍如下: 舵机介绍硬件电路 直流电机介绍&#xff…

C# 使用System.Threading.Timer 实现计时器

写在前面 以往一般都是用 System.Timers.Timer 来做计时器,而 System.Threading.Timer 也可以实现计时器功能,并且还可以配置首次执行间隔,在功能上比System.Timers.Timer更加丰富;根据这个特性就可以实现按指定时间间隔对委托进…

JDX图片识别工具1.0版本发布啦

软件介绍 软件核心功能软件界面软件下载软件教程 软件核心功能 工作当中经常处理大量的图片,网上搜索的工具都无法满足需求,因此自己研发批量图片识别工具。 目前还是内测版,1.0版本主要包含如下特性: 批量识别图片&#xff0c…

前端JS加密与Buspsuite的坦诚相待

前端JS加密测试场景下的困惑 在渗透测试过程中经常会遇到JS前端加密的场景,假如不借助任何工具的情况下,我们一般是把JS代码进行扣取,本地进行加解密生成Payload,然后在Burpsuite里进行Payload替换。这种方式就存在一个很明显的问…

自然语言处理--双向匹配算法

自然语言处理作业1--双向匹配算法 一、概述 双向匹配算法是一种用于自然语言处理的算法,用于确定两个文本之间的相似度或匹配程度。该算法通常使用在文本对齐、翻译、语义匹配等任务中。 在双向匹配算法中,首先将两个文本分别进行处理,然后…

使用Docker部署Apache Superset结合内网穿透实现远程访问本地服务

文章目录 前言1. 使用Docker部署Apache Superset1.1 第一步安装docker 、docker compose1.2 克隆superset代码到本地并使用docker compose启动 2. 安装cpolar内网穿透,实现公网访问3. 设置固定连接公网地址 前言 Superset是一款由中国知名科技公司开源的“现代化的…

操作系统导论-课后作业-ch14

1. 代码如下&#xff1a; #include <stdio.h> #include <stdlib.h>int main() {int *i NULL;free(i);return 0; }执行结果如下&#xff1a; 可见&#xff0c;没有任何报错&#xff0c;执行完成。 2. 执行结果如下&#xff1a; 3. valgrind安装使用参考&a…

决策树的基本构建流程

决策树的基本构建流程 决策树的本质是挖掘有效的分类规则&#xff0c;然后以树的形式呈现。 这里有两个重点&#xff1a; 有效的分类规则&#xff1b;树的形式。 有效的分类规则&#xff1a;叶子节点纯度越高越好&#xff0c;就像我们分红豆和黄豆一样&#xff0c;我们当然…

UI设计中的插画运用优势(下)

6. 插画赋予设计以美学价值&#xff0c;更容易被接受 即使所有人都在分析和争论产品的可用性和易用性&#xff0c;大家在对美的追求上&#xff0c;始终保持着一致的态度。一个设计是否具备可取性&#xff0c;是否能够通过甲方、客户和实际用户&#xff0c;是每个设计人都需要面…

微服务Spring Cloud架构详解

"Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具&#xff08;例如配置管理&#xff0c;服务发现&#xff0c;断路器&#xff0c;智能路由&#xff0c;微代理&#xff0c;控制总线&#xff09;。分布式系统的协调导致了样板模式, 使用Spring Cloud开…