1、利用matlab中的fdatool设计滤波器,然后导出为c header也就是系数
2、编写头文件
#ifndef __FILTER_H__ #define __FILTER_H__ #include#include // #define FRAME_READ_LENGTH (256) #define FRAME_READ_LENGTH (20000) #define Factor 2.0*3.1415926/100000.0 #define FIR_FILTER_LENGTH 41 void process(float *x,float *y,int N); #endif
2、编写函数文件
#include "filter.h"
float state[FRAME_READ_LENGTH+1]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
float FIR_COFFES[FIR_FILTER_LENGTH]=
{
0.001075295550174,0.0004607092771574,-0.0006249377423234,-0.002090047702952,
-0.003308272540335,-0.003120062463785,-0.0004618791563568, 0.004600933630625,
0.01011810524146, 0.01253213617422, 0.008282768041107, -0.00378906797618,
-0.02047676398223, -0.03403584021207, -0.0344694727458, -0.01370238068746,
0.03008542081049, 0.0901066613135, 0.1520726052581, 0.1987175833049,
0.2160530132155, 0.19871758


