已经有了网站怎么做推广,网站建设协议 合同,如何知道一个网站做的什么推广,wordpress网站音乐播放实际可运行的FIR滤波器系数设计的C语言程序#includemath.h#includestdio.h/*n:滤波器的阶数,n是奇数时可用来设计各种滤波器band:滤波器类型1、2、3、4分别对应低通#xff0c;高通#xff0c;带通#xff0c;带阻fln:通带下边界频率fhn:通带上边界…实际可运行的FIR滤波器系数设计的C语言程序#includemath.h#includestdio.h/*n:滤波器的阶数,n是奇数时可用来设计各种滤波器band:滤波器类型1、2、3、4分别对应低通高通带通带阻fln:通带下边界频率fhn:通带上边界频率wn:窗函数的类型1-7分别对应h:长度为n1,存放滤波器的系数fs:采样频率*/void firwin(n,band,fln,fhn,wn,h)int n,band,wn;double fln,fhn,h[];{int i,n2,mid;double s,pi,wc1,wc2,beta,delay,fs;double window();//窗函数的计算beta0.0;if(wn7)//只有凯塞窗需要输入系数beta{printf(input beta parameter of Kaiser window(2scanf(%1f,beta);}pi4.0*atan(1.0);//piPI;if((n%2)0)/*如果阶数n是偶数*/{n2n/21;/**/mid1;//}else{n2n/2;//n是奇数,则窗口长度为偶数mid0;//}delayn/2.0;wc12.0*pi*fln;//if(band3) /*先判断用户输入的数据如果band参数大于3*/{wc22.0*pi*fhn;}switch(band){case 1:{for(i0;in2;i){si-delay;//h[i](sin(wc1*s/fs)/(pi*s))*window(wn,n1,i,beta);//低通,窗口长度阶数1故为n1h[n-i]h[i];}if(mid1)h[n/2]wc1/pi;//n为偶数时修正中间值系数break;}case 2:{for(i0;in2;i){si-delay;h[i](sin(pi*s)-sin(wc1*s/fs))/(pi*s);//高通-//对h[i]h[i]*window(wn,n1,i,beta);h[n-i]h[i];}if(mid1)h[n/2]1.0-wc1/pi;//对break;}case 3:{for(i0;i{si-delay;h[i](sin(wc2*s/fs)-sin(wc1*s/fs))/(pi*s);//带通-//对h[i]h[i]*window(wn,n1,i,beta);h[n-i]h[i];}if(mid1)h[n/2](wc2-wc1)/pi;//对break;}case 4:{for(i0;in2;i){si-delay;h[i](sin(wc1*s/fs)sin(pi*s)-sin(wc2*s/fs))/(pi*s);//带阻-//对h[i]h[i]*window(wn,n1,i,beta);h[n-i]h[i];}if(mid1)h[n/2](wc1pi-wc2)/pi;break;}}}/*返回窗函数的表达式n:窗口长度type:选择窗函数的类型beta:生成凯塞窗的系数*/static double window(type,n,i,beta)int i,n,type;double beta;{int k;double pi,w;double kaiser();pi4.0*atan(1.0);//piPI;w1.0;switch(type){case 1:{w1.0;//矩形窗break;}case 2:{k(n-2)/10;if(ik)w0.5*(1.0-cos(i*pi/(k1)));//图基窗break;}case 3:{w1.0-fabs(1.0-2*i/(n-1.0));//三角窗break;}case 4:{w0.5*(1.0-cos(2*i*pi/(n-1)));//汉宁窗break;}case 5:{w0.54-0.46*cos(2*i*pi/(n-1));//海明窗break;}case 6:{w0.42-0.5*cos(2*i*pi/(n-1))0.08*cos(4*i*pi/(n-1));//布莱克曼窗break;}case 7:{wkaiser(i,n,beta);//凯塞窗break;}}return(w);}static double kaiser(i,n,beta)//因凯塞窗的表达式复杂调用贝塞尔窗表达式int i,n;double beta;{double a,w,a2,b1,b2,beta1;double bessel0();b1bessel0(beta);a