python 经典数字滤波实例


Posted in Python onDecember 16, 2019

数字滤波分为 IIR 滤波,和FIR 滤波。

FIR 滤波:

import scipy.signal as signal
import numpy as np
import pylab as pl
import matplotlib.pyplot as plt
import matplotlib
from scipy import signal
b = signal.firwin(80, 0.5, window=('kaiser', 8))
w, h = signal.freqz(b)
 
import matplotlib.pyplot as plt
fig, ax1 = plt.subplots()
ax1.set_title('Digital filter frequency response')
 
ax1.plot(w, 20 * np.log10(abs(h)), 'b')
ax1.set_ylabel('Amplitude [dB]', color='b')
ax1.set_xlabel('Frequency [rad/sample]')
 
ax2 = ax1.twinx()
angles = np.unwrap(np.angle(h))
ax2.plot(w, angles, 'g')
ax2.set_ylabel('Angle (radians)', color='g')
ax2.grid()
ax2.axis('tight')
plt.show()

运行结果:

python 经典数字滤波实例

IIR 滤波器:

from scipy import signal
import matplotlib.pyplot as plt
import matplotlib.ticker
import numpy as np
# 蓝色的是频谱图,绿色的是相位图
wp = 0.2
ws = 0.3
gpass = 1
gstop = 40
system = signal.iirdesign(wp, ws, gpass, gstop)
w, h = signal.freqz(*system)
fig, ax1 = plt.subplots()
ax1.set_title('Digital filter frequency response')
ax1.plot(w, 20 * np.log10(abs(h)), 'b')
ax1.set_ylabel('Amplitude [dB]', color='b')
ax1.set_xlabel('Frequency [rad/sample]')
ax1.grid()
ax1.set_ylim([-110, 10])
 
nticks = 8
ax1.yaxis.set_major_locator(matplotlib.ticker.LinearLocator(nticks))
 
plt.show()

运行结果:

python 经典数字滤波实例

IIR 滤波器中cheyb2 滤波器的运用

from  scipy import signal
import matplotlib.pyplot as plt
import numpy as np
b, a = signal.cheby2(4, 40, 100, 'low', analog=True)
w, h = signal.freqs(b, a)
plt.semilogx(w, 20 * np.log10(abs(h)))#用于绘制折线图,两个函数的 x 轴、y 轴分别是指数型的。
#plt.plot(w, 20 * np.log10(abs(h)))
plt.title('Chebyshev Type II frequency response (rs=40)')
plt.xlabel('Frequency [radians / second]')
plt.ylabel('Amplitude [dB]')
plt.margins(0, 0.1)#  not sure
plt.grid(which='both', axis='both')
 
t = np.linspace(0, 1, 1000, False) # 1 second
sig = np.sin(2*np.pi*10*t) + np.sin(2*np.pi*20*t)
fig, (ax1, ax2) = plt.subplots(2, 1, sharex=True)
ax1.plot(t, sig)
ax1.set_title('10 Hz and 20 Hz sinusoids')
ax1.axis([0, 1, -2, 2])
 
sos = signal.cheby2(12, 20, 17, 'hp', fs=1000, output='sos')
filtered = signal.sosfilt(sos, sig)
ax2.plot(t, filtered)
ax2.set_title('After 17 Hz high-pass filter')
ax2.axis([0, 1, -2, 2])
ax2.set_xlabel('Time [seconds]')
 
plt.show()

python 经典数字滤波实例

python 经典数字滤波实例

以上这篇python 经典数字滤波实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
合并Excel工作薄中成绩表的VBA代码,非常适合教育一线的朋友
Apr 09 Python
举例讲解Python面向对象编程中类的继承
Jun 17 Python
Python列表list内建函数用法实例分析【insert、remove、index、pop等】
Jul 24 Python
Python进程,多进程,获取进程id,给子进程传递参数操作示例
Oct 11 Python
关于python中plt.hist参数的使用详解
Nov 28 Python
python Popen 获取输出,等待运行完成示例
Dec 30 Python
Pandas —— resample()重采样和asfreq()频度转换方式
Feb 26 Python
Django基于客户端下载文件实现方法
Apr 21 Python
python如何调用java类
Jul 05 Python
Python迭代器协议及for循环工作机制详解
Jul 14 Python
Python 如何操作 SQLite 数据库
Aug 17 Python
python归并排序算法过程实例讲解
Nov 04 Python
Python实现把类当做字典来访问
Dec 16 #Python
python中p-value的实现方式
Dec 16 #Python
基于python读取.mat文件并取出信息
Dec 16 #Python
python基于plotly实现画饼状图代码实例
Dec 16 #Python
python 实现让字典的value 成为列表
Dec 16 #Python
python 列表、字典和集合的添加和删除操作
Dec 16 #Python
python实现字典嵌套列表取值
Dec 16 #Python
You might like
收集的php编写大型网站问题集
2007/03/06 PHP
Discuz 模板语句分析及知识技巧
2009/08/21 PHP
php中smarty变量修饰用法实例分析
2015/06/11 PHP
用JavaScript脚本实现Web页面信息交互
2006/10/11 Javascript
使用dynatrace-ajax跟踪JavaScript的性能
2010/04/12 Javascript
基于jquery的网页SELECT下拉框美化代码
2010/10/28 Javascript
JavaScript入门之基本函数详解
2011/10/21 Javascript
JS常用正则表达式总结
2013/11/12 Javascript
js 用CreateElement动态创建标签示例
2013/11/20 Javascript
Jquery为DIV添加click事件的简单实例
2016/06/02 Javascript
JQuery控制图片由中心点逐渐放大效果
2016/06/26 Javascript
详解jquery选择器的原理
2017/08/01 jQuery
详解jQuery同步Ajax带来的UI线程阻塞问题及解决办法
2017/08/09 jQuery
layui的table单击行勾选checkbox功能方法
2018/08/14 Javascript
微信小程序支付前端源码
2018/08/29 Javascript
详解JavaScript函数callee、call、apply的区别
2019/03/08 Javascript
JavaScript变速动画函数封装添加任意多个属性
2019/04/03 Javascript
微信小程序实现的一键拨号功能示例
2019/04/24 Javascript
vue 开发企业微信整合案例分析
2019/12/02 Javascript
Node.js中出现未捕获异常的处理方法
2020/06/29 Javascript
[02:53]DOTA2亚洲邀请赛 NewBee战队巡礼
2015/02/03 DOTA
python实现无证书加密解密实例
2014/10/27 Python
用python实现的线程池实例代码
2018/01/06 Python
解决Python网页爬虫之中文乱码问题
2018/05/11 Python
浅谈python 读excel数值为浮点型的问题
2018/12/25 Python
Python对接 xray 和微信实现自动告警
2019/09/17 Python
django中瀑布流写法实例代码
2019/10/14 Python
Pycharm中切换pytorch的环境和配置的教程详解
2020/03/13 Python
python 基于opencv实现高斯平滑
2020/12/18 Python
护士个人简历自荐信
2013/10/18 职场文书
关于母亲节的感言
2014/02/04 职场文书
民生工程实施方案
2014/03/22 职场文书
2014年党员自我剖析材料
2014/10/07 职场文书
2014年个人总结范文
2015/03/09 职场文书
Python基础之pandas数据合并
2021/04/27 Python
Android使用EventBus发送消息,Fragment中接收消息的方法会执行多次
2022/04/24 Java/Android