传感数据分析——高通滤波与低通滤波

news2024/9/29 21:23:21

传感数据分析——高通滤波与低通滤波

文章目录

  • 传感数据分析——高通滤波与低通滤波
  • 前言
  • 一、运行环境
  • 二、Python实现
  • 总结


前言

对于传感信号而言,我们可以提取其中的高频信息和低频信息,低频信息往往是信号的趋势,高频信息往往是一些突变或异常的信号,根据实际需求分离信号中的高低频特征具有实际意义。本文将使用scipy库中的signal模块实现高低通滤波器的设计,并采用计算周期特征,以下直接上代码。


本文正文内容

一、运行环境

系统: Windows 10 / Ubuntu 20.04
编程语言: Python 3.8
文本编译器: Vscode
所需库:matplotlib >= 2.2.2 , numpy >= 1.19.5, scipy >= 1.1.0

二、Python实现

代码如下(示例):

# @copyright all reseved
# @author: Persist_Zhang
import numpy as np
from scipy import signal
import matplotlib.pyplot as plt

# 生成一个模拟信号
fs = 1000  # 采样频率
t = np.arange(0, 1, 1/fs)  # 时间向量
f1 = 50  # 低频信号频率
f2 = 120  # 高频信号频率
x = np.sin(2 * np.pi * f1 * t) + np.sin(2 * np.pi * f2 * t)  # 模拟信号

# 设计低通滤波器
nyquist = 0.5 * fs
low = 40 / nyquist
b, a = signal.butter(4, low, btype='low')

# 应用低通滤波器
y_low = signal.filtfilt(b, a, x)

# 设计高通滤波器
high = 60 / nyquist
b, a = signal.butter(4, high, btype='high')

# 应用高通滤波器
y_high = signal.filtfilt(b, a, x)

# 计算周期特征
fft_x = np.fft.fft(x)
fft_y_low = np.fft.fft(y_low)
fft_y_high = np.fft.fft(y_high)

# 绘制结果
plt.figure()
plt.subplot(3, 1, 1)
plt.plot(t, x)
plt.title('Original Signal')
plt.subplot(3, 1, 2)
plt.plot(t, y_low)
plt.title('Low-Frequency Signal')
plt.subplot(3, 1, 3)
plt.plot(t, y_high)
plt.title('High-Frequency Signal')
plt.savefig('./figure/filtered_signals.png')
plt.show()
# 绘制频谱
plt.figure()
plt.subplot(3, 1, 1)
plt.plot(np.abs(fft_x))
plt.title('The spectrum of the original signal')
plt.subplot(3, 1, 2)
plt.plot(np.abs(fft_y_low))
plt.title('The spectrum of the signal after low-pass filtering')
plt.subplot(3, 1, 3)
plt.plot(np.abs(fft_y_high))
plt.title('The spectrum of the signal after high-pass filtering')
plt.savefig('./figure/filtered_signals_spectrum.png')
plt.show()


结果图

在这里插入图片描述
上图为信号的高低频频谱,下图为原始信号与高频信号(设定大于120Hz)和低频信号(设定为小于50Hz)图。
在这里插入图片描述


总结

以上就是本文关于传感信号分析中高低频滤波器设计的内容,全部代码见上,还望多多收藏点赞,后续将会更新与分享更多传感数据处理的代码。

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

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

相关文章

构建自己的私人GPT

创作不易,请大家多鼓励支持。 在现实生活中,很多人的资料是不愿意公布在互联网上的,但是我们又要使用人工智能的能力帮我们处理文件、做决策、执行命令那怎么办呢?于是我们构建自己或公司的私人GPT变得非常重要。 一、本地部署…

win10下vscode+cmake编译C代码操作详解

0 工具准备 1.Visual Studio Code 1.85.1 2.cmake 3.24.01 前言 当我们只有一个.c文件时直接使用vscodeCode Runner插件即可完成编译,如果我们的工程很复杂包含多个.c文件时建议使用cmake来生成对应的make,指导编译器完成编译,否则会提示各…

数字图像处理(图像灰度变换、图像直方图及均衡、图像中值滤波、图像空域锐化增强、图像频域滤波)

数字图像处理(图像灰度变换、图像直方图及均衡、图像中值滤波、图像空域锐化增强、图像频域滤波) 目录 1 图像灰度变换 1.1 灰度线性变换 1.2 图像二值化 1.3 负象变换 1.4 灰度非线性变换 1.5 程序设计流程图 2 图像直方图及均衡 2.1 直方图 2…

无心剑七绝《高斯黎曼》

七绝高斯黎曼 高耸云端四海惊 斯人伟绩震豪英 黎霞璀璨通灵处 曼妙方程万世名 2024年1月6日 平水韵八庚平韵 《七绝高斯黎曼》是无心剑所作的一首以数学家为主题的七言绝句。全诗巧妙地将两位杰出的数学家——高斯(Carl Friedrich Gauss)与黎曼&#…

大模型机器人原理解析:如何从RT/RT2、Berkeley Gello到发展到斯坦福Mobile ALOHA、Google家务机器人

前言 23年7月,我在朋友圈评估Google的RT2说道: “大模型正在革新一切领域啊,超帅,通过大模型不仅能理解“人话”,还能对“人话”进行推理,并转变为机器人能理解的指令,从而分阶段完成任务。回…

express框架

目录 一、express介绍二、express 使用2.1 express下载2.2 express初体验 三、express 路由3.1 路由的使用3.2 获取参数3.3 获取路由参数 四、express响应设置五、express中间件5.1 什么是中间件5.2 中间件的作用5.3 中间件的类型5.3.1 定义全局中间件5.3.2 多个全局中间件5.3.…

协程池与新脚本语言

今天的主人公名为——Melang。 这是一款使用C语言开发的“新”的脚本语言,然而其已经默默问世了6年之久。 下面笔者就带你走进Melang world。 What is Melang Melang是一款协程并发脚本语言。它是一款解释型,而非编译型语言。 在Melang中&#xff…

html中的form表单以及相关控件input、文本域、下拉select等等的详细解释 ,点赞加关注持续更新~

文章目录 表单创建表单forminput 标签input标签的value属性设置input标签格式单选框多选框上传文件下拉菜单文本域设置文本域格式label 标签按钮 表单 作用&#xff1a;收集用户信息。 使用场景&#xff1a; 登录页面注册页面搜索区域 创建表单form <form action".…

实战环境搭建-linux下安装jdk1.8

查看安装jdk版本信息,主要是怕之前有遗漏的,或者安装失败的java rpm -qa | grep java 显示如下信息: 卸载: rpm -e --nodeps java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64 rpm -e --nodeps java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64 还有一些其他的命令…

MATLAB插值函数

一、MATLAB插值函数概览 1&#xff09;本节重点介绍的插值函数 MATLAB插值函数适用情况基础句式interp1 函数interp1 主要用于一维数据的插值interp1(x, y, x_interp, ‘linear’); 其中 x 和 y 是已知数据点&#xff0c;x_interp 是要插值的目标点。interp2 函数interp2 用于…

【STM32】PWR电源控制

1 PWR简介 PWR&#xff08;Power Control&#xff09;电源控制 PWR负责管理STM32内部的电源供电部分&#xff0c;可以实现可编程电压监测器和低功耗模式的功能 可编程电压监测器&#xff08;PVD&#xff09;可以监控VDD电源电压&#xff0c;当VDD下降到PVD阀值以下或上升到P…

回首2023,期待2024!

2023&#xff0c;在改变中到来 2023年1月1日&#xff0c;我从成都冷清的学校回到了哈尔滨的老家&#xff0c;开始了保研之前的最后一个寒假 当时的目标是将之前的科研理论转化为实际&#xff0c;生产出一篇sci&#xff0c;助力保研加分 星移斗转&#xff0c;事与愿违&#x…

从零实现CLIP模型

1. 引言 CLIP代表语言图像对比预训练模型&#xff0c;是OpenAI于2021年开发的一个深度学习模型。CLIP模型中图像和文本嵌入共享相同的潜在特征空间&#xff0c;从而能够在两种模式之间直接进行对比学习。这是通过训练模型使相关的图像和文本更紧密地结合在一起&#xff0c;同时…

MySQL高级DBA的理论与实践,MySQL数据库管理员从入门到精通

一、教程描述 数据库管理员&#xff08;Database Administrator&#xff09;&#xff0c;简称DBA&#xff0c;想要成为高级的MySQL DBA&#xff0c;就要耐得住寂寞&#xff0c;持续不断地学习&#xff0c;除了数据库专业知识外&#xff0c;还需要了解主机、系统、网络、存储、…

SSD固态硬盘的黄金原则:抱最高的希望,做最坏的打算-1

随着SSD固态硬盘日益普及&#xff0c;在个人电脑中已成为基本的配置选项。在体验SSD固态硬盘带来的性能优势的同时&#xff0c;你有没有想过一个问题&#xff0c;SSD的数据如果误删除或发生故障丢失&#xff0c;还有没有可能找回来呢&#xff1f;这也许是固态硬盘飞入寻常百姓家…

C++_命令行操作

命令行操作 介绍第一步编译 源码第二部 找到exe 可执行文件第三步看图操作代码测试源码测试结果 介绍 本文介绍命令行操作 1.argc 表示当前输入 参数个数 2.argv 表示当前输入 字符串内容 第一步编译 源码 #include<iostream> #include<string>using namespace st…

构建网络信息安全的中国方案 - 国密SSL协议介绍以及国密Nginx服务器部署

国密SSL协议 国密SSL协议指的是采用国密算法&#xff0c;符合国密标准的安全传输协议。简而言之&#xff0c;国密SSL就是SSL/TLS协议的国密版本。TLS协议定义有三个版本号&#xff0c;为0x0301、0x0302、0x0303&#xff0c;分别对应TLS 1.0、1.1、1.2。国密SSL为了避免冲突&am…

Go (一) 基础部分5 -- 单元测试,协程(goroutine),管道(channel)

一、单元测试 Go自带一个轻量级的"测试框架testing"和自带的"go test"命令来实现单元测试和性能测试。 1.确保每个函数时可运行&#xff0c;并且运行结果是正确的。 2.确保写出来的代码性能是好的。 3.单元测试能及时的发现程序设计或实现的逻辑错误&#…

Nginx 常用变量 与 防盗链

目录 1.常用变量 2. $http_referer 配置防盗链 2.1 referer 2.2 配置防盗链 1.常用变量 变量说明 $args 请求中的参数&#xff0c;也叫查询参数 $content_length HTTP响应信息里的"Content-Length" $document_root nginx虚拟主机配置文件中的root站点根目录…

八大算法排序@归并排序(C语言版本)

目录 归并排序概念算法思想第一步第二步第三步 算法步骤代码实现代码1代码优化 时间复杂度空间复杂度特性总结 归并排序 概念 归并排序&#xff08;Merge Sort&#xff09;是一种基于分治策略的经典排序算法。它的基本思想是将待排序的数组划分成两个子数组&#xff0c;分别对…