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 02 Python
python语言使用技巧分享
May 31 Python
Python cookbook(数据结构与算法)保存最后N个元素的方法
Feb 13 Python
基于Python打造账号共享浏览器功能
May 30 Python
Python模块、包(Package)概念与用法分析
May 31 Python
简单了解Python3 bytes和str类型的区别和联系
Dec 19 Python
Django 返回json数据的实现示例
Mar 05 Python
Scrapy爬虫文件批量运行的实现
Sep 30 Python
python 基于PYMYSQL使用MYSQL数据库
Dec 24 Python
python语言time库和datetime库基本使用详解
Dec 25 Python
Django展示可视化图表的多种方式
Apr 08 Python
Python实战之OpenCV实现猫脸检测
Jun 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
一个odbc连mssql分页的类
2006/10/09 PHP
PHP开发环境配置(MySQL数据库安装图文教程)
2010/04/28 PHP
PHP 第一节 php简介
2012/04/28 PHP
ThinkPHP模板Switch标签用法示例
2014/06/30 PHP
PHP使用fopen与file_get_contents读取文件实例分享
2016/03/04 PHP
PHP去除空数组且数组键名重置的讲解
2019/02/28 PHP
文本域光标操作的jQuery扩展分享
2014/03/10 Javascript
使用JSON.parse将json字符串转换成json对象的时候会出错
2014/09/04 Javascript
用原生JS获取CLASS对象(很简单实用)
2014/10/15 Javascript
js实现div拖动动画运行轨迹效果代码分享
2015/08/27 Javascript
详解JavaScript数组的操作大全
2015/10/19 Javascript
Vuejs 组件——props数据传递的实例代码
2017/03/07 Javascript
微信小程序 下拉列表的实现实例代码
2017/03/08 Javascript
在Vue组件化中利用axios处理ajax请求的使用方法
2017/08/25 Javascript
基于Swiper实现移动端页面图片轮播效果
2017/12/28 Javascript
详解webpack4多入口、多页面项目构建案例
2018/05/25 Javascript
深入解读Node.js中的koa源码
2019/06/17 Javascript
JS实现前端动态分页码代码实例
2020/06/02 Javascript
[47:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
你所不知道的Python奇技淫巧13招【实用】
2016/12/14 Python
python3多线程知识点总结
2019/09/26 Python
python线程信号量semaphore使用解析
2019/11/30 Python
解决python-docx打包之后找不到default.docx的问题
2020/02/13 Python
python 3.8.3 安装配置图文教程
2020/05/21 Python
理解Django 中Call Stack机制的小Demo
2020/09/01 Python
阿里健康官方海外旗舰店:阿里健康国际自营
2017/11/24 全球购物
Waterford英国官方网站:世界上最受欢迎的优质水晶品牌
2019/08/17 全球购物
安全教育实施方案
2014/03/02 职场文书
双方协议书
2014/04/22 职场文书
减负增效提质方案
2014/05/23 职场文书
小学领导班子对照材料
2014/08/23 职场文书
2014领导班子专题民主生活会对照检查材料思想汇报
2014/09/23 职场文书
异地年检委托书范本
2014/09/24 职场文书
2014幼儿园教师个人工作总结
2014/11/08 职场文书
SpringBoot系列之MongoDB Aggregations用法详解
2022/02/12 MongoDB
mysql数据库实现设置字段长度
2022/06/10 MySQL