資源簡介
修正后的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
- 上一篇:c++貪吃蛇小游戲
- 下一篇:C++期末的復習資料,很好用
評論
共有 條評論