基于Blackman窗的FIR数字低通滤波器设计.docx
- 文档编号:9698129
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:11
- 大小:121.69KB
基于Blackman窗的FIR数字低通滤波器设计.docx
《基于Blackman窗的FIR数字低通滤波器设计.docx》由会员分享,可在线阅读,更多相关《基于Blackman窗的FIR数字低通滤波器设计.docx(11页珍藏版)》请在冰豆网上搜索。
基于Blackman窗的FIR数字低通滤波器设计
课程设计
课程设计名称:
基于Blackman窗的FIR数字低通滤波器设计
专业班级:
电信1003
学生姓名:
星空
学号:
指导教师:
课程设计时间:
2013.6.24-2013.6.30
数字信号处理专业课程设计任务书
学生姓名
星空
专业班级
电信1003
学号
题目
基于Blackman窗的FIR数字低通滤波器设计
课题性质
工程技术研究
课题来源
自拟课题
指导教师
同组姓名
主要内容
设计一个具有如下性能指标的FIR数字带通滤波器:
=0.25
,
=0.4
;窗函数为Blackman窗;分析最后设计结果性能。
任务要求
1.温习窗函数法设计数字FIR滤波器的原理和设计方法;
2.求出最后所设计出的滤波器冲激响应系数;
3.绘制所设计滤波器的增益响应曲线。
参考文献
[1]胡广书.数字信号处理—理论、算法与实现[M].北京:
清华大学出版社,1997.
[2]R.Lyons.UnderstandingDigitalSignalProcessing[M].2nded.PrenticeHallPTR.,2004.
[3]A.V.奥本海姆,R.W.谢弗andJ.R.巴克.离散时间信号处理[M].第二版.西安交通大学出版社,2001.
[4]S.K.Mitra.DigitalSignalProcessing:
AComputer-BasedApproach[M].3rded.McGraw-Hill,2005.
审查意见
指导教师签字:
李相国
教研室主任签字:
年月日
说明:
本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页
1需求分析
数字滤波器可以理解为是一个计算程序或算法,将代表输入信号的数字时间序列转化为代表输出信号的数字时间序列,并在转化过程中,使信号按预定的形式变化。
数字滤波器有多种分类,根据数字滤波器冲激响应的时域特征,可将数字滤波器分为两种,即无限长冲激响应(iir)滤波器和有限长冲激响应(fir)滤波器。
iir数字滤波器具有无限宽的冲激响应,与模拟滤波器相匹配。
所以iir滤波器的设计可以采取在模拟滤波器设计的基础上进一步变换的方法。
fir数字滤波器的单位脉冲响应是有限长序列。
它的设计问题实质上是确定能满足所要求的转移序列或脉冲响应的常数问题,设计方法主要有窗函数法、频率采样法和等波纹最佳逼近法等。
因此设计FIR滤波器的方法之一可以从时域出发,截取有限长的一段冲击响应作为H(z)的系数,冲击响应长度N就是系统函数H(z)的阶数。
只要N足够长,截取的方法合理,总能满足频域的要求。
一般这种时域设计、频域检验的方法要反复几个回合才能成功。
要设计一个线性相位的FIR数字滤波器,首先要求理想频率响应
。
是w的周期函数,周期为
,可以展开成傅氏级数:
=
其中
是与理想频响对应的理想单位抽样响应序列。
但不能用来作为设计FIRDF用的h(n),因为
一般都是无限长、非因果的,物理上无法实现。
为了设计出频响类似于理想频响的滤波器,可以考虑用h(n)来近似
。
窗函数的基本思想:
先选取一个理想滤波器(它的单位抽样响应是非因果、无限长的),再截取(或加窗)它的单位抽样响应得到线性相位因果FIR滤波器。
这种方法的重点是选择一个合适的窗函数和理想滤波器。
设x(n)是一个长序列,w(n)是长度为N的窗函数,用w(n)截断x(n),得到N点序列xn(n),即
xn(n)=x(n)w(n)
在频域上则有
由此可见,窗函数w(n)不仅仅会影响原信号x(n)在时域上的波形,而且也会影响到频域内的形状。
加矩形窗后的频谱和理想频谱可得到以下结论:
加窗使过渡带变宽,过渡带的带宽取决于窗谱的主瓣宽度。
矩形窗情况下的过渡带宽是
。
N越大,过渡带越窄、越陡;
过渡带两旁产生肩峰,肩峰的两侧形成起伏振荡。
肩峰幅度取决于窗谱主瓣和旁瓣面积之比。
矩形窗情况下是8.95%,与N无关。
工程上习惯用相对衰耗来描述滤波器,相对衰耗定义为
这样两个肩峰点的相对衰耗分别是0.74dB和-21dB。
其中(-0.0895)对应的点的值定义为阻带最小衰耗。
以上的分析可见,滤波器的各种重要指标都是由窗函数决定,因此改进滤波器的关键在于改进窗函数。
窗函数谱的两个最重要的指标是:
主瓣宽度和旁瓣峰值衰耗。
旁瓣峰值衰耗定义为:
旁瓣峰值衰耗=20lg(第一旁瓣峰值/主瓣峰值)
为了改善滤波器的性能,需使窗函数谱满足:
主瓣尽可能窄,以使设计出来的滤波器有较陡的过渡带;
第一副瓣面积相对主瓣面积尽可能小,即能量尽可能集中在主瓣,外泄少,使设计出来的滤波器的肩峰和余振小。
但上面两个条件是相互矛盾的,实际应用中,折衷处理,兼顾各项指标。
本次设计要求以窗函数为Blackman窗为基础,设计一个具有如下性能指标的FIR数字带通滤波器:
=0.25
,
=0.4
2概要设计
如果所希望的滤波器的理想的频率响应函数为
,则其对应的单位脉冲响应为
窗函数设计法的基本原理是用有限长单位脉冲响应序列
逼近
。
由于
往往是无限长序列,而且是非因果的,所以用窗函数
将
截断,并进行加权处理,得到:
就作为实际设计的FIR数字滤波器的单位脉冲响应序列,其频率响应函数
为
式中,N为所选窗函数
的长度。
我们知道,用窗函数法设计的滤波器性能取决于窗函数
的类型及窗口长度N的取值。
设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度N。
主程序框图如图4.1所示。
其中幅度特性要求用dB表示。
布莱克曼窗函数
布莱克曼窗函数的时域形式可以表示为
它的频域特性为:
其中,
为矩形窗函数的幅度频率特性函数。
布莱克曼窗函数的最大旁瓣值比主瓣值低57dB,但是主瓣宽度是矩形窗函数的主瓣宽度的3倍,为12π/N。
Blackman函数调用方式:
w=blackman(n):
输入参数n是窗函数的长度;输出参数w是由窗函数的值组成的n阶向量。
3运行环境
软件环境:
1.Windowsxp
2.MATLAB6.5
4开发工具和编程语言
开发工具:
MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。
MATLAB一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。
用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。
5详细设计
算法实现的源程序:
(1)计算实际滤波器的幅度,相位响应
function[db,mag,pha,grd,w]=myfreqz(b,a);
N=1000;[H,w]=freqz(b,a,N,'whole');
H=(H(1:
1:
501))';w=(w(1:
1:
501))';
mag=abs(H);
db=20*log10((mag+eps)/max(mag));
pha=angle(H);
grd=grpdelay(b,a,w);
(2)求滤波器的理想脉冲响应
functionhd=ideal_lp(wc,M);
al=(M-1)/2;
n=[0:
(M-1)];
m=n-al+eps;
hd=sin(wc*m)./(pi*m);
(3)主程序:
wst=0.4*pi;wp=0.25*pi;deltaw=wst-wp;%过渡带宽△w的计算
N0=ceil(11*pi/deltaw);%按布莱克曼窗计算所需的滤波器长度
N=N0+mod(N0+1,2);%为了实现第一类偶对称滤波器,应确保其长度N为奇数
n=[0:
1:
N-1];
wc=(wst+wp)/2;%截止频率取为两边缘频率的平均值
hd=ideal_lp(wc,N);%求理想脉冲响应
wdbla=(blackman(N))';%求窗函数
h=hd.*wdbla;%设计的脉冲响应应为理想脉冲响应与窗函数乘积
[db,mag,pha,grd,w]=myfreqz(h,[1]);%对设计结果进行检验
dw=2*pi/2000;%频率分辨率
Rp=-(min(db(1:
wp/dw+1)))%检验通带波动
As=-round(max(db(wst/dw+1:
501)))%检验最小阻带衰减
figure
(1)
subplot(2,2,1);stem(n,wdbla);title('布莱克曼窗')%绘制布莱克曼窗
axis([0N-101.1]);ylabel('w(n)');text(N+1,0,'n')
subplot(2,2,2);stem(n,h);title('实际脉冲响应')%绘制实际脉冲响应
axis([0N-1-0.40.5]);xlabel('n');ylabel('h(n)')
subplot(2,2,3);plot(w/pi,db);%绘制幅度响应;
title('幅度响应(单位:
dB)');grid;
axis([01-15010]);xlabel('频率(单位:
pi)');ylabel('分贝数')
set(gca,'XTickMode','manual','XTick',[0,0.2,0.35,0.65,0.8,1])
set(gca,'YTickMode','manual','YTick',[-60,0])
subplot(2,2,4);plot(w,pha);title('相位响应');%绘制相频特性
axis([02-44]);xlabel('频率(单位:
pi)');ylabel('相位(Φ)')
6调试分析
设计低通滤波器时首先要计算出过渡带宽,然后查表得到所设计窗函数所需要的阶数,不同的窗函数所设计的滤波器的形状各有差异,尤其在主瓣宽度、旁瓣的形状以及主瓣与旁瓣的高度差上有比较明显得差别,实际应用中应根据实际情况,折衷处理,兼顾各项指标。
实际中遇到的离散时间信号总是有限长的,因此不可避免地要遇到数据截断问题。
而在信号处理中,对离散序列的数据截断是通过序列与窗函数相乘来实现的。
7测试结果
测试结果有错,初始参数为ws=0.4*pi;wp=0.25*pi,运行出错,错误在主程序最后一行:
axis([02-44]);xlabel('频率(单位:
pi)');ylabel('相位(Φ)'),最后检查出来为标点出错,应为英文输入法下的标点
运行结果(图):
参考文献
[1]刘泉《信号与系统》高等教育出版社2006
[2]丁玉美,高西全编著.数字信号处理.西安:
西安电子科技大学出版社,2000
[3]刘泉《数字信号处理原理与实现》电子工业出版社2005
[4]黄文梅,熊桂林,杨勇编著.信号分析与处理-MATLAB语言及应用.长沙:
国防科技大学出版社
[5]张宗橙,张玲华,曹雪虹编著.数字图像处理与应用。
南京:
东南大学出版社,1997
心得体会
通过对该课程的学习,我对数字通信理论有了更进一步的理解;通过对该数字滤波器的设计,我也了解了数字滤波器的基本结构和基本特性,而且还掌握了基本的撰写论文的形式和思路。
作为一个电子信息工程专业的学生,数字信号处理是我们的重要专业课程,是我们将来从事通信事业的基本保障。
通过对作为该论文的重要部分—MATLAB的运用,大大提高了我们对集计算,编程与绘图于一体的该应用软件的运用能力。
MATLAB包含的几十个工具箱,覆盖了通信,自动控制,信号处理,图象处理,财经,化工,生命科学等科学技术领域,汲取了当今世界这些领域的最新研究成果,已经成为从事科学研究和工程设计不可缺少的工具软件。
该课程设计将数字信号处理的有关教学内容和MATLAB语言紧密,有机地结合起来,使我们在学习基础理论知识的同时学会了应用MATLAB,在学习应用MATLAB的同时,加深了对基本知识的理解,增强了我们的计算机应用能力,提高了学习效果。
总之,无论是从教学知识掌握出发,还是从对MATLAB的应用出发,通过这次学习,我不但掌握了基于Blackman窗的FIR数字带通滤波器设计的基本知识及其实际应用的技巧,还提高了自己的编程和写报告的能力,收获不小,也巩固了所学知识。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Blackman FIR 数字 滤波器 设计