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条件和循环的使用方法
Nov 01 Python
Python发送email的3种方法
Apr 28 Python
Python中使用hashlib模块处理算法的教程
Apr 28 Python
python中快速进行多个字符替换的方法小结
Dec 15 Python
Python cookbook(数据结构与算法)筛选及提取序列中元素的方法
Mar 19 Python
matplotlib savefig 保存图片大小的实例
May 24 Python
对tf.reduce_sum tensorflow维度上的操作详解
Jul 26 Python
python取余运算符知识点详解
Jun 27 Python
python实现关闭第三方窗口的方法
Jun 28 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
Mar 19 Python
Python实现老照片修复之上色小技巧
Oct 16 Python
Python数据结构之队列详解
Mar 21 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
全国FM电台频率大全 - 7 吉林省
2020/03/11 无线电
php PDO中文乱码解决办法
2009/07/20 PHP
php数组添加与删除单元的常用函数实例分析
2015/02/16 PHP
php+ajax无刷新上传图片实例代码
2015/11/17 PHP
ThinkPHP5.1+Ajax实现的无刷新分页功能示例
2020/02/10 PHP
ThinkPHP 5 AJAX跨域请求头设置实现过程解析
2020/10/28 PHP
创建公共调用 jQuery Ajax 带返回值
2012/08/01 Javascript
如何使用jQUery获取选中radio对应的值(一句代码)
2013/06/03 Javascript
控制input输入框中提示信息的显示和隐藏的方法
2014/02/12 Javascript
Javascript常用字符串判断函数代码分享
2014/12/08 Javascript
JavaScript DOM基础
2015/04/13 Javascript
JS实现表单多文件上传样式美化支持选中文件后删除相关项
2016/09/30 Javascript
微信小程序之拖拽排序(代码分享)
2017/01/21 Javascript
js自定义瀑布流布局插件
2017/05/16 Javascript
微信小程序实现点击文字页面跳转功能【附源码下载】
2017/12/12 Javascript
js实现时间日期校验
2020/05/26 Javascript
vant 中van-list的用法说明
2020/11/11 Javascript
[10:05]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD 选手采访
2021/03/11 DOTA
Python中使用items()方法返回字典元素对的教程
2015/05/21 Python
Python中进程和线程的区别详解
2017/10/29 Python
Python中实现最小二乘法思路及实现代码
2018/01/04 Python
python实现飞机大战
2018/09/11 Python
python 高效去重复 支持GB级别大文件的示例代码
2018/11/08 Python
在python里面运用多继承方法详解
2019/07/01 Python
Python实现FTP文件传输的实例
2019/07/07 Python
django框架模型层功能、组成与用法分析
2019/07/30 Python
Python面向对象之多态原理与用法案例分析
2019/12/30 Python
Python自动化测试笔试面试题精选
2020/03/12 Python
python安装和pycharm环境搭建设置方法
2020/05/27 Python
ManoMano英国:欧洲第一家专注于DIY和园艺市场的电商平台
2020/03/12 全球购物
大学生预备党员自我评价分享
2013/11/16 职场文书
远程网络教育毕业生自我鉴定
2014/04/14 职场文书
法制宣传日活动总结
2014/04/29 职场文书
民主生活会对照检查材料思想汇报
2014/09/27 职场文书
推广普通话主题班会
2015/08/17 职场文书
Vscode中SSH插件如何远程连接Linux
2022/05/02 Servers