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 相关文章推荐
python文件比较示例分享
Jan 10 Python
Python解析网页源代码中的115网盘链接实例
Sep 30 Python
利用Python的装饰器解决Bottle框架中用户验证问题
Apr 24 Python
如何使用七牛Python SDK写一个同步脚本及使用教程
Aug 23 Python
浅析Python中MySQLdb的事务处理功能
Sep 21 Python
Python程序员面试题 你必须提前准备!
Jan 16 Python
简单的python协同过滤程序实例代码
Jan 31 Python
Python3爬虫之urllib携带cookie爬取网页的方法
Dec 28 Python
pyhanlp安装介绍和简单应用
Feb 22 Python
python虚拟环境模块venv使用及示例
Mar 04 Python
Python函数默认参数常见问题及解决方案
Mar 26 Python
详解Python 3.10 中的新功能和变化
Apr 28 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
Fatal error: session_start(): Failed to initialize storage module: files问题解决方法
2014/05/04 PHP
PHP mkdir()无写权限的问题解决方法
2014/06/19 PHP
php中函数前加&符号的作用分解
2014/07/08 PHP
用php和jQuery来实现“顶”和“踩”的投票功能
2016/10/13 PHP
基于laravel belongsTo使用详解
2019/10/18 PHP
用javascript获取地址栏参数
2006/12/22 Javascript
JavaScript 在网页上单击鼠标的地方显示层及关闭层
2012/12/30 Javascript
js获取本机的外网/广域网ip地址完整源码
2013/08/12 Javascript
jquery解析xml字符串示例分享
2014/03/25 Javascript
textarea不能通过maxlength属性来限制字数的解决方法
2014/09/01 Javascript
基于jQuery实现的图片切换焦点图整理
2014/12/07 Javascript
JavaScript使用concat连接数组的方法
2015/04/06 Javascript
javascript去除空格方法小结
2015/05/21 Javascript
微信小程序 点击控件后选中其它反选实例详解
2017/02/21 Javascript
angular.js中解决跨域问题的三种方式
2017/07/12 Javascript
vue 集成jTopo 处理方法
2019/08/07 Javascript
微信小程序之左右布局的实现代码
2019/12/13 Javascript
vue+elementUi 实现密码显示/隐藏+小图标变化功能
2020/01/18 Javascript
JavaScript语句错误throw、try及catch实例解析
2020/08/18 Javascript
JavaScript Html实现移动端红包雨功能页面
2021/01/10 Javascript
[01:37]全新的一集《真视界》——TI7总决赛
2017/09/21 DOTA
[03:06]3分钟带你回顾DOTA2完美盛典&完美大师赛
2017/12/06 DOTA
python中__slots__用法实例
2015/06/04 Python
Python qqbot 实现qq机器人的示例代码
2019/07/11 Python
解决Django中调用keras的模型出现的问题
2019/08/07 Python
python 轮询执行某函数的2种方式
2020/05/03 Python
Django中使用Json返回数据的实现方法
2020/06/03 Python
OpenCV 之按位运算举例解析
2020/06/19 Python
亚洲最大的眼镜批发商和零售商之一:Glasseslit
2018/10/08 全球购物
将一个文本文件的内容按倒序打印出来
2015/01/05 面试题
学生安全教育材料
2014/02/14 职场文书
预备党员2014全国两会学习心得体会
2014/03/10 职场文书
乡镇交通安全实施方案
2014/03/29 职场文书
银行客户经理岗位职责
2015/04/09 职场文书
2016年11月份红领巾广播稿
2015/12/21 职场文书
mysql 如何获取两个集合的交集/差集/并集
2021/06/08 MySQL