一、前言
IIR是小白最常用的滤波器之一,也为学术研究立下汗马功劳,它的实现原理简单,代码运行速度快。
二、滤波原理
IIR是一种递归性线性时不变因果系统,看下面的两个函数,即可轻松知道其工作原理。
1.IIR数字滤波器的差分方程:
2. IIR数字滤波器的系统函数:
三、技术实现
1. <Filter.h>源代码:
#ifndef _Filter_#define _Filter_ using namespace std;class Filter{public:Filter(void);~Filter(void);double IIR(double signal, double impact);private://IIR filterdouble IIR_o, IIR_lasto;};#endif
2. <Filter.cpp>源代码:
double Filter::IIR(double signal, double impact){IIR_o = IIR_lasto*(1.0 - impact) + impact*signal;IIR_lasto = IIR_o;return IIR_o;}