美文网首页
python制作数字滤波器

python制作数字滤波器

作者: AibWang | 来源:发表于2018-10-10 19:51 被阅读0次

在对数字序列进行滤波的过程中,我们发现对某些序列滤波后,在首端和尾端出现异常值(主要为异常大值)。具体的原因我还不是很清楚,期待得到数学解释。

消除上述问题的一个途径是在滤波之前给序列加窗函数。窗函数当然有很多了,Hanning窗,Hamming窗,Dolph-Chebyshev窗,Gaussing窗等,各个窗函数的优点与缺点需要根据实际处理需求才便于评价。下面就Hanning窗为例,对序列加窗函数及滤波进行说明。

  1. 根据序列长度(采样点数),计算得到窗函数序列。假设我们有一个序列data,长度为N,那么我们需要生成一个长度为 N*leng_rate 的窗函数。为什么不生成长度为N的窗函数呢?因为使用一个完整的窗函数来乘以原始序列会改变原始序列的全部振幅,实际上我们的目的是在序列(或信号)的两端各加一个衰减的窗。

from scipy import signal

import numpy as np

# === PARA ====

length_rate = 0.1;

dt = 0.01;# sample rate

# ==============

mywin = np.ones((N,));

lenwinhalf = int(N*length_rate);

lenwin = int(lenwinhalf*2);

han_window = signal.hanning(lenwin);

mywin[0:lenwinhalf] = han_window[0:lenwinhalf];

mywin[N-lenwinhalf:N] = han_window[lenwinhalf:lenwin];

  1. 对原始序列加窗函数。

data = np.multiply(han_window,data);

  1. 制作Butter带通滤波器,滤波频带为拐角频率下界(freq_lowcut),拐角频率上界(freq_highcut

nyquest = 0.5*(1/dt);

digilow = freq_lowcut/nyquest;

digihigh = freq_highcut/nyquest;

[b, a] = signal.butter(4, (digilow,digihigh), btype='bandpass');

  1. 对原始序列进行带通滤波

data_filt = signal.filtfilt(b,a,data,axis=0);

相关文章

  • python制作数字滤波器

    在对数字序列进行滤波的过程中,我们发现对某些序列滤波后,在首端和尾端出现异常值(主要为异常大值)。具体的原因我还不...

  • 2021-08-08

    浅谈频域数字滤波器[https://zhuanlan.zhihu.com/p/26194805] IIR数字滤波器...

  • 数字滤波器的基本结构

    数字滤波器结构的表示方法 功能:把输入序列通过一定的运算变换成输出序列本质:数字滤波器的滤波过程是一个计算过程 表...

  • python制作pdf电子书

    python制作pdf电子书 准备 制作电子书使用的是python的pdfkit这个库,pdfkit是 wkhtm...

  • virtualenv基础使用

    1.安装python包:virtualenv 2.制作虚拟python环境:virtualenv --no-sit...

  • 极度舒适的Python入门教程,已有49695人撸过

    本教程基于 Python for you and me 教程翻译制作,其中参考了 Python tutorial ...

  • python还可以这么玩?(二)

    上回说到使用python制作卡通表情包,这次将继续使用python利用真人照制作表情包,真人照与卡通照最大的区别是...

  • Python-joypy和 R-ggridges 峰峦图制作

    Python-joypy 制作 Python 制作峰峦图有直接的第三方库joypy进行绘制,该库可以直接通过pip...

  • 模块的发布和安装

    为了在Python中方便的使用别人制作好的模块,需要获取别人已经制作好的模块,然后安装到我们的Python运行环境...

  • Python

    用Python编写程序制作英语学习词典

网友评论

      本文标题:python制作数字滤波器

      本文链接:https://www.haomeiwen.com/subject/imemaftx.html