fir滤波器设计.docx

上传人:b****6 文档编号:13321448 上传时间:2023-06-13 格式:DOCX 页数:13 大小:400.19KB
下载 相关 举报
fir滤波器设计.docx_第1页
第1页 / 共13页
fir滤波器设计.docx_第2页
第2页 / 共13页
fir滤波器设计.docx_第3页
第3页 / 共13页
fir滤波器设计.docx_第4页
第4页 / 共13页
fir滤波器设计.docx_第5页
第5页 / 共13页
fir滤波器设计.docx_第6页
第6页 / 共13页
fir滤波器设计.docx_第7页
第7页 / 共13页
fir滤波器设计.docx_第8页
第8页 / 共13页
fir滤波器设计.docx_第9页
第9页 / 共13页
fir滤波器设计.docx_第10页
第10页 / 共13页
fir滤波器设计.docx_第11页
第11页 / 共13页
fir滤波器设计.docx_第12页
第12页 / 共13页
fir滤波器设计.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

fir滤波器设计.docx

《fir滤波器设计.docx》由会员分享,可在线阅读,更多相关《fir滤波器设计.docx(13页珍藏版)》请在冰点文库上搜索。

fir滤波器设计.docx

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.仿真结果

图五滤波前信号图像

图六滤波前信号频谱

图七滤波后信号图像

图八滤波后信号频谱

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

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

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