- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课 程 设 计 报 告
课程名称: 数字信号处理
设计名称: 有限冲激响应数字滤波器设计
姓 名:
班 级:
学 号:
指导教师:
时 间:
数字信号处理课程设计
——有限冲激响应数字滤波器设计
一、实验目的
加深对数字滤波器的常用指标和设计过程的理解。
二、实验原理
图一 数字低通滤波器的典型幅度响应曲线
低通滤波器的常用指标为:
数字滤波器技术指标为:
通带边缘频率,阻带边缘频率 ,通带,最小阻带衰减通带峰值起伏,最小阻带衰减。
IIR和FIR两种类型,它们的特点和设计方法不同。窗系数需要实现用窗函数blackman(),hamming()和kaiser()产生。
三、实验内容:
用海明窗 (hamming(N))、布拉克曼窗 (Blackman(N))、凯塞窗(Kaiser(N,beta))分别设计FIR低通滤波器,通带边界频率,阻带边界频率,阻带衰减不小于50dB。
四、设计分析:
用窗函数设计FIR滤波器的步骤为:
根据对过度带宽及阻带衰减要求,选择窗函数的类型并计算窗口长度N。窗函数类型可根据其阻带最小衰减As的条件独立选择,因为其长度N对阻带最小衰减没有影响。在确定窗函数类型后,就可根据过度带宽小于给定指标的条件,确定所拟用的窗函数长度N。
所要求的过渡带宽 △w=ws-wp
由于窗函数满足:
海明窗 N=6.6*pi/△w
布拉克曼窗 N=11*pi/△w
凯泽窗 N=[(As-7.95)/(14.36*△f)]+2
△f=(ws-wp)/2
(2) 根据待求滤波器的理想频率响应求出单位脉冲响应hd(n)
wc=(ws+wp)/2; %wc为截止频率
=(N-1)/2; %N为理想滤波器的长度
n=[0:(N-1)];
m=n-+eps; %加一个小数以避免零做除数
hd=sin(wc*m)./(pi*m) %hd为点0到N-1之间的理想脉冲响应
(3) 计算滤波器的单位脉冲响应h(n)
h(n)=hd(n).*w(n) %w(n)为窗函数
(4) 验算技术指标是否满足要求。如果不满足要求,则要改变N,或改变窗函数(或两者都改变),然后重新计算。
五、MATLAB编程
(1) 海明窗
程序实现如下:
clear all;
wn=hamming(33);
nn=[0:1:32];
alfa=(32-1)/2;
hd=sin(0.25*pi*(nn-alfa+eps))./(pi*(nn-alfa+eps));%eps为一个非常小的数,防止出%现零为除数;点除
h=hd.*wn; %hd为一个行向量,wn为一个列向量,需要转置
[h1,w1]=freqz(h,1);
plot(w1/pi,20*log10(abs(h1)));%通过求对数得到以db为单位的幅度特性
axis([0,1,-100,10]);
grid;
xlabel(归一化频率/pi);
ylabel(幅度/dB);
所得图形为:
(2) 布拉克曼窗
程序实现如下:
clear all;
wn=blacman(55);
nn=[0:1:54];
alfa=(55-1)/2;
hd=sin(0.25*pi*(nn-alfa+eps))./(pi*(nn-alfa+eps)); %eps为一个非常小的数,防止出%现零为除数;点除
h=hd.*wn; [h1,w1]=freqz(h,1);
plot(w1/pi,20*log10(abs(h1)));
axis([0,1,-100,10]);
grid;
xlabel(归一化频率/pi);
ylabel(幅度/dB);
所得图形为:
(3) 凯泽窗
程序实现如下:
clear all;
wn=Kaiser(31,7.5);
nn=[0:1:30];
alfa=(31-1)/2;
hd=sin(0.25*pi*(nn-alfa+eps))./(pi*(nn-alfa+eps));%eps为一个非常小的数,防止出%现零为除数;点除
h=hd.*wn; [h1,w1]=freqz(h,1);
plot(w1/pi,20*log10(abs(h1)));
axis([0,1,-100,10]);
grid;
xlabel(归
文档评论(0)