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命令行参数解析模块getopt使用实例
Apr 13 Python
使用python遍历指定城市的一周气温
Mar 31 Python
Python读取txt内容写入xls格式excel中的方法
Oct 11 Python
彻彻底底地理解Python中的编码问题
Oct 15 Python
python3爬虫怎样构建请求header
Dec 23 Python
Python给图像添加噪声具体操作
Mar 03 Python
python使用Plotly绘图工具绘制散点图、线形图
Apr 02 Python
pyinstaller打包opencv和numpy程序运行错误解决
Aug 16 Python
pyenv与virtualenv安装实现python多版本多项目管理
Aug 17 Python
安装完Python包然后找不到模块的解决步骤
Feb 13 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
May 22 Python
python实现ROA算子边缘检测算法
Apr 05 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实现遍历目录并删除指定文件中指定内容
2015/01/21 PHP
CSS和Javascript简单复习资料
2010/06/29 Javascript
HTML颜色选择器实现代码
2010/11/23 Javascript
jquery预览图片实现鼠标放上去显示实际大小
2014/01/16 Javascript
jQuery中的val()示例应用
2014/02/26 Javascript
js获取客户端网卡的IP地址、MAC地址
2014/03/26 Javascript
js实现超简单的展开、折叠目录代码
2015/08/28 Javascript
JS+CSS实现经典的左侧竖向滑动菜单效果
2015/09/23 Javascript
js实现prototype扩展的方法(字符串,日期,数组扩展)
2016/01/14 Javascript
AngularJS动态生成div的ID源码解析
2016/08/29 Javascript
Angular工具方法学习
2016/12/26 Javascript
深入理解js中的加载事件
2017/02/08 Javascript
jQuery实现标签页效果实战(4)
2017/02/08 Javascript
浅谈针对Vue相同路由不同参数的刷新问题
2018/09/29 Javascript
vue移动端项目缓存问题实践记录
2018/10/29 Javascript
vue实现微信获取用户信息的方法
2019/03/21 Javascript
JavaScript偏函数与柯里化实例详解
2019/03/27 Javascript
微信小程序select下拉框实现源码
2019/11/08 Javascript
[00:19]CN DOTA NEVER DIE!VG夺冠rOtK接受采访
2019/12/23 DOTA
Python判断变量是否已经定义的方法
2014/08/18 Python
python基础入门学习笔记(Python环境搭建)
2016/01/13 Python
Python用Bottle轻量级框架进行Web开发
2016/06/08 Python
Python做简单的字符串匹配详解
2017/03/21 Python
Python实现的微信公众号群发图片与文本消息功能实例详解
2017/06/30 Python
Django中url的反向查询的方法
2018/03/14 Python
用python打印菱形的实操方法和代码
2019/06/25 Python
Django rest framework jwt的使用方法详解
2019/08/08 Python
淘宝秒杀python脚本 扫码登录版
2019/09/19 Python
pytorch中nn.Conv1d的用法详解
2019/12/31 Python
pyecharts在数据可视化中的应用详解
2020/06/08 Python
新西兰床上用品和家居用品购物网站:Adairs
2018/04/27 全球购物
澳大利亚在线购买葡萄酒:The Wine Collective
2020/02/20 全球购物
介绍一下Linux内核的排队自旋锁
2014/01/04 面试题
学习演讲稿范文
2014/05/10 职场文书
银行青年文明号事迹材料
2014/05/31 职场文书
2016年国陪研修感言
2015/11/18 职场文书