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

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

文章目录


前言

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


本文正文内容

一、运行环境

系统: Windows 10 / Ubuntu 20.04

编程语言: Python 3.8

文本编译器: Vscode

所需库:matplotlib >= 2.2.2 , numpy >= 1.19.5, scipy >= 1.1.0

二、Python实现

代码如下(示例):

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)图。


总结

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

相关推荐
Olafur_zbj3 小时前
【EDA】EDA中聚类(Clustering)和划分(Partitioning)
机器学习·数据挖掘·聚类
Aloudata6 小时前
Aloudata Agent :基于 NoETL 明细语义层的分析决策智能体
数据分析·大模型·数据管理·noetl·智能问数·智能归因·智能报告
生信碱移6 小时前
大语言模型时代,单细胞注释也需要集思广益(mLLMCelltype)
人工智能·经验分享·深度学习·语言模型·自然语言处理·数据挖掘·数据可视化
量子-Alex7 小时前
【遥感图像分类】【综述】遥感影像分类:全面综述与应用
人工智能·分类·数据挖掘
阡之尘埃7 小时前
Python数据分析案例73——基于多种异常值监测算法探查内幕交易信息
人工智能·python·机器学习·数据分析·异常检测·无监督学习
薄荷很无奈12 小时前
CuML + Cudf (RAPIDS) 加速python数据分析脚本
python·机器学习·数据分析·gpu算力
qq_4369621813 小时前
AI数据分析的利器:解锁BI工具的无限潜力
人工智能·数据挖掘·数据分析·ai数据分析
lilye6614 小时前
精益数据分析(24/126):聚焦第一关键指标,驱动创业成功
数据挖掘·数据分析
lilye661 天前
精益数据分析(20/126):解析经典数据分析框架,助力创业增长
大数据·人工智能·数据分析
橘猫云计算机设计1 天前
springboot基于hadoop的酷狗音乐爬虫大数据分析可视化系统(源码+lw+部署文档+讲解),源码可白嫖!
数据库·hadoop·spring boot·爬虫·python·数据分析·毕业设计