c中的Matlab函数过滤器

Matlab function filter in c

我想为 matlab 过滤器编写 c 代码,但我没有得到相同的结果;第一个成员是正确的,但之后,不是。不知道怎么回事

void convolve(const double b[], size_t b_Len,
          const double h[], size_t h_Len,
          double result[],
          const double a[])
{
int i,j;
result[0]=b[0]*h[0];
for (i=1;i<h_Len+1;i++)
{
    result[i]=0;
    for (j=0;j<i+1;j++)
        result[i]=result[i]+b[j]*h[i-j];
    for (j=0;j<i;j++)
        result[i]=result[i]-a[j+1]*result[i-j-1];
}

最后这是我的代码:

#include <stdio.h>
#include <stdlib.h>

#include "coef_b.h"
extern  double x[];

#define NN 48
#define MM 13
float a=1;
double result [NN];

void convolve(const real64_T b[], 
          const double x[], 
          double result[],
          const float a)
{
FILE *f;
int i,j,l,k;
double temp[96]={0};

for(i=0;i<48;i++)
    temp[48+i]=x[i];

    for(j=48;j<96;j++)
{
    for(l=0;l<13;l++)
        result[j-48]=result[j-48]+temp[j-l]*b[l];   
}

f =fopen("super_result.dat","w");
    for (k = 0; k<48; k++)
    {
        fprintf(f,"%lf\n",result[k]);
    }
    fclose(f);
    return;
}


 int main(void)
 {
 convolve(B,
       x,
       result,
       a);

  return 0;
}