基于dsp数字信号处理器的fir和iir滤波器设计内容摘要:

11,0 33,162,92,42,0,38,76,121 22,0,62,16,77,50,0,45 62,11,40,0,12,57,32,14 0,13,25,40,7,0,20,5 24,16,0,14,19,4,12,0 4,18,10,5,0,5,9,15 3,0,0,0,0,0,0,0 程序运行结果如图 所示 . 图 幅频特性 (2)、 CCS 程序代码 代码 define NX 320 define NH 209 //define FNAME t6 define MAXERROR 10 define PI pragma DATA_SECTION(h,.coeffs) DATA h[NH]={ 3,15,9,5,0,5,10,18, 4,0,12,4,19,14,0,16, 24,5,20,0,7,40,25,13, 0,14,32,57,12,0,40,11, 62,45,0,50,77,16,62,0, 22,121,76,38,0,42,92,162, 33,0,111,31,167,119,0,130, 199,40,158,0,56,302,188,94, 0,102,223,392,79,0,267,74, 402,286,0,314,484,98,388,0, 140,761,478,241,0,271,604,1083, 224,0,799,230,1297,967,0,1193, 1978,439,1928,0,943,6515,5822,5561, 13098,5561,5822,6515,943,0,1928,439, 1978,1193,0,967,1297,230,799,0, 224,1083,604,271,0,241,478,761, 140,0,388,98,484,314,0,286, 402,74,267,0,79,392,223,102, 0,94,188,302,56,0,158,40, 199,130,0,119,167,31,111,0, 33,162,92,42,0,38,76,121, 22,0,62,16,77,50,0,45, 62,11,40,0,12,57,32,14, 0,13,25,40,7,0,20,5, 24,16,0,14,19,4,12,0, 4,18,10,5,0,5,9,15, 3 }。 pragma DATA_SECTION(db,.dbuffer) DATA db[NH+2]。 DATA rtest[NX]。 DATA r[NX]。 运行结果如图 所示 图 滤波前后的的波形 FIR 带阻滤波器实现 (1)、 MATLAB 程序代码 ws1=。 ws2=。 wp1=。 wp2=。 wp=[wp1,wp2]。 ws=[ws1,ws2]。 B=ws1wp1。 %计算过渡带宽 N0=ceil(*pi/B)。 N=N0+mod(N0+1,2) wc1=(ws1+wp1)/2。 wc2=(ws2+wp2)/2。 wc=[wc1,wc2]。 b=fir1(N1,wc,39。 stop39。 )。 %80 point hamming window FIR filter, Wn= fvtool(b,1) h=buffer(round(b*32768),8)39。 csvwrite(39。 39。 ,h) 运行结果如下: N=209 生成的 文档 3,15,9,5,0,5,10,18 4,0,13,4,19,14,0,16 24,5,20,0,7,40,25,13 0,14,32,57,12,0,40,11 62,45,0,50,77,16,62,0 22,121,76,38,0,42,92,162 33,0,111,31,167,119,0,130 199,40,158,0,56,303,188,94 0,102,224,393,79,0,267,74 402,287,0,315,485,98,388,0 140,762,478,241,0,272,605,1085 224,0,800,231,1298,969,0,1194 1981,439,1930,0,945,6523,5829,5569 19672,5569,5829,6523,945,0,1930,439 1981,1194,0,969,1298,231,800,0 224,1085,605,272,0,241,478,762 140,0,388,98,485,315,0,287 402,74,267,0,79,393,224,102 0,94,188,303,56,0,158,40 199,130,0,119,167,31,111,0 33,162,92,42,0,38,76,121 22,0,62,16,77,50,0,45 62,11,40,0,12,57,32,14 0,13,25,40,7,0,20,5 24,16,0,14,19,4,13,0 4,18,10,5,0,5,9,15 3,0,0,0,0,0,0,0 程序运行结果如图 1 所示。 图 幅频响应 (2)、 CCS 程序代码 程序代码 define NX 320 define NH 209 //define FNAME t6 define MAXERROR 10 define PI pragma DATA_SECTION(h,.coeffs) DATA h[NH]={ 3,15,9,5,0,5,10,18, 4,0,13,4,19,14,0,16, 24,5,20,0,7,40,25,13, 0,14,32,57,12,0,40,11, 62,45,0,50,77,16,62,0, 22,121,76,38,0,42,92,162, 33,0,111,31,167,119,0,130, 199,40,158,0,56,303,188,94, 0,102,224,393,79,0,267,74, 402,287,0,315,485,98,388,0, 140,762,478,241,0,272,605,1085, 224,0,800,231,1298,969,0,1194, 1981,439,1930,0,945,6523,5829,5569, 19672,5569,5829,6523,945,0,1930,439, 1981,1194,0,969,1298,231,800,0, 224,1085,605,272,0,241,478,762, 140,0,388,98,485,315,0,287, 402,74,267,0,79,393,224,102, 0,94,188,303,56,0,158,40, 199,130,0,119,167,31,111,0, 33,162,92,42,0,38,76,121, 22,0,62,16,77,50,0,45, 62,11,40,0,12,57,32,14, 0,13,25,40,7,0,20,5, 24,16,0,14,19,4,13,0, 4,18,10,5,0,5,9,15, 3 }。 pragma DATA_SECTION(db,.dbuffer) DATA db[NH+2]。 DATA rtest[NX]。 DATA r[NX]。 运行结果如图 所示: 图 滤波前后的波形 (二 )、 IIR 滤波器程序代码 CCS 软件环境下主程序代码 define PI include include include include include short i。 short eflag = PASS。 // error flag or index into r vector where error void main() { for (i=0。 iNX。 i++) r[i] =0。 for (i=0。 i5*NBIQ。 i++) dbuffer[i] = 0。 // clear delay buffer (a must) for(i=0。 iNX。 i++)x[i]=0。 for (i=0。 iNX。 i++) { x[i]=(short)((1+sin(PI*3000*i/12020))*sin(PI*4000*i/12020)*32768/3)。 } iircas51(x, h, r, dp, NBIQ, NX)。 while(1)。 } IIR 低通滤波器实现 (1)、 MATLAB 程序代码 clear clc wp=。 ws=。 [n,wc]=ellipord(wp,ws,3,80) [b,a]=ellip(n,3,80,wc) freqz(b,a,512,10000) [s, g]=tf2sos(b,a) s1=round(s/4*32768) k=[s1(:,1:3),s1(:,5:6)] s3=[k(1,:),k(2,:),k(3,:),k(4,:)] h1=buffer(s3,8)39。 csvwrite(39。 39。 ,h1) 程序运行结果如下: 生成 文档 8192,8192,0,6022,0,8192,12450,8192 7816,5556,8192,7398,8192,2514,7031,8192 5145,8192,180,7881,0,0,0,0 程序运行结果如图 所示 . 图 幅频和相频特性 (2)、将生成的 文档粘贴到头文件中的 DATA h[5*NBIQ]{ 8192,8192,0,6022,0,8192,12450,8192, 7816,5556,8192,7398,8192,2514,7031,8192, 5145,8192,180,7881 }中 ,然后将 NBIQ 的值改为 4。 . 运行结果如图 所示。 图 滤波前后的波形 IIR 高通滤波器实现 (1)、 MATLAB 程序代码 clear clc ws= wp= %[n,wn]=cheb1ord(wp,ws,3,80) %[b,a]=cheby1(n,3,wn,39。 high39。 ) [n,wc]=ellipord(wp,ws,3,80) [b,a]=ellip(n,3,80,wc,39。 high39。 ) freqz(b,a,512,10000) [s, g]=tf2sos(b,a) %s2=s/20*32768 s1=round(s/4*32768) k=[s1(:,1:3),s1(:,5:6)] s3=[k(1,:),k(2,:),k(3,:)] h1=buffer(s3,8)39。 csvwrite(39。 39。 ,h1) 运行结果如下: 生成 文档 8192,16277,8192,237,2948,8192,15678,8192 10398,6810,8192,15204,8192,12912,7894,0 运行结果如图 1 所示 图 幅频和相频特性 (2)、将生成的 文档粘贴到头文件中的 DATA h[5*NBIQ]{ 8192,16277,8192,237,2948,8192,15678,8192, 10398,6810,8192,15204,8192,12912,7894 }中 ,然后将 NBIQ 的值改为 3。 程序运行结果如图 所示。 图 滤波前后的波形图 IIR 带通滤波器实现 (1)、 MATLAB 程序代码 clear clc wp=[,]。 ws=[,]。 [n,wc]=ellipord(wp,ws,3,80) [b,a]=ellip(n,3,80,wc,39。 bandpass39。 ) freqz(b,a,512,10000) [s, g]=tf2sos(b,a) %s2=s/20*32768 s1=round(s/4*32768) k=[s1(:,1:3),s1(:,5:6)] s3=[。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。