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使用PyGame模块播放声音的方法
May 20 Python
python调用c++传递数组的实例
Feb 13 Python
11个Python3字典内置方法大全与示例汇总
May 13 Python
Python对接六大主流数据库(只需三步)
Jul 31 Python
Django中自定义admin Xadmin的实现代码
Aug 09 Python
python 和c++实现旋转矩阵到欧拉角的变换方式
Dec 04 Python
Python中使用gflags实例及原理解析
Dec 13 Python
Python MySQLdb 执行sql语句时的参数传递方式
Mar 04 Python
python相对企业语言优势在哪
Jun 12 Python
Python中zipfile压缩文件模块的基本使用教程
Jun 14 Python
Python 实现集合Set的示例
Dec 21 Python
pd.DataFrame中的几种索引变换的实现
Jun 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
十大催泪虐心动漫,你能坚持看到第几部?
2020/03/04 日漫
S900/ ETON E1-XM 收音机
2021/03/02 无线电
基于preg_match_all采集后数据处理的一点心得笔记(编码转换和正则匹配)
2014/01/31 PHP
php+xml实现在线英文词典查询的方法
2015/01/23 PHP
一个符号插入器 中用到的js代码
2007/09/04 Javascript
下载文件个别浏览器文件名乱码解决办法
2013/03/19 Javascript
onbeforeunload与onunload事件异同点总结
2013/06/24 Javascript
js中cookie的添加、取值、删除示例代码
2013/10/21 Javascript
JavaScript二维数组实现的省市联动菜单
2014/05/08 Javascript
node.js 开发指南 ? Node.js 连接 MySQL 并进行数据库操作
2014/07/29 Javascript
javascript使用正则表达式检测IP地址
2014/12/03 Javascript
javascript原始值和对象引用实例分析
2015/04/25 Javascript
AngularJS模块管理问题的非常规处理方法
2015/04/29 Javascript
概述javascript在Google IE中的调试技巧
2016/11/24 Javascript
smartupload实现文件上传时获取表单数据(推荐)
2016/12/12 Javascript
jQuery EasyUI 组件加上“清除”功能实例详解
2017/04/11 jQuery
详解vue父子组件间传值(props)
2017/06/29 Javascript
jQuery选择器中的特殊符号处理方法
2017/09/08 jQuery
30分钟快速入门掌握ES6/ES2015的核心内容(上)
2018/04/18 Javascript
浅谈在node.js进入文件目录的问题
2018/05/13 Javascript
在小程序中推送模板消息的实现方法
2019/07/22 Javascript
详解JS函数防抖
2020/06/05 Javascript
[04:13]2014DOTA2国际邀请赛 专访DC目前形势不容乐观
2014/07/12 DOTA
[45:44]完美世界DOTA2联赛PWL S2 FTD vs PXG 第一场 11.27
2020/12/01 DOTA
Python 命令行参数sys.argv
2008/09/06 Python
Python查询Mysql时返回字典结构的代码
2012/06/18 Python
haskell实现多线程服务器实例代码
2013/11/26 Python
解决安装python库时windows error5 报错的问题
2018/10/21 Python
利用nohup来开启python文件的方法
2019/01/14 Python
python GUI库图形界面开发之PyQt5信号与槽基本操作
2020/02/25 Python
Python基于numpy模块实现回归预测
2020/05/14 Python
Python 中 sorted 如何自定义比较逻辑
2021/02/02 Python
微笑服务标语
2014/06/24 职场文书
镇人大副主席民主生活会对照检查材料思想汇报
2014/10/01 职场文书
2014年工程部工作总结
2014/11/25 职场文书
python状态机transitions库详解
2021/06/02 Python