一、前言
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 filter
double 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;
}