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各种语言间时间的转化实现代码
Mar 23 Python
python下实现二叉堆以及堆排序的示例
Sep 29 Python
Python操作MySQL数据库的方法
Jun 20 Python
python使用pygame框架实现推箱子游戏
Nov 20 Python
详解python持久化文件读写
Apr 06 Python
VSCode中自动为Python文件添加头部注释
Nov 14 Python
Python PIL库图片灰化处理
Apr 07 Python
python中sort sorted reverse reversed函数的区别说明
May 11 Python
python自动计算图像数据集的RGB均值
Jun 18 Python
python析构函数用法及注意事项
Jun 22 Python
用python基于appium模块开发一个自动收取能量的小助手
Sep 25 Python
Python如何快速找到多个字典中的公共键(key)
Apr 29 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 file_get_contents函数轻松采集html数据
2010/04/22 PHP
JS仿flash上传头像效果实现代码
2011/07/18 Javascript
Javascript 浮点运算的问题分析与解决方法
2013/08/27 Javascript
appendChild() 或 insertBefore()使用与区别介绍
2013/10/11 Javascript
jquery进行数组遍历如何跳出当前的each循环
2014/06/05 Javascript
JavaScript针对网页节点的增删改查用法实例
2015/02/02 Javascript
快速移动鼠标触发问题及解决方法(ECharts外部调用保存为图片操作及工作流接线mouseenter和mouseleave)
2016/08/29 Javascript
javascript iframe跨域详解
2016/10/26 Javascript
微信小程序 action-sheet底部菜单详解
2016/10/27 Javascript
webpack打包并将文件加载到指定的位置方法
2018/02/22 Javascript
webpack4+Vue搭建自己的Vue-cli项目过程分享
2018/08/29 Javascript
详解Angular6学习笔记之主从组件
2018/09/05 Javascript
微信小程序移动拖拽视图-movable-view实例详解
2019/08/17 Javascript
使用layui实现树形结构的方法
2019/09/20 Javascript
vuex actions异步修改状态的实例详解
2019/11/06 Javascript
Vue+Openlayers自定义轨迹动画
2020/09/24 Javascript
[10:34]DOTA2上海特级锦标赛全纪录
2016/03/25 DOTA
Python中文件遍历的两种方法
2014/06/16 Python
Python通过RabbitMQ服务器实现交换机功能的实例教程
2016/06/29 Python
python3实现指定目录下文件sha256及文件大小统计
2019/02/25 Python
opencv 获取rtsp流媒体视频的实现方法
2019/08/23 Python
Pytorch 高效使用GPU的操作
2020/06/27 Python
AmazeUI 评论列表的实现示例
2020/08/13 HTML / CSS
美国市场上最实惠的送餐服务:Dinnerly
2018/03/18 全球购物
英国Iceland杂货店:网上食品购物
2020/12/16 全球购物
Made in Design意大利:现代家具、名家灯具和装饰
2020/10/27 全球购物
大学生大二自我鉴定
2013/10/28 职场文书
门卫岗位职责
2013/11/15 职场文书
秦兵马俑教学反思
2014/02/07 职场文书
护士感人事迹
2014/05/01 职场文书
霸气押韵的班级口号
2014/06/09 职场文书
小学课外阅读总结
2014/07/09 职场文书
《中国梦我的梦》小学生演讲稿
2014/08/20 职场文书
民主生活会对照检查材料范文
2014/10/01 职场文书
结婚当天新郎保证书
2015/05/08 职场文书
催款函范本大全
2015/06/24 职场文书