13,826
社区成员
发帖
与我相关
我的任务
分享
bool iir_DirectFormII(
const DynamicArray< double > b,
const DynamicArray< double > a,
const DynamicArray< double > x,
DynamicArray< double > &y)
{
for(int i=0; i< y.Length; i++) y[i] =0;
int na=a.Length;
int nb=b.Length;
for(int n=0; n<= nb-2; n++)
{
y[n] =0;
for(int z=0; z<=nb-1; z++)
{ //分子
if ( n>=z )
y[n] += b[z] * x[n-z] ;
}
for(int z=1; z<=na-1; z++)
{ //分母
if( n>=z )
y[n] -= a[z] * y[n-z] ;
}
}
for(int n=nb-1; n<= y.Length-1; n++)
{
for(int z=0; z<=nb-1; z++)
{
y[n] += b[z] * x[n-z] ;
}
for(int z=1; z<=na-1; z++) //a[0] must be 1
{
y[n] -= a[z] * y[n-z] ;
}
}
return 1;
}
for(int z=0; z<=nb-1; z++)
{
y[n] += b[z] * x[n-z] ;
}
for(int z=1; z<=na-1; z++) //a[0] must be 1
{
y[n] -= a[z] * y[n-z] ;
}