XXXX大学课程设计报告学生:xxx 学号:xxx专业班级:电子信息工程课程名称:数字信号处理课程设计学年学期20XX——20XX 学年第X学期指导教师:xxx2014年6月课程设计成绩评定表目录1. 窗函数设计低通滤波器1.1设计目的 (1)1.2设计原理推导与计算 (1)1.3设计容与要求 (2)1.4设计源程序与运行结果 (3)1.5思考题 (10)2. 用哈明窗设计FIR带通数字滤波器2.1设计要求 (14)2.2设计原理和分析 (14)2.3详细设计 (15)2.4调试分析及运行结果 (15)2.5心得体会 (17)参考文献 (17)1.窗函数设计低通滤波器1.1设计目的1. 熟悉设计线性相位数字滤波器的一般步骤。
2. 掌握用窗函数法设计FIR 数字滤波器的原理和方法。
3. 熟悉各种窗函数的作用以及各种窗函数对滤波器特性的影响。
4. 学会根据指标要求选择合适的窗函数。
1.2设计原理推导与计算如果所希望的滤波器的理想的频率响应函数为()ωj d e H ,则其对应的单位脉冲响应为()()ωπωωππd e e H n h j j d d ⎰-=21 (4.1)窗函数设计法的基本原理是设计设计低通FIR 数字滤波器时,一般以理想低通滤波特性为逼近函数()ωj e H ,即()⎪⎩⎪⎨⎧≤<≤=-πωωωωωαωc c j jd ,,e e H 0,其中21-=N α()()()[]()a n a n d e e d e e H n h c j j j j d d cc--===⎰⎰---πωωπωπωαωωωαωππωsin 2121用有限长单位脉冲响应序列()n h 逼近()n h d 。
由于()n h d 往往是无限长序列,而且是非因果的,所以用窗函数()n ω将()n h d 截断,并进行加权处理,得到: ()()()n n h n h d ω= (4.2)()n h 就作为实际设计的FIR 数字滤波器的单位脉冲响应序列,其频率响应函数()ωj e H 为()()nj N n j en h eH ωω∑-==10(4.3)式中,N 为所选窗函数()n ω的长度。
用窗函数法设计的滤波器性能取决于窗函数()n ω的类型及窗口长度N 的取值。
设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度N 。
各种类型的窗函数可达到的阻带最小衰减和过渡带宽度见表(一)。
表(一) 各种窗函数的基本参数这样选定窗函数类型和长度N 之后,求出单位脉冲响应()()()n n h n h d ω•=,并按照式(4.3)求出()ωj e H 。
()ωj e H 是否满足要求,如果()ωj e H 不满足要求,则要重新选择窗函数类型和长度N ,再次验算,直至满足要求。
1.3设计容与要求(一)设计要求:1. 学会计算滤波器各项性能指标及如何来满足给定的指标要求。
2. 用MATLAB 语言编程实现给定指标要求的滤波器的设计。
3. 熟悉MATLAB 语言,独立编写程序。
4. 设计低通FIR 滤波器的指标: 通带最大波动0.25,p R dB =,0.2p ωπ=阻带最小衰减 50,s A dB =,0.3s ωπ=(二)、设计容:1.熟悉各种窗函数,在MATLAB 命令窗下浏览各种窗函数,绘出(或打印)所看到的窗函数图。
2.编写计算理想低通滤波器单位抽样响应hd(n)的m 函数文件ideal.m 。
3. 编写计算N 阶差分方程所描述系统频响函数()j H e ω的m 函数文件fr.m 。
4.根据指标要求选择窗函数的形状与长度N 。
(至少选择两种符合要求的窗函数及其对应的长度)。
5.编写.m 程序文件,通过调用ideal.m 和fr .m 文件,计算你设计的实际低通FIR 滤波器的单位抽样响应h(n)和频率响应()j H e ω,打印在频率区间[O ,π]上的幅频响应特性曲线()~j H e ωω,幅度用分贝表示。
6.验证所设计的滤波器是否满足指标要求。
1.4设计的源程序及运行结果:1、利用MATLAB 窗口观察各种窗函数:%巴特利特窗w=bartlett(20);subplot(3,2,1);plot(w);stem(w,'y');%'y'表示黄色%stem表示以离散图输出title('巴特利特床窗');xlabel('n');%横坐标为n ylabel('w(n)');%纵坐标为w(n) %布莱克曼窗w=blackman(20);subplot(3,2,2);plot(w);stem(w,'b');%'b'表示蓝色title('布莱克曼窗');xlabel('n');ylabel('w(n)');%矩形窗w=boxcar(20);subplot(3,2,3);plot(w);stem(w,'r'); title('矩形窗');xlabel('n');ylabel('w(n)');%海明窗w=hamming(20);plot(w);stem(w,'m');%'m'表示紫色title('海明窗');xlabel('n');ylabel('w(n)');%汉宁窗w=hanning(20); subplot(3,2,5);plot(w);stem(w,'g');%'g'表示绿色title('汉宁窗');xlabel('n');ylabel('w(n)');%凯泽窗beta=5.6533;w=kaiser(20,beta); subplot(3,2,6);plot(w);stem(w,'k');%'k'表示黑色title('凯泽窗,beta=5.6533'); xlabel('n'); ylabel('w(n)');常用窗函数的图形2、理想低通滤波器单位抽样响应hd(n)的m函数文件ideal.m。
function hd=ideal(wc,M)%理想低通滤波器计算%hd为0到M-1之间的理想脉冲响应%wc为截止频率%M为理想滤波器的长度alpha=(M-1)/2;n=0:M-1;m=n-alpha+eps;hd=sin(wc*m)./(pi*m);3、N阶差分方程所描述的系统频响函数的m函数文件fr.m。
function[db,mag,pha,gfd,w]=fr(b,a)%求解系统响应%db为相位振幅(db)%mag为绝对振幅%pha为相位响应%grd为群延时%w为频率样本点矢量%b为Ha(z)分析多项式系数(对FIR而言,b=h)%a为Hz(z)分母多项式系数(对FIR而言,a=1)[H,w]=freqz(b,a,1000,'whole');H=(H(1:501))';w=(w(1:501))';mag=abs(H);db=20*log10((mag+eps)/max(mag));pha=angle(H);gfd=grpdelay(b,a,w);4、实际低通滤波器FIR:%用海明窗设计低通滤波器wp=0.2*pi;ws=0.3*pi;tr_width=ws-wp;disp(['海明窗设计低通滤波器参数:']);M=ceil(6.6*pi/tr_width)+1;disp(['滤波器的长度为',num2str(M)]);n=0:M-1;wc=(ws+wp)/2; %理想LPF的截止频率hd=ideal(wc,M);w_ham=(hamming(M))';h=hd.*w_ham;[db,mag,pha,gfd,w]=fr(h,[1]);delta_w=2*pi/1000;Rp=-(min(db(1:1:wp/delta_w+1))); %求出实际通带波动disp(['实际带通波动为',num2str(Rp)]);As=-round(max(db(ws/delta_w+1:1:501))); %求出最小阻带衰减disp(['最小阻带衰减为-',num2str(As)],’db’);%绘图subplot(1,1,1)subplot(2,6,1)stem(n,hd);title('理想冲击响应');axis([0 M-1 -0.1 0.3]);ylabel('hd(n)');subplot(2,6,2)stem(n,w_ham);title('海明窗');axis([0 M-1 0 1.1]); ylabel('w(n)');subplot(2,6,7)stem(n,h);title('实际冲激响应');axis([0 M-1 -0.1 0.3]); xlabel('n');ylabel('h(n)');subplot(2,6,8)plot(w/pi,db);title('幅度响应(db)'); axis([0 1 -100 10]); grid;xlabel('以pi为单位的频率'); ylabel('分贝数');图(1)海明窗设计的FIR 海明窗设计低通滤波器参数:滤波器的长度为67实际带通波动为0.03936最小阻带衰减为-52db%用布莱克曼窗设计低通滤波器wp=0.2*pi;ws=0.3*pi;tr_width=ws-wp;disp(['布莱克曼窗设计低通滤波器的参数:']);M=ceil(11.0*pi/tr_width)+1;disp(['滤波器的长度为',num2str(M)]);n=0:M-1;%理想LPF的截止频率wc=(ws+wp)/2;hd=ideal(wc,M);w_bla=(blackman(M))';h=hd.*w_bla;[db,mag,pha,gfd,w]=fr(h,[1]);delta_w=2*pi/1000;Rp=-(min(db(1:1:wp/delta_w+1))); %求出实际通带波动disp(['实际带通波动为',num2str(Rp)]);As=-round(max(db(ws/delta_w+1:1:501))); %求出最小阻带衰减disp(['最小阻带衰减-',num2str(As)],’db’);%绘图subplot(2,6,3)stem(n,hd);title('理想冲击响应');axis([0 M-1 -0.1 0.3]);ylabel('hd(n)');subplot(2,6,4)stem(n,w_bla);title('布莱克曼窗');axis([0 M-1 0 1.1]);ylabel('w(n)');subplot(2,6,9)stem(n,h);title('实际冲激响应');axis([0 M-1 -0.1 0.3]);xlabel('n');ylabel('h(n)');subplot(2,6,10)plot(w/pi,db);title('幅度响应(db)');axis([0 1 -100 10]);grid;xlabel('以pi为单位的频率');ylabel('分贝数');图(2)布莱克曼窗设计的FIR 布莱克曼窗设计低通滤波器的参数:滤波器的长度为111实际带通波动为0.0033304最小阻带衰减为-73db5、技术指标比较:(1)海明窗设计低通滤波器参数:滤波器的长度为67实际带通波动为0.03936最小阻带衰减为-52db(2)布莱克曼窗设计低通滤波器的参数:滤波器的长度为111实际带通波动为0.0033304最小阻带衰减为-73db在相同的技术指标下用布莱克曼窗设计的低通滤波器实际带通波动实际带通波动最小,最小阻带衰减,滤波器的长度最大;海明窗和凯泽窗最小阻带衰减差不多,滤波器的长度页差不多,但是海明窗实际波动小于凯泽窗;所以用布莱克曼窗用设计的FIR最逼近理想单位冲击响应。