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正则表达式去掉数字中的逗号(python正则匹配逗号)
Dec 25 Python
Python中多个数组行合并及列合并的方法总结
Apr 12 Python
Pandas 合并多个Dataframe(merge,concat)的方法
Jun 08 Python
python绘制散点图并标记序号的方法
Dec 11 Python
如何使用Python发送HTML格式的邮件
Feb 11 Python
python如何实现复制目录到指定目录
Feb 13 Python
opencv+python实现鼠标点击图像,输出该点的RGB和HSV值
Jun 02 Python
python + selenium 刷B站播放量的实例代码
Jun 12 Python
Python实现列表索引批量删除的5种方法
Nov 16 Python
Pycharm配置lua编译环境过程图解
Nov 28 Python
解决jupyter notebook启动后没有token的坑
Apr 24 Python
基于python定位棋子位置及识别棋子颜色
Jul 26 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 中的面向对象编程:通向大型 PHP 工程的办法
2006/12/03 PHP
php高级编程-函数-郑阿奇
2011/07/04 PHP
使用PHP求两个文件的相对路径
2013/06/20 PHP
解析PHP 5.5 新特性
2013/07/02 PHP
深入解析PHP的Yii框架中的缓存功能
2016/03/29 PHP
PHP基于redis计数器类定义与用法示例
2018/02/08 PHP
Extjs学习笔记之二 初识Extjs之Form
2010/01/07 Javascript
javascript转换字符串为dom对象(字符串动态创建dom)
2010/05/10 Javascript
js关闭浏览器窗口及检查浏览器关闭事件
2013/09/03 Javascript
javascript中Array数组的迭代方法实例分析
2015/02/04 Javascript
为什么JS中eval处理JSON数据要加括号
2015/04/13 Javascript
js完美解决IE6不支持position:fixed的bug
2015/04/24 Javascript
BootStrap.css 在手机端滑动时右侧出现空白的原因及解决办法
2016/06/07 Javascript
JavaScript实现简易的天数计算器实例【附demo源码下载】
2017/01/18 Javascript
AngularJS日期格式化常见操作实例分析
2018/05/17 Javascript
使用node.js实现微信小程序实时聊天功能
2018/08/13 Javascript
Node+OCR实现图像文字识别功能
2018/11/26 Javascript
Electron 调用命令行(cmd)
2019/09/23 Javascript
Python脚本文件打包成可执行文件的方法
2015/06/02 Python
python结合API实现即时天气信息
2016/01/19 Python
Python列出一个文件夹及其子目录的所有文件
2016/06/30 Python
python操作xlsx文件的包openpyxl实例
2018/05/03 Python
python执行系统命令后获取返回值的几种方式集合
2018/05/12 Python
Python re 模块findall() 函数返回值展现方式解析
2019/08/09 Python
利用Python小工具实现3秒钟将视频转换为音频
2019/10/29 Python
Python日志器使用方法及原理解析
2020/09/27 Python
cookies应对python反爬虫知识点详解
2020/11/25 Python
日本化妆品植村秀俄罗斯官方网站:Shu Uemura俄罗斯
2020/02/01 全球购物
投标单位介绍信
2014/01/09 职场文书
父亲的菜园教学反思
2014/02/13 职场文书
大学毕业生求职自荐信
2014/02/20 职场文书
业务部门经理岗位职责
2014/02/23 职场文书
审计局班子四风对照检查材料思想汇报
2014/10/07 职场文书
幽灵公主观后感
2015/06/09 职场文书
2015年暑假生活总结
2015/07/13 职场文书
Win11电脑显示本地时间与服务器时间不一致怎么解决?
2022/04/05 数码科技