巴特沃斯滤波器python_如何用Scipy.signal.bu实现带通巴特沃斯滤波器

您可以跳过button的使用,而只需为过滤器选择一个顺序,看看它是否符合您的过滤条件。要生成带通滤波器的滤波器系数,请将滤波器阶数、截止频率Wn=[low, high](表示为奈奎斯特频率的分数,即采样频率的一半)和频带类型btype="band"。

下面是一个脚本,它定义了两个使用巴特沃斯带通滤波器的便利函数。当作为脚本运行时,它生成两个图。其中一个显示了相同采样率和截止频率下几个滤波器阶数的频率响应。另一个图展示了滤波器(阶数为6)对样本时间序列的影响。from scipy.signal import butter, lfilter

def butter_bandpass(lowcut, highcut, fs, order=5):

nyq = 0.5 * fs

low = lowcut / nyq

high = highcut / nyq

b, a = butter(order, [low, high], btype='band')

return b, a

def butter_bandpass_filter(data, lowcut, highcut, fs, order=5):

b, a = butter_bandpass(lowcut, highcut, fs, order=order)

y = lfilter(b, a, data)

return y

if __name__ == "__main__":

import numpy as np

import matplotlib.pyplot as plt

from scipy.signal import freqz

# Sample rate and desired cutoff frequencies (in Hz).

fs = 5000.0

lowcut = 500.0

highcut = 1250.0

# Plot the frequency response for a few different orders.

plt.figure(1)

plt.clf()

for order in [3, 6, 9]:

b, a = butter_bandpass(lowcut, highcut, fs, order=order)

w, h = freqz(b, a, worN=2000)

plt.plot((fs * 0.5 / np.pi) * w, abs(h), label="order = %d" % order)

plt.plot([0, 0.5 * fs], [np.sqrt(0.5), np.sqrt(0.5)],

'--', label='sqrt(0.5)')

plt.xlabel('Frequency (Hz)')

plt.ylabel('Gain')

plt.grid(True)

plt.legend(loc='best')

# Filter a noisy signal.

T = 0.05

nsamples = T * fs

t = np.linspace(0, T, nsamples, endpoint=False)

a = 0.02

f0 = 600.0

x = 0.1 * np.sin(2 * np.pi * 1.2 * np.sqrt(t))

x += 0.01 * np.cos(2 * np.pi * 312 * t + 0.1)

x += a * np.cos(2 * np.pi * f0 * t + .11)

x += 0.03 * np.cos(2 * np.pi * 2000 * t)

plt.figure(2)

plt.clf()

plt.plot(t, x, label='Noisy signal')

y = butter_bandpass_filter(x, lowcut, highcut, fs, order=6)

plt.plot(t, y, label='Filtered signal (%g Hz)' % f0)

plt.xlabel('time (seconds)')

plt.hlines([-a, a], 0, T, linestyles='--')

plt.grid(True)

plt.axis('tight')

plt.legend(loc='upper left')

plt.show()

以下是此脚本生成的绘图:

DZJox.png

VQNYG.png

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

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

相关文章

章鱼扫描仪:Java构建工具和恶意软件

Alvaro Munoz最近在GitHub Security Lab网站上发布了“ Octopus扫描程序恶意软件:攻击开源供应链 ”。 我发现这篇文章很有趣,原因有很多,其中包括对Octopus Scanner恶意软件如何工作以及如何被发现, GitHub安全事件报告团队 &…

java gnu_GNU/Linux下Java开发环境的安装和配置 | 学步园

首先下载JDK,在http://www.oracle.com/technetwork/java/javase/downloads/index.html下载最新版本的JDK,选择平台为linux,就会得到一个二进制文件,我得到的是jdk-6u23-linux-i586.bin,复制到需要安装的地方运行就会自…

css初始化_利用CSS变量实现炫酷的悬浮效果

这个动画是将鼠标移动到订阅按钮上移动光标会显示相应的彩色渐变。这个想法很简单,但是它能使这个按钮脱颖而出,人们一下子就注意到它了,增加了点击的概率。怎样才能达到这个效果,使我们的网站脱颖而出呢?其实&#xf…

glass fish_Glass Fish 4.0.1中的Jersey SSE功能

glass fishGlass Fish为各种Java EE规范捆绑了不同的参考实现,例如,CDI的Weld,JSF的Mojarra,WebSocket的Tyrus,JAX-RS的Jersey。 Glass Fish 4.0.1即将发布,并计划涵盖许多组件/模块的更新,这些…

java 区号_求您!JAVA作业,窗口查询区号!

窗口程序作业说明完成一个查询区号的窗口程序,功能要求如下(作业需要的数据见citycode.txt)程序打开时自动读取保存在文件中的数据信息程序至少提供一个输入及输出控件,一个查询按...窗口程序作业说明完成一个查询区号的窗口程序,功能要求如下…

css清除浮动的几种方法_web前端学习路线分享CSS浮动-清除浮动篇

web前端学习路线分享CSS浮动-清除浮动篇,为什么要清除浮动这里所说的清除浮动,并不是不要浮动了,而是清除浮动与浮动之间的影响。那么到底会有什么影响呢?1.高度塌陷举个例子我们看一下。我们在这里设置了div0是外容器…

AWS Lambda将数据保存在DynamoDB中

在本教程中,我们将看到如何使用AWS Lambda将数据保存在Dynamo DB中。 这是必需的步骤: – 在Dynamo数据库中创建一个名为Employee的表 –创建一个AWS Lambda函数,该函数可以使用Dynamo数据库中的Employee POJO保存雇员的名字和姓氏 –创建…

java 循环map 优雅写法_Java for循环Map集合优化实现解析

这篇文章主要介绍了java for循环map集合优化实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下在《for循环实战性能优化》中提出了五种提升for循环性能的优化策略,这次我们在其中嵌套循环优化小…

java list 取几个字段组装成map_24道Java各类常见问题整理

(1) JSP学了EL表达式就行了吧,还需要深入么?还有spring现在学5就行了吧?总觉得类与对象这里好难,理解不来(2) 我想问问在校生需要学习JAVA到哪种程度,然后再学学数据结构和算法能达到校招面试的水平(3) 静态变量与实例…

java私有属性和私有方法_Java私有,受保护,公共和默认

java私有属性和私有方法您是Java程序员,所以您知道我在说什么。 public修饰符使方法或字段可从应用程序中的任何位置访问。 那是简单的部分。 但是,您能告诉我protected和包私有的区别吗? (提示:如果您未在方法或字段前…

Maven硒测试自动化教程

在进行测试自动化项目时,您需要与之关联的所有Selenium依赖项。 通常,这些依赖项是在项目生命周期中手动下载和升级的,但是随着项目规模的扩大,管理依赖项可能会非常困难。 这就是为什么需要构建自动化工具(例如Maven&…

python处理json数据_python处理json格式的数据

这里我就不介绍json了,不知道json的同学可以去百度一下json,首先我们的json的格式如下,这个json有点长,这个json来自我以前的一个小任务,具体看这里:http://www.cnblogs.com/ybf-yyj/p/7351493.html { &quo…

java确认rabbitmq_RabbitMQ 消息确认机制

生产端 Confirm 消息确认机制消息的确认,是指生产者投递消息后,如果 Broker 收到消息,则会给我们生产者一个应答。生产者进行接收应答,用来确定这条消息是否正常的发送到 Broker ,这种方式也是消息的可靠性投递的核心保…

hadoop源码分析_Spark2.x精通:Job触发流程源码深度剖析(一)

, 一、概述 之前几篇文章对Spark集群的Master、Worker启动流程进行了源码剖析,后面直接从客户端角度出发,讲解了spark-submit任务提交过程及driver的启动;集群启动、任务提交、SparkContext初始化等前期准备工作完成之后&am…

如何在Java中将String转换为int

在本教程中,我们将看到将Java中的String转换为int(或Integer)的各种方法。 您可以使用以下任何一种方式: –使用Integer.parseInt(string) –使用Integer.valueof(string) –使用…

java回调spring接口_Spring Boot启动过程及回调接口汇总

启动顺序Spring boot的启动代码一般是这样的:123456SpringBootApplicationpublic class SampleApplication {public static void main(String[] args)throws Exception {SpringApplication.run(SampleApplication.class, args);}}初始化SpringApplication1、SpringA…

python面向对象编程138讲_Python面向对象编程简单讲解

学习目标:1-面向对象编程2-类和对象3-对象的属性和方法4-类的特性Python面向对象编程一种编程程序的设计思想,把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。把计算机程序视为一组对象的集合,而每个对象都可以接…

jboss 程序位置_介绍JBoss BPM Suite安装程序

jboss 程序位置本周,我们想向您介绍JBoss BRMS和JBoss BPM Suite产品随附的一个鲜为人知的安装程序组件。 请注意,当前所有的演示项目都要求您下载JBoss BPM Suite可部署的eap zip产品文件和JBoss EAP 6.1.1 zip产品文件。 展望未来,我们将迁…

java换成中文_如果我们的编程替换成中文会变成怎样?

首先大概的看一下中文编码:你以为会写中文就会编程吗?这就像你以为会写汉字就会写出好文章一样。编程是和机器沟通,因此要用机器的语言而不是人类的语言。最早的程序就是0和1的数字,不是中文也不是英文。以前的程序员,…

高等数学公式大全_高中物理知识思维导图大全,赶紧收藏!

物理作为理综的重中之重,物理的学习一直是广大考生的难点。如何快捷高效的掌握物理知识点是高考复习的重点之一,根据高中物理三年知识点用思维导图的方式,来助大家掌握物理知识点。运动的描述 重力 基本相互作用 相互作用 牛顿运动定律 力的合…