www.pudn.com > FIR.rar > main.c
#includemain() { int i,j,n,n2,band,wn; double fl,fh,fs,freq; double h[100]; char fname[40]; FILE *fp; printf("select one of the four types for FIR digittal filter\n"); printf(" 1 --lowpass; 2 -- highpass\n"); printf(" 2 --bandpass; 4 -- bandstop\n"); scanf("%d",&band); printf("input the filter order n\n"); scanf("%d",&n); printf("input low cutoff frequrncy fl\n"); scanf("%lf",&fl); fh=0.0; if(band>=3) { printf("input high cutoff frequency fh\n"); scanf("%lf",&fh); } printf("input sample frequency fh\n"); scanf("%lf",&fs); printf("select window \n"); printf(" 1 -- retangular; 2 -- tapered rectangular\n"); printf(" 3 --triangular; 4 -- Hanning\n"); printf(" 5 -- Hamming ; 6 -- Blackman\n"); printf(" 7 -- Kaiser\n"); scanf("%d",&wn); fl=fl/fs; fh=fh/fs; firwin(n, band, fl, fh, wn, h ); printf("FIR digital filter \n"); printf(" * * * impiluse response * * *\n\n"); n2=n/2; for(i=0;i<=n2;i++) { j=n-i; printf(" h(%2d) = %12.8lf = h(%2d) \n",i,h[i],j); } }