在我制作电压示波器的时候,难免会有一些毛刺信号,就是信号会突然比较高或者比较低,我当时也没有想那么多,就是在使用ADC取信号的时候,无意中想到了把很多值放在数组中,然后再把数组取平均值,这样可以极大程度的让信号变得更加平滑,但在今天我在学习的过程中,发现了这种方法比较正规的叫法,叫做数字滤波器,所以我来加深一下学习!
我这种方法看似很简单,也容易理解,但为什么还要学习更加复杂的滤波方法呢?
既然随便一写就能写出一个滤波器了,还学那么复杂的设计方法干什么?
来看一个反例题:
设计低通滤波器,处理语音信号,要求保留1KHz以下的信号。
给了你一个定量的指标,是否能完成这样的指标?你取平均数,肯定是没办法考虑频率的事情的,取平均数肯定是对结果敏感,但是对频率不敏感。
就比如我的电压示波器,他只对结果敏感,但是对频率不敏感,测量的要的是电压的结果,而电压的结果频率都是自己设置的,只需要把一些毛刺信号给消除掉就行了,而血氧心率仪器对滤波就要求心率上的测量。
接下来是对FIR的认知:
例如电压示波器,测的电压一直都是0V,但是突然有个冲激信号给干到5V,我们把冲激信号加入到所谓滤波器中,得到的输出结果就是冲激响应:
那么对于FIR,那只有冲激信号你取平均值附近会有信号,比如你取5个数的平均值就会是1V,其他的还是0V,就是有限长的冲击响应;
对于IIR,它相当于平均值的平均值,他虽然后慢慢的降下来,当永远也不会到0V,对之后的影响一直无法消除,就造成了无限长的冲激响应。
先设计一个模拟滤波器,然后转换成数字型,然后算出FIR滤波器系数,不过现在一般使用matlab的fadtool直接进行获取。
