资源描述
福建农林大学金山学院
信息工程系
课程设计报告
课程名称:
数字信号处理
课程设计题目:
用布莱克曼窗设计数字带通滤波器
姓 名:
系:
信息与机电工程
专 业:
电子信息工程
年 级:
学 号:
指导教师:
职 称:
年月日
课程设计结果评定
评语:
评定指标
等级
评分成绩
1.设计方案正确,具有可行性、创新性(20分)
优
良
中
差
2.独立进行实验工作;能运用所学知识和技能去发现与解决实际问题;能正确、科学地分析和处理实验数据;设计结果正确(40分)
优
良
中
差
3.态度认真、学习刻苦、遵守纪律(20分)
优
良
中
差
4.设计报告的规范化、参考文献充分(不少于5篇)(20分)
优
良
中
差
评定结果
符合
总成绩
(100分)
不符合
成绩:
指导教师签字:
任务下达日期:
评定日期:
目 录
1课程设计的目的…………………………………………………………………1
2课程设计的要求…………………………………………………………………1
3课程设计报告内容………………………………………………………………1
3.1数字滤波器简介……………………………………………………………1
3.2 FIR滤波器的设计原理……………………………………………………2
3.3窗函数法设计原理…………………………………………………………4
3.4用窗函数法设计FIR滤波器的步骤………………………………………5
3.5设计题目及程序的代码……………………………………………………6
3.6设计并用matlab仿真后的结果…………………………………………9
4总结……………………………………………………………………………10
用布莱克曼窗设计数字带通滤波器
1.课程设计的目的
通过自己设计并建立数字信号处理系统,掌握数字信号处理系统的的基本原理,加深对数字信号处理的认识,提高实际应用、动手能力。学会使用MATLAB仿真工具,使得计算机模拟实现对数字信号处理系统的仿真;掌握FIR滤波器的参数选择及设计方法;提高Matlab下的程序设计能力及综合应用能力;
理解用窗函数设计数字滤波器的基本思想。
2.课程设计的要求
1.巩固和加深对数字信号处理课程的基本知识的理解和掌握;
2.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;
3.学会使用MATLAB,掌握MATLAB的程序设计方法;
4.综合运用数字信号处理的基本理论,基本概念,基本方法进行频谱分析和IIR滤波器以及FIR滤波器的设计;
5.了解和掌握用MATLAB实现IIR和FIR滤波器的设计方法、过程;
6.设计的题目要求达到一定工作量,并具有一定的深度和难度;
7.能独立编写出课程设计说明书,准确分析设计结果。
3.课程设计报告内容
3.1 数字滤波器简介
数字滤波器(Digital Filter)是由数字乘法器、加法器和延时单元组成的一种装置。其功能是对输入离散信号的数字代码进行运算处理,以达到改变信号频谱的目的。由于电子计算机技术和大规模集成电路的发展,数字滤波器已可用计算机软件实现,也可用大规模集成数字硬件实时实现。数字滤波器广泛用于数字信号处理中,如电视、VCD、音响等。
数字滤波器是一个离散时间系统(按预定的算法,将输入离散时间信号转换为所要求的输出离散时间信号的特定功能装置)。应用数字滤波器处理模拟信号时,首先须对输入模拟信号进行限带、抽样和模数转换。数字滤波器输入信号的抽样率应大于被处理信号带宽的两倍,其频率响应具有以抽样频率为间隔的周期重复特性,且以折叠频率即1/2抽样频率点呈镜像对称。为得到模拟信号,数字滤波器处理的输出数字信号须经数模转换、平滑。数字滤波器具有高精度、高可靠性、可程控改变特性或复用、便于集成等优点。
数字滤波器在语言信号处理、图像信号处理、医学生物信号处理以及其他应用领域都得到了广泛应用。数字滤波器有低通、高通、带通、带阻等类型。它可以是时不变的或时变的、因果的或非因果的、线性的或非线性的。应用最广的是线性、时不变数字滤波器。
3.2 FIR滤波器的设计原理
滤波器的单位脉冲响应h(n)长度为N,那么
H(z)是z-1 的N-1次多项式(FIR滤波器的阶数是N-1)
该系统在z平面上有N-1个零点,在z=0处有一个N-1重极点。系统永远稳定。
1. 线性相位FIRDF
设FIRDF的单位脉冲响应h(n)长度为N,则其频率响应函数为
H(ejω)=Hg(ω)ejθ(ω)
式中, Hg(ω)称为幅度特性函数,是ω的实函数(可以取负值),与| H(ejω) |不同;θ(ω)称为相位特性函数。
2. 线性相位条件对FIRDF时域约束
3. 线性相位FIR滤波器幅度特性Hg(ω)的特点
h(n)对称性
h(n)长度N
幅度函数Hg(ω)
相位特性θ(ω)
可以设计的滤波器类型
第一类线性相位
偶对称
奇数
ω=0, π, 2π三点偶对称
四种滤波器都可设计
第一类线性相位
偶对称
偶数
关于ω=π奇对称,关于ω=0, 2π偶对称
不能实现高通和带阻滤波特性。
第二类线性相位
奇对称
奇数
ω=0, π, 2π三点奇对称
只能设计带通滤波器
第二类线性相位
奇对称
偶数
关于ω=π偶对称,关于ω=0, 2π奇对称
可设计高通、带通滤波器,不能设计低通和带阻
线性相位FIR数字滤波器的零点分布特点
线性相位FIR数字滤波器的零点分布
3.3 窗函数法设计原理
一个理想数字滤波器的频率响应为Hd(ejω),对应的时域序列为滤波器的单位脉冲响应hd(n),是无限长非因果的。设计FIR-DF就是要设计一个数字系统,去逼近理想数字滤波器的频率响应为Hd(ejω)。窗函数法就是对无限长的hd(n)加窗(用窗函数与之相乘,从而使之变成有限长的)下面主要介绍课程设计中用到的布莱克曼窗。
其频谱函数为:
其幅度函数为
这样其幅度函数由五部分组成。它们都是移位不同,且幅度也不同的Wrg(w)函数,使旁瓣再进一步抵消。旁瓣峰值幅度进一步增加,其幅度谱主瓣宽度是矩形窗的3倍。布莱克曼窗的四种波形如下图所示。参数为:a n=-57 dB; ΔB=12π/N;
a s=-74 dB。
布莱克曼窗的四种波形
3.4 用窗函数法设计FIR滤波器的步骤
(1) 选择窗函数类型和长度,写出窗函数w(n)表达式。根据阻带最小衰减选择窗函数w(n)的类型,再根据过渡带宽度确定所选窗函数的长度N。
(2) 构造希望逼近的频率响应函数Hd(ejω)。
(3) 计算:
或者可以直接写出低通单位脉冲响应
(4) 加窗得到设计结果:
h(n)=hd(n)w(n)
3.5 设计题目及程序的代码
用窗函数法设计数字带通滤波器:下阻带边缘:Ws1=0.2pi,As=60dB
下通带边缘:Wp1=0.35pi,Rp=1dB 上通带边缘:Wp2=0.65pi,Rp=1dB
上阻带边缘:Ws2=0.8pi,As=60dB
根据窗函数最小阻带衰减的特性。以及关参照窗函数的基本参数表,选择布莱克曼窗可达到75dB最小阻带衰减,其过渡带为11pi/N。
以下为用布莱克曼窗设计数字带通滤波器的程序代码:
clear all;
wp1=0.35*pi;
wp2=0.65*pi;
ws1=0.2*pi;
ws2=0.8*pi;
As=60;
tr_width=min((wp1-ws1),(ws2-wp2)); %过渡带宽度
M=ceil(11*pi/tr_width)+1 %滤波器长度
M=75
n=[0:1:M-1];
wc1=(ws1+wp1)/2; %理想带通滤波器的下截止频率
wc2=(ws2+wp2)/2; %理想带通滤波器的上截止频率
hd=ideal_lp(wc2,M)-ideal_lp(wc1,M);
w_bla=(blackman(M))'; %布莱克曼窗
h=hd.*w_bla; %截取得到实际的单位脉冲响应
[db,mag,pha,grd,w]=freqz_m(h,[1]); %计算实际滤波器的幅度响应
delta_w=2*pi/1000;
Rp=-min(db(wp1/delta_w+1:1:wp2/delta_w)) %实际通带纹波
As=-round(max(db(ws2/delta_w+1:1:501))) %实际通带纹波
As=75
%plots
subplot(2,2,1);
stem(n,hd);
title('ideal impulse response') %理想单位脉冲响应hd(n)
axis([0 M-1 -0.4 0.5]);
xlabel('n');
ylabel('hd(n)')
subplot(2,2,2);
stem(n,w_bla);
title('blackman window') %布莱克曼窗w(n)
axis([0 M-1 0 1.1]);
xlabel('n');
ylabel('w(n)')
subplot(2,2,3);
stem(n,h);
title('actual impulse response') %实际单位脉冲响应hd(n)
axis([0 M-1 -0.4 0.5]);
xlabel('n');
ylabel('h(n)')
subplot(2,2,4);
plot(w/pi,db);
axis([0 1 -150 10]);
title('magnitude response in db'); %幅度响应(dB)
grid;
xlabel('frequence in pi units');
ylabel('decibles')
在设计过程中调用的子程序:
function hd=ideal_lp(wc,M);
%计算理想低通滤波器的脉冲响应
%------------------------------------
%[hd]=ideal_lp(wc,M)
%hd=理想脉冲响应0到M-1
%wc=截止频率
% M=理想滤波器的长度
%
alpha=(M-1)/2;
n=[0:1:(M-1)];
m=n-alpha+eps; %加上一个很小的值eps避免除以0的错误情况出现
hd=sin(wc*m)./(pi*m);
以及
function [db,mag,pha,grd,w]=freqz_m(b,a);
%Modified version of freqz subroutine
%-------------------------------------
%[db,mag,pha,grd,w]=freqz_m(b,a);
% db=Relative magnitude in dB computed over 0 to pi radians
% mag=absolute magnitude computed over 0 to pi radians
% pha=Phase response in radians over 0 to pi radians
% grd=Group delay over 0 to pi radians
% w=501 frequency samples between 0 to pi radians
% b=numerator polynomial of H(z) (for FIR: b=h)
% a=denominator polynomial of H(z) (for FIR: a=[1])
%
[H,w]=freqz(b,a,1000,'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);
3.6 设计并用matlab仿真后的结果
4.总结
设计带通滤波器是首先要计算出过渡带。然后查表得到不同窗函数所需要的阶数,不同的窗函数所设计的滤波器的形状各有差异。所以实际应用中应根据实际情况,折中处理,兼顾各项指标。
通过这次设计,对数字带通滤波器有了更深刻的理解。熟悉matlab的运行环境,其中对于布莱克曼窗的原理也有了更透彻的理解。初步掌握了matlab语言在数字信号处理中的一些基本库函数的调用和编写基本程序等应用。学会了数字滤波器的设计的一般步骤及处理后的结果。掌握了窗函数的基本知识及实际应用技巧。进一步认识到了将所学的东西运用于实践的重要性。收获颇多。
参考文献
(1)数字信号处理 丁玉美 西安电子科技大学出版社
(2)数字信号处理及MATLAB实现 余成波 清华大学出版社
(3)数字信号处理教程——matlab释义与实现 陈怀琛 电子工业出版社
(4)matlab7辅助信号处理技术与应用 飞思科技产品研发中心 电子工业出版社
10
展开阅读全文