- FIR滤波后,依然还存在高频毛刺,结果如下
滤波程序如下:
- void fir_filter(float b[],float c[])
{
int i,j=0;
float sum;
float h[21]={
-0.09055792262407, 0.009744804975761, 0.01838867509003, 0.03195961694651,
0.04917012260358, 0.06836127325356, 0.08774901331544, 0.1053433191277,
0.1194310387162, 0.128484986607, 0.1316381457976, 0.128484986607,
0.1194310387162, 0.1053433191277, 0.08774901331544, 0.06836127325356,
0.04917012260358, 0.03195961694651, 0.01838867509003, 0.009744804975761,
-0.09055792262407
};
for(i=0;i<3000;i++)
{
sum=0.0;
for(j=0;j<21;j++)
{
if(i >= j)
sum+=h[j]*b[i-j];
else
;
}
c=sum;
}
for(i=0;i<2980;i++)
{
c=c[i+20];
}
}
此帖出自
小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
前面那个已经是均值滤波后的了,之前我的数组只有300个数据时觉得那个FIR滤波效果还挺好的,采样数据增加到3000个以后还是原来的滤波算法,结果输出却出现了很大的毛刺
试试最小均值的方法 而且滤波的话 不考虑时间的话 是不是可以考虑蒙特卡洛的方法
时间要求比较高
一周热门 更多>