在安卓开发的时候有时间要对音频,振动等信号进行滤波,下面是一段音频信号经过高通滤波后和低通滤波后的效果
可以看到滤波效果是只过滤出需要频率的信号,将噪音去掉
下面是java代码
public class Filter {
private static double rate = 0.000000001;
private static Double[] audha = {1.0, -1.98388104166084, 0.984009917549517};
private static Double[] audhb = {0.991972739802589, -1.98394547960518, 0.991972739802589};
private static Double[] audla = {1.0,-7.12374475999005,22.2456381652698,-39.7699187284106,44.5164561572107,-31.9455283104170,14.3513710384153,-3.68998752786006,0.415714445797744};
private static Double[] audlb = {1.87506157822703*rate,1.50004926258163*rate*10,5.25017241903569*rate*10,
1.05003448380714*rate*100,1.31254310475892*rate*100,1.05003448380714*rate*100,5.25017241903569*rate*10,
1.50004926258163*rate*10,1.875061578