ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:17.32KB ,
资源ID:5269801      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-5269801.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(IIR数字滤波器设计C程序文档格式.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

IIR数字滤波器设计C程序文档格式.docx

1、void main(void)double *f1,*f2,*hwdb;double *h=NULL;int N,nf,ns,nz,i,j,k,ftype,type;COMPLEX hwdb1,hwdb2;double wp,ws,ap,as,jw,amp1,amp2;char title80,tmp20;struct rptr *ptr=NULL;/* printf(%lf,PI);getch();*/N=500;f1=(double *)calloc(4,sizeof(double);f2=(double *)calloc(4,sizeof(double);hwdb=(double *)c

2、alloc(N+2,sizeof(double);if (hwdb=NULL)printf(n Not enough memory to allocate!);exit(0);n1.Lowpass 2.Highpass 3.bandpassnPlease select the filter type:scanf(%d,&ftype);switch(ftype)case 1:lowpass_input(&wp,&ws,&ap,&as,f1,f2,&nf);break;case 2:highpass_input(&case 3:bandpass_input(&default:h=bcg(ap,as

3、,wp,ws,&ns,h,&type);nThe analog filter denominator coefficients of Ha(s):for(i=0;iai,i,ptr-bi);nnPress any key to calculate the filter response of H(z).nWaitting for calculating./* Calculate the magnitude-frequency response*/for(k=0;kai*cos(i*jw);hwdb2.real+=ptr-bi*cos(i*jw);hwdb1.image+=ptr-ai*sin(

4、i*jw);hwdb2.image+=ptr-bi*sin(i*jw);amp1=(pow(hwdb1.real,2)+pow(hwdb1.image,2);amp2=(pow(hwdb2.real,2)+pow(hwdb2.image,2);if(amp1=0) amp1=1e-90;if(amp2=0) amp2=1e-90;hwdbk=10*log10(amp1/amp2);if(hwdbkb);a);free(h);free(hwdb);free(f2);free(f1);/*/void lowpass_input(double *wp,double *ws,double *ap,do

5、uble *ar,double *f1,double *f2,int *nf)double fp,fr,fs;nPlease input the Fp,Ap,Fr,Ar,Fs valuenFp,Ap:Passband frequency(Hz) and MAXAttenuation(dB)nFr,Ar:Stopband frequency(Hz) and MINAttenuation(dB)nFs is the sample frequency(Hz) Lowpass filternInput parameters Fp,Ap,Fr,Ar,Fs:%lf,%lf,%lf,%lf,%lffp,ap

6、,&fr,ar,&fs);if(fpfr)|(*ap*ar)|(fs2*fr);*wp=tan(PI*fp/fs);*ws=tan(PI*fr/fs);*f1=-1.0;*(f1+1)=1.0;*f2=1.0;*(f2+1)=1.0;*nf=1;/*/void highpass_input(double *wp,double *ws,double *ap,double *ar,double *f1,double *f2,int *nf)nFs is the sample frequency(Hz) highpass filterif(fp*ar)|(fs2*fp)while(fp*ar)|(f

7、sfp2)|(fp1fr2)|(*ap2*fr2)while(fp12*fr2);wp1=2*PI*fp1/fs;wr1=2*PI*fr1/fs;wp2=2*PI*fp2/fs;wr2=2*PI*fr2/fs;cw0=sin(wp1+wp2)/(sin(wp1)+sin(wp2);pwp1=fabs(cw0-cos(wp1)/sin(wp1);pws1=fabs(cw0-cos(wr1)/sin(wr1);pwp2=fabs(cw0-cos(wp2)/sin(wp2);pws2=fabs(cw0-cos(wr2)/sin(wr2);if(fabs(pws1-pwp1) *wp=pws1;*ws

8、=pws1;else*wp=pwp2;*ws=pws2;*(f1+1)=-2.0*cw0;*(f1+2)=1.0;*(f2+1)=0.0*cw0;*(f2+2)=1.0;*nf=2;/*bcg-Chebyshev 和 Butterworth 型模拟原型传输函数生成子程序即程序得到系统函数 H(s).输出格式为:*/double *bcg(double ap,double as,double wp,double ws,int *n,double *h,int *type)int i,j,k;double a,c,e,p,q,x,y,wc,cs1,cs2;COMPLEX *b;double pp2

9、0;double xs88=1.0,1.0,1.41421356,1.0,2.0,2.0,1.0,2.61312593,3.41421356,2,61312593,1.0,3.23606789,5.23606789,5.23606789,3.23606789,1.0,3.86370331,7.46410162,9.14162017,7.46410162,3.86370331,1.0,4.49395921,10.09783468,14.59179389,14.59579389,10.09783468,4.49395921,1.0,5.12583090,13.13707118,21.8461509

10、7,25.68835593,21.84615097,13.13707118,5.12583090;nTYPE 1.Butterworth 2.Chebyshev?(1/2):,type);if(*type=2)c=sqrt(pow(10,as/10.0)-1.0);e=sqrt(pow(10,ap/10.0)-1.0);*n=(int)(fabs(FNCCH(c/e)/FNCCH(ws/wp)+0.99999);b=(COMPLEX*)calloc(*n+2,sizeof(COMPLEX);if(b=NULL)nNot enough memory to allocate!wc=wp;a=pow

11、(wc,(*n)/(e*pow(2.0,(*n)-1);q=1/e;x=FNSSH(q)/(*n);*n;y=(2.0*i+1.0)*PI/(2.0*(*n);(b+i)-real=-wc*FNSH1(x)*sin(y);image=-wc*FNCH1(x)*cos(y);c=(pow(10.0,(0.1*ap)-1.0)/(pow(10.0,(0.1*as)-1.0);*n=(int)(fabs(log(c)/log(wp/ws)/2.0)+0.99999);b=(COMPLEX *)calloc(*n+2,sizeof(COMPLEX);wc=wp/pow(pow(10.0,0.1*ap)

12、-1.0,1.0/(2.0*(*n);a=pow(wc,(double)(*n);p=PI*(0.5+(2.0*i+1.0)/2.0/(*n);real=wc*cos(p);image=wc*sin(p);nThe order of prototype filter is:,*n);/* b1=(COMPLEX*)calloc(*n+2,sizeof(COMPLEX);b2=(COMPLEX*)calloc(*n+2,sizeof(COMPLEX);h=(double *)calloc(*n+2),sizeof(double);if(h=NULL)b1-real=-(b-real);image

13、=-(b-image);(b1+1)-real=1.0;image=0.0;if(*n!=1)for(i=1;k cs1=(b1+k)-real-(b1+k+1)-real*(b+i)-real;cs2=(b1+k)-image-(b1+k+1)-image;(b2+k+1)-real=cs1+(b1+k+1)-image*(b+i)-image=cs2-(b1+k+1)-b2-real=-(b1-real-b1-image=-(b1-image+b1-(b2+i+1)-real=(b1+i)-image=(b1+i)-=i+1;(b1+k)-real=(b2+k)-image=(b2+k)-(b2+k)-real=0.0;=*n;hi=(b1+i)-nz-=_fnz0=_f,nz1=_f,nz2=_f,nz3=_f,nz4=_f,1.0,2.6131/wc,3.4142/pow(wc,2),2.6131/pow(wc,3),1/a);=*n-1;ppi=xs*n-1i;hi=ppi/pow(wc,i);free(b);/* free(b1);free(b2);return h;/*bsf-有理分式变换子程序*

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2