源代码分析
typedef struct AR{
float * data;
int EN;
} ARR, *ARRAY;
ARRAY symfilter(ARRAY H, ARRAY x )
{
int flen, xlen, cpos;
int i, dd,j, STN, ENDN, sn, en;
float sum;
float *ex ;
ARRAY y;
flen=H->EN;
xlen=x->EN;
dd=(flen)/2+1;
ex=(float *)malloc( (xlen+2*dd)*sizeof(float) );
y=(ARRAY)malloc(sizeof(ARR));
y->data=(float *)malloc( xlen*sizeof(float) );
STN=dd;
ENDN=dd+xlen-1;
for(i=STN; i<=ENDN; i++)
*(ex+i)=*(x->data + i-STN);
for(i=1;i<dd;i++)
{
*(ex+STN-i)=*(ex+STN+i);
*(ex+ENDN+i)=*(ex+ENDN-i);
}
dd=(flen-1)/2;
for(i=0; i<xlen; i++)
{
cpos=STN+i;
sum=0;
sn=cpos-dd;
en=cpos+dd;
for(j=sn; j<=en; j++)
sum=sum+ (*(H->data + j-sn)) * (*(ex+j));
*(y->data+i)=sum;
}
y->EN=x->EN;
return(y);
}
谁能分析一下,以上的函数做了些什么工作?