关于C代码实现差分方程滤波filter

很久之前就已经把代码编译好了,没有时间整理:今天整理一下,已备后查;

整个差分方式的实现过程如下:公式不好编辑:


matlab实现了以后,用C照着写不是什么难事,找到2种实现方法,一种是照着filter差分的方式去写,误差说是在10^-6,另一种说是没有误差,实现过程没有去仔细研究,觉得小数点后面6位的误差也是可以的了。

代码可见:点击打开链接

核心 过程不过是两个for循环:

for (i=0;i<DataLen;i++)
{
double sum_b_x=0;
double sum_a_y=0;
k=0;
for( j=i;j<=i+ord;j++)
{
sum_b_x=sum_b_x+bz1[k]*up[j];
/*printf("bz1[%d]*up[%d]=\n",k,j);*/
k++;
}
/*printf("%f\n",sum_b_x);*/
//double sum_a_y=0;
k=0;
for( j=i;j<=i+ord-1;j++)
{
sum_a_y=sum_a_y+aa[k]*yp[j];
/*printf("aa[%d]*yp[%d]=\n",k,j);*/
k++;
}
/*printf("%f\n",sum_a_y);*/
yp[i+ord]=sum_b_x-sum_a_y;
/*printf("---%d\n,%e\n",i+ord,yp[i+ord]);*/
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值