FIR窗函数滤波器的设计.docx
《FIR窗函数滤波器的设计.docx》由会员分享,可在线阅读,更多相关《FIR窗函数滤波器的设计.docx(15页珍藏版)》请在冰豆网上搜索。
![FIR窗函数滤波器的设计.docx](https://file1.bdocx.com/fileroot1/2023-2/3/8ef8168e-d0be-42cf-b31e-5042f5dc8be7/8ef8168e-d0be-42cf-b31e-5042f5dc8be71.gif)
FIR窗函数滤波器的设计
课程设计名称:
信号分析与处理课程设计
课程设计题目:
用窗函数法设计FIR数字滤波器
初始条件:
1.Matlab6.5以上版本软件;
2.课程设计辅导资料:
“Matlab语言基础及使用入门”、“信号与系统”、“数字信号处理原理与实现”、“Matlab及在电子信息课程中的应用”等;
3.先修课程:
信号与系统、数字信号处理、Matlab应用实践及信号处理类课程等。
要求完成的主要任务:
(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
1.课程设计时间:
1周;
2.课程设计内容:
用窗函数法设计FIR数字滤波器,具体包括:
用窗函数法设计FIR数字滤波器基本方法,各种窗函数的应用、比较、选择,线性相位FIR滤波器的设计等;
3.本课程设计统一技术要求:
研读辅导资料对应章节,对选定的设计题目进行理论分析,针对具体设计部分的原理分析、建模、必要的推导和可行性分析,画出程序设计框图,编写程序代码(含注释),上机调试运行程序,记录实验结果(含计算结果和图表),并对实验结果进行分析和总结,按要求进行实验演示和答辩等;
4.课程设计说明书按学校“课程设计工作规范”中的“统一书写格式”撰写,具体包括:
1目录;
2与设计题目相关的理论分析、归纳和总结;
3与设计内容相关的原理分析、建模、推导、可行性分析;
4程序设计框图、程序代码(含注释)、程序运行结果和图表、实验结果分析和总结;
5课程设计的心得体会(至少500字);
6参考文献(不少于5篇);
7其它必要内容等。
时间安排:
1周(第18周)
周一在图书馆和上网查资料
周二确定大概的设计方案
周三看懂别人写过的精彩例子
周四自己用matlab编写课程设计
周五调试程序和向别人请教
周六课程设计答辩
附——具体设计内容:
1.用矩形窗设计一个FIR线性相位数字低通滤波器,已知
。
求出
并画出幅频响应特性曲线。
2.用三角形窗设计一个FIR线性相位数字低通滤波器,已知
;要求画出滤波器的
曲线。
3.用布莱克曼窗设计一个FIR线性相位
相移的数字带通滤波器
设
。
试求出
的表达式,并画出
曲线。
基于FIR窗函数滤波器的设计
(1)矩形窗FIR滤波器设计
clearall;
N=21;
Wc=pi/2;
%理想低通滤波器设计(怎样设计理想高通、带通、带阻滤波器?
)
alpha=(N-1)/2;
n=[0:
(N-1)];
m=n-alpha+eps;
hd=Wc/pi*sin(Wc*m)./(pi*m);%hd=(sin(pi*m)-sin(Wc*m))./(pi*m);
B=boxcar(N);%矩形窗
string=['Boxcar','N=21',num2str(N)];
h=hd.*(B)';%加窗截取
%以上过程可直接调用FIR1实现
%wc=Wc/pi;%频率归一化
%h=fir1(N-1,wc,boxcar(N));
[H,m]=freqz(h,[1],1024,'whole');%频率响应
mag=abs(H);
db=20*log10((mag+eps)/max(mag));
pha=angle(H);
figure
(1);
stem(B);
axis([-22501]);
grid;
xlabel('n');
title('三角窗函数');
figure
(2);
n=0:
N-1;
stem(n,h,'.')
axis([0N-1-0.10.3])
holdon
n=0:
N-1;
x=zeros(N);
plot(n,x,'-')
holdoff
xlabel('n')
ylabel('h(n)')
title('实际低通滤波器的h(n)')
text(0.3*N,0.27,string)
figure(3);
plot(m/pi,db)
axis([01-1005])
xlabel('w/pi')
ylabel('dB')
title('幅频衰减特性')
gridon
figure(4);
plot(m,pha)
holdon
n=0:
7;
x=zeros(8);
plot(n,x,'-')
holdoff
axis([03.15-44])
xlabel('频率(rad)')
ylabel('相位(rad)')
title('相频特性')
figure(5);
plot(m,mag)
axis([03.1500.6])
xlabel('频率W(rad)')
ylabel('幅值')
title('幅频特性')
text(0.9,1.2,string)
(2)三角窗函数FIR滤波器设计
clearall;
N=51;
Wc=pi/2;
%理想低通滤波器设计(怎样设计理想高通、带通、带阻滤波器?
)
alpha=(N-1)/2;
n=[0:
(N-1)];
m=n-alpha+eps;
hd=Wc/pi*sin(Wc*m)./(pi*m);%hd=(sin(pi*m)-sin(Wc*m))./(pi*m);
B=bartlett(N);%矩形窗
string=['Boxcar','N=',num2str(N)];
h=hd.*(B)';%加窗截取
%以上过程可直接调用FIR1实现
%wc=Wc/pi;%频率归一化
%h=fir1(N-1,wc,boxcar(N));
[H,m]=freqz(h,[1],1024,'whole');%频率响应
mag=abs(H);
db=20*log10((mag+eps)/max(mag));
pha=angle(H);
figure
(1);
stem(B);
axis([05201]);
grid;
xlabel('n');
title('三角窗函数');
figure
(2);
n=0:
N-1;
stem(n,h,'.')
axis([0N-1-0.10.3])
holdon
n=0:
N-1;
x=zeros(N);
plot(n,x,'-')
holdoff
xlabel('n')
ylabel('h(n)')
title('实际低通滤波器的h(n)')
text(0.3*N,0.27,string)
figure(3);
plot(m/pi,db)
axis([01-501])
xlabel('w/pi')
ylabel('dB')
title('幅频衰减特性')
gridon
figure(4);
plot(m,pha)
holdon
n=0:
7;
x=zeros(8);
plot(n,x,'-')
holdoff
axis([03.15-44])
xlabel('频率(rad)')
ylabel('相位(rad)')
title('相频特性')
figure(5);
plot(m,mag)
axis([03.1500.6])
xlabel('频率W(rad)')
ylabel('幅值')
title('幅频特性')
text(0.9,1.2,string)
(3)布拉克曼窗函数FIR滤波器设计
wls=0.2*pi;
wlp=0.35*pi;
whp=0.65*pi;
wc=[wlp/pi,whp/pi];
B=wlp-wls;
N=51;
n=0:
N-1;
window=blackman(N);
[h1,w]=freqz(window,1);
figure
(1);
stem(window);
xlabel('n');
title('blackman窗函数');
figure
(2);
plot(w/pi,20*log(abs(h1)/abs(h1
(1))));
grid;
xlabel('w/pi');
ylabel('幅度(dB)');
title('blackman窗函数的频谱');
hn=fir1(N-1,wc,blackman(N));
[h2,w]=freqz(hn,1,512);
figure(3);
stem(n,hn);
xlabel('n');
ylabel('h(n)');
title('blackman窗函数的单位脉冲响应');
figure(4);
plot(w/pi,20*log(abs(h2)/abs(h2
(1))));
grid;
xlabel('w/pi');
ylabel('幅度(dB)');
title('blackman带通滤波器的幅度特性');
4.仿真波形
(1)矩形窗FIR滤波器设计
(3)布拉克曼窗函数FIR滤波器设计波形图
(2)三角窗函数FIR滤波器设计波形图