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 相关文章推荐
总结网络IO模型与select模型的Python实例讲解
Jun 27 Python
Python各类图像库的图片读写方式总结(推荐)
Feb 23 Python
python numpy 一维数组转变为多维数组的实例
Jul 02 Python
python3基于OpenCV实现证件照背景替换
Jul 18 Python
python随机数分布random测试
Aug 27 Python
python3实现字符串操作的实例代码
Apr 16 Python
在Python中表示一个对象的方法
Jun 25 Python
python开发之anaconda以及win7下安装gensim的方法
Jul 05 Python
利用Python实现kNN算法的代码
Aug 16 Python
wxpython+pymysql实现用户登陆功能
Nov 19 Python
Python命名空间namespace及作用域原理解析
Jun 05 Python
python语言的优势是什么
Jun 17 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
德生1994机评
2021/03/02 无线电
php在服务器执行exec命令失败的解决方法
2012/03/03 PHP
深入浅析php json 格式控制
2015/12/24 PHP
如何判断php mysqli扩展类是否开启
2016/12/24 PHP
Swoole扩展的6种模式深入详解
2021/03/04 PHP
jQuery操作 input type=checkbox的实现代码
2012/06/14 Javascript
jQuery遍历json中多个map的方法
2015/02/12 Javascript
不同编码的页面表单数据乱码问题解决方法
2015/02/15 Javascript
Bootstrap每天必学之警告框插件
2016/04/26 Javascript
js判断手机浏览器操作系统和微信浏览器的方法
2016/04/30 Javascript
聊一聊JavaScript作用域和作用域链
2016/05/03 Javascript
Bootstrap Metronic完全响应式管理模板之菜单栏学习笔记
2016/07/08 Javascript
js控制文本框只能输入中文、英文、数字与指定特殊符号的实现代码
2016/09/09 Javascript
BootStrap+Mybatis框架下实现表单提交数据重复验证
2017/03/23 Javascript
vue实现移动端图片裁剪上传功能
2020/08/18 Javascript
vue-quill-editor+plupload富文本编辑器实例详解
2018/10/19 Javascript
Vue路由模块化配置的完整步骤
2019/08/14 Javascript
Vue 通过公共字段,拼接两个对象数组的实例
2019/11/07 Javascript
在vue+element ui框架里实现lodash的debounce防抖
2019/11/13 Javascript
[01:16]2014DOTA2 TI专访C9战队EE:中国五强中会占三席
2014/07/10 DOTA
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:EE凭借法力虚空拿下4杀
2017/03/30 DOTA
linux系统使用python监测网络接口获取网络的输入输出
2014/01/15 Python
python通过smpt发送邮件的方法
2015/04/30 Python
python实现将html表格转换成CSV文件的方法
2015/06/28 Python
python实现将英文单词表示的数字转换成阿拉伯数字的方法
2015/07/02 Python
kali中python版本的切换方法
2019/07/11 Python
python字符串格式化方式解析
2019/10/19 Python
python matplotlib拟合直线的实现
2019/11/19 Python
Python实现像awk一样分割字符串
2020/09/15 Python
CSS3 Notes: -webkit-box-reflect实现倒影的实例
2016/12/08 HTML / CSS
Html5自定义字体解决方法
2019/10/09 HTML / CSS
海飞丝的广告词
2014/03/20 职场文书
合作投资意向书
2014/04/01 职场文书
2014年扫黄打非工作总结
2014/12/03 职场文书
2014年中职班主任工作总结
2014/12/16 职场文书
python基础学习之递归函数知识总结
2021/05/26 Python