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利用beautifulSoup实现爬虫
Sep 29 Python
在Python的Flask框架中构建Web表单的教程
Jun 04 Python
教你用Python脚本快速为iOS10生成图标和截屏
Sep 22 Python
python 写入csv乱码问题解决方法
Oct 23 Python
Python3安装Pymongo详细步骤
May 26 Python
Python实现的径向基(RBF)神经网络示例
Feb 06 Python
python制作简单五子棋游戏
Jun 18 Python
Django如何自定义model创建数据库索引的顺序
Jun 20 Python
python读取ini配置文件过程示范
Dec 23 Python
Pytest mark使用实例及原理解析
Feb 22 Python
不到20行实现Python代码即可制作精美证件照
Apr 24 Python
Python 的演示平台支持 WSGI 接口的应用
Apr 20 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下使用以下代码连接并测试
2008/04/09 PHP
php Sql Server连接失败问题及解决办法
2009/08/07 PHP
深入理解PHP中的global
2014/08/19 PHP
PHP中使用sleep造成mysql读取失败的案例和解决方法
2014/08/21 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
JavaScript中prototype为对象添加属性的误区介绍
2013/10/15 Javascript
jquery实现人性化的有选择性禁用鼠标右键
2014/06/30 Javascript
node.js中使用socket.io制作命名空间
2014/12/15 Javascript
JavaScript删除指定子元素代码实例
2015/01/13 Javascript
JavaScript动态改变表格单元格内容的方法
2015/03/30 Javascript
利用jQuery设计一个简单的web音乐播放器的实例分享
2016/03/08 Javascript
jQuery实现的右下角广告窗体跟随效果示例
2016/09/16 Javascript
canvas仿iwatch时钟效果
2017/03/06 Javascript
javascript实现多张图片左右无缝滚动效果
2017/03/22 Javascript
javascript 中的try catch应用总结
2017/04/01 Javascript
layui分页效果实现代码
2017/05/19 Javascript
JS设置手机验证码60s等待实现代码
2017/06/14 Javascript
angular动态删除ng-repaeat添加的dom节点的方法
2017/07/20 Javascript
ionic 3.0+ 项目搭建运行环境的教程
2017/08/09 Javascript
js使用Promise实现简单的Ajax缓存
2018/11/14 Javascript
利用原生的JavaScript实现简单拼图游戏
2018/11/18 Javascript
初探Vue3.0 中的一大亮点Proxy的使用
2018/12/06 Javascript
基于Vue插入视频的2种方法小结
2019/04/02 Javascript
openlayers 3实现车辆轨迹回放
2020/09/24 Javascript
[46:47]完美世界DOTA2联赛PWL S2 FTD vs Magma 第二场 11.20
2020/11/23 DOTA
在Python的Django框架中更新数据库数据的方法
2015/07/17 Python
python中for用来遍历range函数的方法
2018/06/08 Python
opencv3/C++实现视频读取、视频写入
2019/12/11 Python
简述进程的启动、终止的方式以及如何进行进程的查看
2014/02/20 面试题
腾讯广告词
2014/03/19 职场文书
全国优秀辅导员事迹材料
2014/05/14 职场文书
2019年预备党员的思想汇报:加深对党的认知
2019/09/25 职场文书
Node.js实现断点续传
2021/06/23 Javascript
java后台调用接口及处理跨域问题的解决
2022/03/24 Java/Android
MySQL实现配置主从复制项目实践
2022/03/31 MySQL
golang定时器
2022/04/14 Golang