如何分析信号的频率信息?

1 简介

当信号的频率信息是已知的,或者近似已知的,则采样频率容易选择,选择最大采样频率的2倍以上(奈奎斯特采样)。

这里,将讨论信号频率未知的情况。尤其是,考虑如何避免混叠错误

2 低通滤波(反混叠)

去除混叠错误的最佳方法是在采集数值数据前对信号进行滤波:

  • 一般使用低通滤波。低通滤波通常叫做抗混叠滤波。
  • 低通滤波让低频信息通过,则将指定频率分量剪除。
  • 理想的低频滤波会将高频信息剪除,高于某个频率的内容全部删除
  • 一般低通滤波的频率阈值选择采样频率的 1/2 f c u t o f f = f s / 2 f_{cutoff}=f_s/2 fcutoff=fs/2
  • 至此,混叠信息被去除,可以进行数值采样。

不幸的是,现实生活中的低通滤波器不会突然切断高频;相反,更高频率的衰减随着频率而相当缓慢地下降。

正因为如此,大多数真实的数据采集系统采用比采样频率小几倍的截止频率来确保适当的抗混叠。

3 使用不同的采样频率采样

尽管没有低通抗混叠滤波,则可以使用多种不同的采样频率进行采样,以及对相应的频率谱进行采样。如果使用2种采样频率,频谱的峰值处于不同位置,则可以确定存在混叠误差。这种情况需要提高采样频率知道峰不变,则混叠峰可以被解释,后面有样例说明。

在许多实际应用中,例如测量流体流中的湍流波动,有时频谱中没有明显的峰值;相反,存在对频谱有贡献的宽范围的频率。在这种情况下,看到的不是尖锐的峰值,而是频谱中的宽起伏。如果采样频率足够高,则频谱应在频谱的折叠频率附近向零振幅下降。否则,没有以足够高的频率进行采样,并且信号的高频分量可能会导致混叠误差。

以上技术会在下面的案例中说明。

4 案例

以电压信号进行说明,伴随着随机噪声。首先,我们不知道信号频率分量,但预计频率在 15Hz。使用多个频率进行采样。第一个案例的采样频率在 f s = 30 H z , N = 256 f_s=30Hz,N=256 fs=30HzN=256,如下图所示。

从图中可以看出:

  • 可以看到在 10Hz 处有很强的分量,振幅在 0.8v,还有一个很强的分量在 5.7Hz,振幅在 1.2v。
  • 因为采样时间是任意的,因此存在泄漏。
  • 其他的频率谱显示存在噪声

这个谱是值得信任的吗?是否存在混叠误差?最佳验证方式是采用更高的采样频率

这里注意,新的采样频率不能是前面采样频率的整数倍如 60Hz/90Hz,否则混叠误差一样会出现。

我们选择 66Hz,N=256,采样时间从 8.5s 缩减到 3.9s,具体如下图所示:

从图中可以看出:

  • 10Hz 仍然是峰值,但是 5.7Hz 消失了,取而代之的是 30.3Hz混叠误差仍然存在,可见采样频率还是不够高

对这两个例子进行探索,看其是否具有一致性

  • 66Hz 的采样频率在 30.3Hz 处获得了频率分量
  • 因为 66Hz 比 2*30.3=60.6Hz 大,这可能是信号的合法频率分量。
  • 如果是合法的,则第一个案例能够预测混叠成分。假设 30.3Hz 的频率分量是真实的,则:

f a = | f − f s ⋅ N I N T ( f / f s ) | = | 30.3 − 30.0 ⋅ N I N T ( 30.3 / 30.0 ) | = 0.3 H z f_a =|f-f_s·NINT(f/f_s)|=|30.3-30.0·NINT(30.3/30.0)|= 0.3Hz fa=ffsNINT(f/fs)=30.330.0NINT(30.3/30.0)=0.3Hz

由上式可知,0.3 与 5.7Hz 不一致,所以 66Hz 还不够高。

为此,重新选了 100Hz (96不合适,因为96=30+66) 进行采样,如下图所示:

从图上可以看出:

  • 10Hz 仍然是一个强分量,因此我们可以确定其是真实的。但另一个峰35.7 Hz 出现,则5.7和30.3都不是真实的。
  • 假设35.7是真实存在的,则可以通过 66Hz 的采样频率计算获得:

f a = | f − f s ⋅ N I N T ( f / f s ) | = | 35.7 − 66.0 ⋅ N I N T ( 35.7 / 66 ) | = 30.3 H z f_a =|f-f_s·NINT(f/f_s)|=|35.7-66.0·NINT(35.7/66)|= 30.3Hz fa=ffsNINT(f/fs)=35.766.0NINT(35.7/66)=30.3Hz

上式结果显示两者是一致。

再来看看 30Hz 的采样频率计算:

f a = | f − f s ⋅ N I N T ( f / f s ) | = | 35.7 − 30.0 ⋅ N I N T ( 35.7 / 30 ) | = 5.7 H z f_a =|f-f_s·NINT(f/f_s)|=|35.7-30.0·NINT(35.7/30)|= 5.7Hz fa=ffsNINT(f/fs)=35.730.0NINT(35.7/30)=5.7Hz

从上面两个式子可以得出,100Hz 是足够的,10Hz 和 35.7Hz 是成分,其他是噪声

最后再检查一下,选用 125Hz 采样频率

现在可以看出,10Hz 和 35.7Hz 的峰被保留。可以很自信的认为采样频率避免了混叠。

5 为什么一开始不选用高采样频率?

  • 因为一开始就选用较大的采样频率,则无法确定峰是真实的还是混叠的。
  • 采样频率过高会失去高频率信息。
  • 低通滤波时,截止频率会设置过高,导致噪声过多。

参考:
https://www.me.psu.edu/cimbala/me345/Lectures/Frequency_Content_of_Signal.pdf

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

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

相关文章

二、基于图像和结构化数据多模态融合的回归预测网络【框图讲解+源码】

整理读研期间做的项目与日常小实验 本篇未完待续…代码部分整理后补充 0. 背景 实验室有一些材料的SEM(扫描电镜)图像、也有对应的组分信息(结构化数据,包含类别特征和连续的数值特征),以及对应的力学性能…

WEB 3D技术 three.js带着大家简单在文档上过一下集合体 并理解如何在文档中调试参数

前面讲了 自己创建集合体 顶点分组 但是这样其实挺麻烦的 three.js 其实已经给我们封装好了 官网直接搜索 geometry 这边这个立方体 应该算是我们用的最多的 这里 这个就是通过三个参数设置 它们分别对应 高度 宽度 厚度 拉下来 我们看到 其实他有六个参数 前面的 x y z三个…

有什么好用的C/C++源代码混淆工具?

​ 有什么好用的C/C源代码混淆工具? 开始使用ipaguard 前言 iOS加固保护是直接针对ios ipa二进制文件的保护技术,可以对iOS APP中的可执行文件进行深度混淆、加密。使用任何工具都无法逆向、破解还原源文件。对APP进行完整性保护,防止应用…

sqlmap各个命令的解释及其基本用法

各个命令的用法 -h,--help Show basic help message and exit(显示基本帮助消息并退出) -hh Show advanced help message and exit(显示高级帮助信息并退出) --version Show programs version number and exit(显示程序的版本…

力扣刷题记录(18)LeetCode:474、518、377、322

目录 474. 一和零 518. 零钱兑换 II 377. 组合总和 Ⅳ 322. 零钱兑换 总结&#xff1a; 474. 一和零 这道题和前面的思路一样&#xff0c;就是需要将背包扩展到二维。 class Solution { public:int findMaxForm(vector<string>& strs, int m, int n) {vector&l…

C语言结构体内存对齐

文章目录 一、结构体内存对齐问题二、查看结构体成员起始位置三、设置内存对齐方式 一、结构体内存对齐问题 如下的info_s结构体类型&#xff0c;包含一个int型成员age, 一个char型成员gender, 一个int型成员id。 单从数据成员的大小进行分析&#xff0c;整个结构体的大小应为…

输入两个时间,判断时间是否为非工作日,并且是日期否为同一天。是的话返回true,否返回false

工作遇到这么一个逻辑&#xff0c;前端回传两个时间&#xff08;必须是两个那一种&#xff09;。然后&#xff0c;我后端需要判断这两个时间是否为同一天&#xff0c;并且这个时间是否为非工作日&#xff0c;是的话返回true&#xff0c;反之返回false 代码&#xff1a; packa…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Dialog对话框组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之Dialog对话框组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Dialog对话框组件 对话框的使用场景也很高频&#xff0c;比如 APP 上架应…

共享和独享的区别是什么?有必要用独享IP吗?

通俗地讲&#xff0c;共享IP就像乘坐公共汽车一样&#xff0c;您可以到达目的地&#xff0c;但将与其他乘客共享旅程&#xff0c;座位很可能是没有的。独享IP就像坐出租车一样&#xff0c;您可以更快到达目的地&#xff0c;由于车上只有您一个人&#xff0c;座位是您一个人专用…

安卓开发转鸿蒙开发到底有多简单?学习鸿蒙开发有什么价值?

相信各位小伙伴们多多少少都了解过鸿蒙了&#xff0c;有些一知半解而有些已经开始学习起来。那这个鸿蒙到底好不好搞&#xff1f;要不要搞&#xff1f; 据了解安卓反正目前工作感觉不好找&#xff0c;即便是上海这样的大城市也难搞&#xff0c;人员挺饱和的。最近临近年关裁员…

浅谈locust 性能压测使用

1. 基本介绍 Locust是一个开源的负载测试工具&#xff0c;用于模拟大量用户并发访问一个系统或服务&#xff0c;以评估其性能和稳定性。编写语言为Python&#xff0c;可通过Python来自定义构建性能压测场景脚本。Locust支持分 布式负载测试&#xff0c;可以通过多个机器协同工…

张江智荟毁约offer

毕业8年后&#xff0c;找工作被国企歧视学历&#xff01;已经收到了offer&#xff0c;在入职前一周被通知要撤回offer&#xff0c;拒绝录用&#xff0c;理由居然是他们只要本科211以上的人 这是我今天&#xff08;2023-12-26&#xff09;亲身经历的事&#xff0c;听说过面试前…

【树莓派4b的uboot编译移植】

树莓派4b的uboot编译移植 引言 0.1、什么是uboot OS跑起来前&#xff0c;需要的一段引导程序负责部署整个计算机系统&#xff0c;引导操作系统内核启动并给内核传参提供一个命令行界面供人操作是一个开源项目&#xff0c;uboot就是universal bootloader&#xff08;通用的启…

词法语法语义分析程序设计及实现,包含出错提示和错误恢复

词法说明 (1)关键字 main, int, char, if, else, for, while, void (2)运算符 - * / < < > > ! (3)界符 ; ( ) { } (4)标识符 ID letter(letter|digit)* (5)整型常数 NUM digit digit* (6)空格 ‘ ‘ ‘\n’ ‘\r’ ‘\t’ 空格用来分隔ID,NUM,运算符,界…

正则表达式:元字符

一、什么事元字符 正则是由一系列的元字符组成的&#xff0c;所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符&#xff0c;元字符是构成正则表达式的基本元件。 二、元字符的分类 1.特殊单字符 表达式含义\d匹配任意一个数字\D匹配任意非数字\w匹配任意一个字母、…

算法练习Day20 (Leetcode/Python-回溯算法)

虽然看似进入了一个新章节&#xff0c;但其实还是前几天二叉树章节的延续。。 回溯算法 &#xff08;以下内容摘抄自代码随想录&#xff09;&#xff1a; 回溯法解决的问题都可以抽象为树形结构&#xff0c;是的&#xff0c;我指的是所有回溯法的问题都可以抽象为树形结构&…

云原生Kubernetes:K8S集群版本升级(v1.22.14 - v1.23.14)

目录 一、理论 1.K8S集群升级 2.环境 3.升级集群&#xff08;v1.23.14&#xff09; 4.验证集群&#xff08;v1.23.14&#xff09; 二、实验 1. 环境 2.升级集群&#xff08;v1.23.14&#xff09; 2.验证集群&#xff08;v1.23.14&#xff09; 一、理论 1.K8S集群升级 …

详解视频美颜SDK:算法优化与性能提升

众所周知&#xff0c;视频美颜SDK的算法优化和性能提升至关重要。下文小编将与大家深度探讨视频美颜SDK的算法原理&#xff0c;以及近期的性能优化措施。 一、常见用法 视频美颜SDK对人脸进行识别&#xff0c;并附加适当的美颜效果。例如&#xff1a; 1.识别、关键点 2.肤色…

GLES学习笔记---OpenGL绘制到ImageReader

一、ImageReader简介 ImageReader 之前经常使用在camera应用里面&#xff0c;创建一个ImageReader&#xff0c;然后获取surface&#xff0c;配流和下发request时候将surface下发给framework&#xff0c;中间具体对ImageReader做了什么没有具体研究过&#xff0c;等到Hal层came…

MYSQL数据库的备份与恢复-数据库实验七

一、实验目的 1. 了解备份和恢复的基本概念。 2. 掌握使用MySQL命令进行数据库备份的操作方法。 3. 掌握使用MySQL命令进行数据库恢复的操作方法。 二、实验内容 1. 使用mysqldump命令备份数据库studentsdb的所有表&#xff0c;存于D:\下&#xff0c;文件名为all_tables.s…