• 大小: 3KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: C/C++
  • 标签: C语言  

资源简介

修正后的C语言实现巴特沃斯程序,保证使用,有需要的可以联系我

资源截图

代码片段和文件信息

#include 
#include “math.h“
void gainc(bannsxylensign)
int nnslensign;
double b[]a[]x[]y[];
{
int ijkn1;
double araibrbizrziimredennumrnumifreqtemp;
double hrhitrti;
n1=n+1;
for (k=0;k {
freq=k*0.5/(len-1);
zr=cos(-8.0*atan(1.0)*freq);
zi=sin(-8.0*atan(1.0)*freq);
x[k]=1.0;
y[k]=0.0;
for (j=0;j {
br=0.0;
bi=0.0;
for (i=n;i>0 ;i-- )
{
re=br;
im=bi;
br=(re+b[j*n1+i])*zr-im*zi;
bi=(re+b[j*n1+i])*zi+im*zr;
}
ar=0.0;
ai=0.0;
for (i=n;i>0 ;i-- )
{
re=ar;
im=ai;
ar=(re+a[j*n1+i])*zr-im*zi;
ai=(re+a[j*n1+i])*zi+im*zr;
}
br=br+b[j*n1+0];
ar=ar+1.0;
numr=ar*br+ai*bi;
numi=ar*bi-ai*br;
den=ar*ar+ai*ai;
hr=numr/den;
hi=numi/den;
tr=x[k]*hr-y[k]*hi;
ti=x[k]*hi+y[k]*hr;
x[k]=tr;
y[k]=ti;
}
switch(sign)
{
case 1:
{
temp=sqrt(x[k]*x[k]+y[k]*y[k]);
if (temp!=0.0)
{
y[k]=atan2(y[k]x[k]);
}
else
{
y[k]=0.0;
}
x[k]=temp;
break;
}
case 2:
{
temp=x[k]*x[k]+y[k]*y[k];
if (temp!=0.0)
{
y[k]=atan2(y[k]x[k]);
}
else
{
temp=1.0e-40;
y[k]=0.0;
}
x[k]=10.0*log10(temp);

}
}
}
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1345  2008-10-13 11:10  FIR\gainc.c

     文件       2790  2008-08-25 22:04  FIR\iirbcf.c

     文件       1382  2008-10-13 11:16  FIR\IIR_BCF.c

     目录          0  2018-06-12 15:41  FIR

----------- ---------  ---------- -----  ----

                 5517                    4


评论

共有 条评论