fir滤波器设计.docx
- 文档编号:25957651
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:13
- 大小:400.19KB
fir滤波器设计.docx
《fir滤波器设计.docx》由会员分享,可在线阅读,更多相关《fir滤波器设计.docx(13页珍藏版)》请在冰豆网上搜索。
fir滤波器设计
FIR滤波器设计报告
学号:
1020300148
姓名:
杨昆
FIR滤波器的设计
(1)滤波器的设计要求:
利用MATLAB和CCS仿真环境设计一个FIR滤波器,设计滤波器的采样平率为600HZ,信号频率为100,220,280HZ的双正弦不等幅信号,要求滤去200HZ以上的信号成分。
(2)设计思路:
1.低通滤波器,不需要很高的阶数。
2.在Matlab语言中确定滤波器的各种参数。
3.将Matlab语言转换成通用语言形式。
4.编写实际DSP应用程序。
5.在CCS中调试程序。
(3)设计过程:
1.使用Matlab中的bartlett窗函数。
下面是在Matlab中设计的滤波器程序。
clearall;
clf;
N=256;
fs=600;
dt=1/fs;
fort=1:
N
f1=280;
f2=100;
f3=220;
y(t)=(sin(2*pi*f1*t*dt)+sin(2*pi*f2*t*dt)+1.2*sin(2*pi*f3*t*dt));
x(t)=round(10000*y(t));
end
figure
(1)
plot(y),title('Â˲¨Ç°µÄ²¨ÐÎͼÏñ');
fp=200
fst=250
NL=56
f1=200;
w1=2*pi*f1/fs
window=bartlett(NL+1)
n=1:
NL+1
hd=sin(w1*(n-NL/2))./(pi*(n-NL/2));
hd(NL/2)=0.67;
h=hd.*rot90(window)
h1=h*32768;
h2=fft(h,N);
pyy=h2.*conj(h2);
f=(0:
(N/2-1));
fori=1:
N/2-1
f(i)=f(i)*fs/N;
end
figure
(2)
plot(f,pyy(1:
N/2)),title('Â˲¨Æ÷µÄƵÆ×ͼÏñ');
yy1=filter(h,1,y);
figure(3)
plot(yy1),title('Â˲¨ºóµÄ²¨ÐÎͼÏñ');
y=fft(y,N);
pyy=y.*conj(y);
f=(0:
(N/2-1));
fori=1:
N/2-1
f(i)=f(i)*fs/N;
end
figure(4)
subplot(1,2,1),plot(f,pyy(1:
N/2)),title('Â˲¨Ç°µÄ²¨ÐÎƵÆ×ͼÏñ');
y=fft(yy1,N);
pyy=y.*conj(y);
f=(0:
(N/2-1));
fori=1:
N/2-1
f(i)=f(i)*fs/N;
end
subplot(1,2,2),plot(f,pyy(1:
N/2)),title('Â˲¨ºóµÄ²¨ÐÎƵÆ×ͼÏñ')
2.仿真结果
图一
图二
图三
图四
图一为滤波器的频谱图像,图二为滤波前后波形频谱对比,图三位滤波前信号波形,图四为滤波后信号波形。
(4)CCS仿真:
1.程序如下:
.mmregs
.reffilter_start
.def_c_int00
K_DATA_SIZE.set256
K_BUFFER_SIZE.set64
K_STACK_SIZE.set256
K_B.set27
K_CIR.setK_BUFFER_SIZE
STACK.usect"stack",K_STACK_SIZE
SYSTEM_STACK.setK_STACK_SIZE+STACK
DATA_DP.usect"filter_vars",0
filterdata.usect"filter_vars",K_DATA_SIZE
bufferdatay.usect"filter_vars",K_BUFFER_SIZE*2
bufferdatax.usect"filter_vars",K_BUFFER_SIZE*2
.data
.globalinputdata
inputdata
.WORD19657,-7341,12931,-13597,-10392,1902,13725,-6166
.WORD20923,-27713,1266,1176,793,15499,0,-15499
.WORD-793,-1176,-1266,27713,-20923,6166,-13725,-1902
.WORD10392,13597,-12931,7341,-19657,0,19657,-7341
.WORD12931,-13597,-10392,1902,13725,-6166,20923,-27713
.WORD1266,1176,793,15499,0,-15499,-793,-1176
.WORD-1266,27713,-20923,6166,-13725,-1902,10392,13597
.WORD-12931,7341,-19657,0,19657,-7341,12931,-13597
.WORD-10392,1902,13725,-6166,20923,-27713,1266,1176
.WORD793,15499,0,-15499,-793,-1176,-1266,27713
.WORD-20923,6166,-13725,-1902,10392,13597,-12931,7341
.WORD-19657,0,19657,-7341,12931,-13597,-10392,1902
.WORD13725,-6166,20923,-27713,1266,1176,793,15499
.WORD0,-15499,-793,-1176,-1266,27713,-20923,6166
.WORD-13725,-1902,10392,13597,-12931,7341,-19657,0.WORD19657,-7341,12931,-13597,-10392,1902,13725,-6166.WORD20923,-27713,1266,1176,793,15499,0,-15499
.WORD-793,-1176,-1266,27713,-20923,6166,-13725,-1902
.WORD10392,13597,-12931,7341,-19657,0,19657,-7341
.WORD12931,-13597,-10392,1902,13725,-6166,20923,-27713
.WORD1266,1176,793,15499,0-15499,-793,-1176.WORD-1266,27713,-20923,6166,-13725,-1902,10392,13597
.WORD-12931,7341,-19657,0,19657,-7341,12931,-13597
.WORD-10392,1902,13725,-6166,20923,-27713,1266,1176
.WORD793,15499,0,-15499,-793,-1176,-1266,27713
.WORD-20923,6166,-13725,-1902,10392,13597,-12931,7341
.WORD-19657,0,19657,-7341,12931,-13597,-10392,1902
.WORD13725,-6166,20923,-27713,1266,1176,793,15499
.WORD0,-15499,-793,-1176,-1266,27713,-20923,6166
.WORD-13725,-1902,10392,13597,-12931,7341,-19657,0
.WORD19657,-7341,12931,-13597,-10392,1902,13725,-6166
.WORD20923,-27713,1266,1176,793,15499,0,-15499
.text
_c_int00:
.asgAR2,ORIGIN
.asgAR3,INPUT
.asgAR4,FILTER
.asgAR5,OUTPUT
START:
SSBXFRCT
SSBXINTM
LD#DATA_DP,DP
STM#STACK,SP
CALLfilter_start
NOP
NOP
NOP
LOOP
BLOOP
.defh0,h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11,h12,h13,h14,h15,h16,h17,h18,h19,h20,h21,h22,h23,h24,h25,h26
.deffilter_start
h0.set0000H
h1.set-003FH
h2.set008AH
h3.set0000H
h4.set-015BH
h5.set01F0H
h6.set0000H
h7.set-03CDH
h8.set056EH
h9.set0000H
h10.set-0D92H
h11.set1DDBH
h12.set4F2AH
h13.set2349H
h14.set-1049H
h15.set0000H
h16.set06C9H
h17.set-04E3H
h18.set0000H
h19.set02B7H
h20.set-0209H
h21.set0000H
h22.set0116H
h23.set-00BEH
h24.set0000H
h25.set0035H
h26.set0000H
.text
filter_start:
STM#K_CIR,BK
STM#1,AR0
STM#inputdata,ORIGIN
STM#bufferdatax,INPUT
;STM#bufferdatay,FILTER
STM#filterdata,OUTPUT;滤波
STM#K_DATA_SIZE-1,BRC
RPTBfilter_end-1
MVDD*ORIGIN+,*INPUT
RPT#K_B-1-1
MAR*INPUT-0%
MPY*INPUT+0%,#h26,B
LDB,A
MPY*INPUT+0%,#h25,B
ADDB,A
MPY*INPUT+0%,#h24,B
ADDB,A
MPY*INPUT+0%,#h23,B
ADDB,A
MPY*INPUT+0%,#h22,B
ADDB,A
MPY*INPUT+0%,#h21,B
ADDB,A
MPY*INPUT+0%,#h20,B
ADDB,A
MPY*INPUT+0%,#h19,B
ADDB,A
MPY*INPUT+0%,#h18,B
ADDB,A
MPY*INPUT+0%,#h17,B
ADDB,A
MPY*INPUT+0%,#h16,B
ADDB,A
MPY*INPUT+0%,#h15,B
ADDB,A
MPY*INPUT+0%,#h14,B
ADDB,A
MPY*INPUT+0%,#h13,B
ADDB,A
MPY*INPUT+0%,#h12,B
ADDB,A
MPY*INPUT+0%,#h11,B
ADDB,A
MPY*INPUT+0%,#h10,B
ADDB,A
MPY*INPUT+0%,#h9,B
ADDB,A
MPY*INPUT+0%,#h8,B
ADDB,A
MPY*INPUT+0%,#h7,B
ADDB,A
MPY*INPUT+0%,#h6,B
ADDB,A
MPY*INPUT+0%,#h5,B
ADDB,A
MPY*INPUT+0%,#h4,B
ADDB,A
MPY*INPUT+0%,#h3,B
ADDB,A
MPY*INPUT+0%,#h2,B
ADDB,A
MPY*INPUT+0%,#h1,B
ADDB,A
MPY*INPUT+0%,#h0,B
ADDB,A
;STHA,*FILTER-0%
STHA,*OUTPUT+
;MAR*FILTER-0%
filter_end:
NOP
RET
.end
2.仿真结果
图五滤波前信号图像
图六滤波前信号频谱
图七滤波后信号图像
图八滤波后信号频谱
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- fir 滤波器 设计