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编程中三条常用的技巧
May 11 Python
Python编程对列表中字典元素进行排序的方法详解
May 26 Python
Django 使用Ajax进行前后台交互的示例讲解
May 28 Python
Python 3.3实现计算两个日期间隔秒数/天数的方法示例
Jan 07 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
Jan 15 Python
浅析PyTorch中nn.Linear的使用
Aug 18 Python
浅谈tensorflow中Dataset图片的批量读取及维度的操作详解
Jan 20 Python
python如何求数组连续最大和的示例代码
Feb 04 Python
Python脚本实现Zabbix多行日志监控过程解析
Aug 26 Python
Python虚拟环境的创建和使用详解
Sep 07 Python
还在手动盖楼抽奖?教你用Python实现自动评论盖楼抽奖(一)
Jun 07 Python
Python中使用tkFileDialog实现文件选择、保存和路径选择
May 20 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模拟post提交数据的方法
2015/02/12 PHP
yii2.0实现pathinfo的形式访问的配置方法
2016/04/06 PHP
JavaScript Event学习第九章 鼠标事件
2010/02/08 Javascript
javascript学习笔记(一) 在html中使用javascript
2012/06/18 Javascript
异步动态加载js与css文件的js代码
2013/09/15 Javascript
基于jquery的网站幻灯片切换效果焦点图代码
2013/09/15 Javascript
js登录弹出层特效
2014/03/07 Javascript
javascript解析json实例详解
2014/11/05 Javascript
jQuery Easyui学习之datagrid 动态添加、移除editor
2016/01/27 Javascript
非常漂亮的相册集 使用jquery制作相册集
2016/04/28 Javascript
js控件Kindeditor实现图片自动上传功能
2020/07/20 Javascript
JS 实现Base64编码与解码实例详解
2016/11/07 Javascript
ES6学习教程之Map的常用方法总结
2017/08/03 Javascript
npm 下载指定版本的组件方法
2018/05/17 Javascript
详解vue-cli3使用
2018/08/14 Javascript
利用JavaScript缓存远程窃取Wi-Fi密码的思路详解
2018/11/05 Javascript
JavaScript实现拖拽功能
2020/02/11 Javascript
vue路由跳转传递参数的方式总结
2020/05/10 Javascript
[47:04]EG vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
跟老齐学Python之关于循环的小伎俩
2014/10/02 Python
在Python的Django框架上部署ORM库的教程
2015/04/20 Python
python装饰器与递归算法详解
2016/02/18 Python
Python实现字典的遍历与排序功能示例
2017/12/23 Python
Django自定义用户认证示例详解
2018/03/14 Python
对python中执行DOS命令的3种方法总结
2018/05/12 Python
Python 实现取矩阵的部分列,保存为一个新的矩阵方法
2018/11/14 Python
Python3.5面向对象程序设计之类的继承和多态详解
2019/04/24 Python
Python自动化完成tb喵币任务的操作方法
2019/10/30 Python
浅析Python数字类型和字符串类型的内置方法
2019/12/22 Python
python实现引用其他路径包里面的模块
2020/03/09 Python
使用before和:after伪类制作css3圆形按钮
2014/04/08 HTML / CSS
10分钟理解CSS3 FlexBox弹性布局
2018/12/20 HTML / CSS
调解员先进事迹材料
2014/02/07 职场文书
预防煤气中毒方案
2014/06/16 职场文书
2014年学习部工作总结
2014/11/12 职场文书
2014年导购员工作总结
2014/11/18 职场文书