首页 > 其他分享 >使用bandpass Butterworth filter对信号数据进行滤波去噪

使用bandpass Butterworth filter对信号数据进行滤波去噪

时间:2023-05-18 17:24:14浏览次数:31  
标签:plt Butterworth signal filter scipy import data bandpass

在信号处理中,有些信号会包含大量的噪声,需要用一些滤波器去噪,本文介绍使用bandpass Butterworth filter进行去噪。
直接使用sciPypython库可以实现噪声滤波

步骤1:导入所需python模块

from scipy.signal import filtfilt
from scipy import stats
import CSV
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import scipy

步骤2:读取数据及可视化数据

def plot():
    data = pd.read_csv(filePath)
    signal_data = data[['data']]
    signal_data = np.array(data)
    time = np.linspace(0, 0.02, 52)
    plt.plot(time, signal_data)
    plt.show()

数据的样子如下:

而执行plot()函数得到的图形为:

步骤3:执行滤波器滤波

def bandPass_filter(signal):
    fs = 4000.0
    lowcut = 20.0
    highcut = 50.0
    nyqs = 0.5* fs
    low = lowcut / nyqs
    high = highcut/ nyqs
    
    order=2
    
    b, a = scipy.signal.butter(order, [low, high], 'bandpass', analog = False)
    y = scipy.signal.filtfilt(b, a, signal, axis=0)
    return(y)

data = pd.read_csv(filePath)
signal_data = data[['data']]
signal_data = np.array(data)
time = np.linspace(0, 0.02, 52)
filtered_signal= bandPass_filter(signal_data)
plt.plot(time, filtered_signal)
plt.show()

结果显示:

完整的代码以及将两种效果放入一张图中显示

from scipy.signal import filtfilt
from scipy import stats
import csv
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import scipy
def plot():
    data = pd.read_csv(filePath)
    signal_data = data[['data']]
    signal_data = np.array(signal_data)
    time = np.linspace(0, 0.2, 52)
    plt.plot(time, signal_data)
    plt.show()
    filtered_signal= bandPass_filter(signal_data)
    plt.plot(time, filtered_signal)
    plt.show()
#syntax for bandpass filter
def bandPass_filter(signal):
    fs = 4000.0
    lowcut = 20.0
    highcut = 50.0
    nyqs = 0.5* fs
    low = lowcut / nyqs
    high = highcut/ nyqs
    
    order=2
    
    b, a = scipy.signal.butter(order, [low, high], 'bandpass', analog = False)
    y = scipy.signal.filtfilt(b, a, signal, axis=0)
    return(y)
plot()

结果显示:

标签:plt,Butterworth,signal,filter,scipy,import,data,bandpass
From: https://www.cnblogs.com/bonne-chance/p/17412547.html

相关文章

  • django filter多个不确定参数查询
    1kwargs={}2condition=[]3ifargs.get('name'):4kwargs['name']=args.get('name')5condition.append(ANNDistributionBatchTaskModel.batch_task_name.like(f"%{kwargs......
  • apache shiro - 动态创建filterchaindefinitions
    [url]http://www.360doc.com/content/14/0207/13/834950_350425926.shtml[/url]有时,在某些系统想通过读取数据库来定义org.apache.shiro.spring.web.ShiroFilterFactoryBean的filterChainDefinitions。这样能够通过操作界面或者维护后台来管理系统的链接。......
  • Filter
        拦截路径配置: 过滤器链: 案例:   ......
  • ElasticSearch组合多查询(must, should, must_not, filter)
    ElasticSearch组合多查询(must,should,must_not,filter)举个例子if(StringUtils.isNotEmpty(goodsSpu.getCategoryId())){filterBuilder.must(QueryBuilders.wildcardQuery("categoryId","*"+goodsSpu.getCategoryId()+"*"));}1.must文......
  • [记录一下]lazarus memdataset的filter问题
    在lazarus使用memdataset时,如果filter按下面的方法是得不到想要结果:MEMDataSet1.Filtered:=false;MEMDataSet1.Filter:='tasknameLike'+quotedstr('%'+Edit4.Text+'%');MEMDataSet1.Filtered:=true;最后在官网找到解决办法:unitUnit1;{$modeobjfpc}{$......
  • python 小技巧, 列表生成式比 filter(lambda x:x>=0,data) 快, iteritems()方法,
    题目经timeit测试列表生成式比filter(lambdax:x>=0,data)快python2的dict的iteritems()方法,pyhton3可以看看有没有......
  • 简单filter权限控制
    download。jsp<%@pagecontentType="text/html;charset=UTF-8"language="java"%><html><head><title>download</title></head><body><ahref="">ziyau1</a><ahref="&quo......
  • SpringCloud gateway HttpHeadersFilters
    HttpHeadersFilter在将请求发送到下游之前应用于请求,例如在NettyRoutingFilter中。1、ForwardedHeadersFilterForwardedHeadersFilter创建一个Forwarded标头以发送到下游服务。它将当前请求的Host标头、scheme和端口添加到任何现有的Forwarded标头中。2、RemoveHopByHopH......
  • java filter过滤器 读取配置文件properties的值
    http://www.yayihouse.com/yayishuwu/chapter/29811.获取application.properties的值如userId=1 2.一般实体中采用@Value既可获取@Value("userIdl")privateStringuserId; 但是在filter中,需要用上下文对象来获取filter的生命周期如下:web应用程序启动时,web服务器将创......
  • css中filter的部分特别用法
    1. drop-shadow函数如果给png的图片设置阴影通过box-shadow就会变成这样但可以通过fliter来重新实现 会变成这样.header{//box-shadow:10px10px10px#000;filter:drop-shadow(10px10px10pxrgba(0,0,0,.5));}  2.hue-roate函数.header{filter:......