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 29 Python
Python中矩阵库Numpy基本操作详解
Nov 21 Python
python数据抓取分析的示例代码(python + mongodb)
Dec 25 Python
Python使用Dijkstra算法实现求解图中最短路径距离问题详解
May 16 Python
基于MTCNN/TensorFlow实现人脸检测
May 24 Python
python中类的属性和方法介绍
Nov 27 Python
利用python实现在微信群刷屏的方法
Feb 21 Python
python3实现表白神器
Apr 09 Python
PyQt+socket实现远程操作服务器的方法示例
Aug 22 Python
使用python 对验证码图片进行降噪处理
Dec 18 Python
Python打开文件、文件读写操作、with方式、文件常用函数实例分析
Jan 07 Python
基于Python测试程序是否有错误
May 16 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
ThinkPHP之import方法实例详解
2014/06/20 PHP
Laravel框架路由配置总结、设置技巧大全
2014/09/03 PHP
Symfony实现行为和模板中取得request参数的方法
2016/03/17 PHP
PHP实现四种基础排序算法的运行时间比较(推荐)
2016/08/11 PHP
Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册
2016/12/27 PHP
JS 拼图游戏 面向对象,注释完整。
2009/06/18 Javascript
JQUBAR1.1 jQuery 柱状图插件发布
2010/11/28 Javascript
JavaScript快速检测浏览器对CSS3特性的支持情况
2012/09/26 Javascript
Javascript核心读书有感之语言核心
2015/02/01 Javascript
JavaScript中String.match()方法的使用详解
2015/06/06 Javascript
JavaScript模块化开发之SeaJS
2015/12/13 Javascript
基于javascript制作经典传统的拼图游戏
2016/03/22 Javascript
微信小程序 Button 组件详解及简单实例
2017/01/10 Javascript
Angular之指令Directive用法详解
2017/03/01 Javascript
基于jQuery的左滑出现删除按钮的示例
2017/08/29 jQuery
JS改变页面颜色源码分享
2018/02/24 Javascript
python encode和decode的妙用
2009/09/02 Python
python爬虫使用cookie登录详解
2017/12/27 Python
flask使用session保存登录状态及拦截未登录请求代码
2018/01/19 Python
Python装饰器用法实例总结
2018/05/26 Python
Python实现查询某个目录下修改时间最新的文件示例
2018/08/29 Python
python使用Matplotlib绘制分段函数
2018/09/25 Python
python实现ip代理池功能示例
2019/07/05 Python
深入了解Django中间件及其方法
2019/07/26 Python
python 数据生成excel导出(xlwt,wlsxwrite)代码实例
2019/08/23 Python
python模拟实现斗地主发牌
2020/01/07 Python
python 爬虫 实现增量去重和定时爬取实例
2020/02/28 Python
Mytheresa英国官网:拥有160多个奢侈品品牌
2016/10/09 全球购物
以设计师精品品质提供快速时尚:Mostata
2019/05/10 全球购物
信息系统专业个人求职信范文
2013/12/07 职场文书
互联网创业计划书的书写步骤
2014/01/28 职场文书
上班玩手机检讨书
2014/02/17 职场文书
网站创业计划书
2014/04/30 职场文书
护理见习报告范文
2014/11/03 职场文书
入队仪式主持词
2015/07/04 职场文书
jQuery class属性操作addClass()与removeClass()、hasClass()、toggleClass()
2021/03/31 jQuery