用窗函数法设计FIR数字低通滤波器
用窗函数设计FIR数字低通滤波器
用MATLAB设计FIR数字滤波器一、实验原理:1、用窗函数法设计FIR数字滤波器2、各种窗函数特性的比较3、用窗函数法设计FIR数字低通滤波器4、用窗函数法设计FIR数字高通滤波器二、实验内容选择合适的窗函数设计FIR数字低通滤波器,要求:ωp=0.2π,R p=0.05dB;ωs=0.3π,A s=40dB。
描绘该滤波器的脉冲响应、窗函数及滤波器的幅频响应曲线和相频响应曲线。
wp=0.2*pi;ws=0.3*pi;deltaw=ws-wp;N0=ceil(6.2*pi/deltaw);N=N0+mod(N0+1,2);windows=(hanning(N))';wc=(ws+wp)/2;hd=ideal_lp(wc,N);b=hd.*windows;[db,mag,pha,grd,w]=freqz_m(b,1);n=0:N-1;dw=2*pi/1000;Rp=-(min(db(1:wp/dw+1)));As=-round(max(db(ws/dw+1:501)));subplot(2,2,1);stem(n,b);axis([0,N,1.1*min(b),1.1*max(b)]);title(' 实际脉冲响应');xlabel('n');ylabel('h(n)');subplot(2,2,2);stem(n,windows);axis([0,N,0,1.1]);title('窗函数特性');xlabel('n');ylabel('wd(n)'); subplot(2,2,3);plot(w/pi,db);axis([0,1,-80,10]);title('幅度频率响应'); xlabel('频率');ylabel('H(e^{j\omega})');set(gca,'XTickMode','manual','XTick',[0,wp/pi,ws/pi,1]);set(gca,'YTickMode','manual','YTick',[-50,-20,-3,0]);gridsubplot(2,2,4);plot(w/pi,pha);axis([0,1,-4,4]);title('相位频率响应'); xlabel('频率');ylabel('\phi(\omega)');set(gca,'XTickMode','manual','XTick',[0,wp/pi,ws/pi,1]);set(gca,'YTickMode','manual','YTick',[-3.1416,0,3.1416,4]);grid2、用凯塞窗设计一个FIR数字高通滤波器,要求:ωp=0.3π,R p=0.1dB;ωs=0.2π,A s=50dB。
数字信号处理实验——用窗函数设计FIR滤波器
实验四 用窗函数设计FIR 滤波器一、 实验目的1、熟悉FIR 滤波器设计的基本方法。
2、掌握用窗函数设计FIR 数字滤波器的原理及方法,熟悉相应的计算机高级语言编程。
3、熟悉线性相位FIR 滤波器的幅频特性和相位特性。
4、了解各种不同窗函数对滤波器性能的响应。
二、 实验原理和方法窗函数法设计的任务在于寻找一个可实现有限长单位脉冲响应的传递函数H(e jw )=∑-=10N n h(n)e -jwn 去逼近h d (n)=1/2π⎰π20H d (e jw )e jwn dw即h(n)=h d (n)w (n ) (一)几种常用的窗函数1、矩形窗 w(n)=R N (n)2、Hanning 窗 w(n)=0.5[1-cos(2πn /N-1)]R N (n)3、Hamming 窗 w(n)=[0.54-0.46cos(2πn /N-1)]R N (n)4、Blackman 窗 w(n)=[0.42-0.5 cos(2πn /N-1)+0.08 cos(4πn /N-1)] R N (n)5、Kaiser 窗 w(n)=I 0(β(1-[(2n /(N-1))-1]2)½)/I 0(β)(二)窗函数法设计线性相位FIR 滤波器的步骤1、确定数字滤波器的性能要求。
确定各临界频率{w k }和滤波器单位脉冲响应长度N 。
2、根据性能要求和N 值,合理地选择单位脉冲响应h(n)有奇偶对称性,从而确定理想频率响应h d (e jw)的幅频特性和相位特性。
3、用傅里叶反变换公式求得理想单位脉冲响应h d (n)。
4、选择适当的窗函数W (n ),求得所设计的FIR 滤波器单位脉冲响应。
5、用傅里叶变换求得其频率响应H (e jw),分析它的幅频特性,若不满足要求,可适当改变窗函数形式或长度N ,重复上述过程,直至得到满意的结果。
三、实验内容和步骤1、分别用矩形窗、Hanning 窗、Hamming 窗、Blackman 窗、Kaiser 窗(β=8.5)设计一个长度N=8的线性相位FIR 滤波器。
采用窗函数法设计一个数字FIR低通滤波器
采用窗函数法设计一个数字FIR低通滤波器悬赏分:0 - 解决时间:2007-12-19 19:45采用窗函数法设计一个数字FIR低通滤波器,其技术指标为:wp=0.2pi,ws=0.3pi,rp0.25db,as=50db,并画出其频率响应图。
提问者:江水西岸- 一级最佳答案结合衰减和过度带,可选择哈明窗。
尽管在设计中,没有使用通带波动值Rp,但必须检查设计的实际波动,验证它是否确实在给定容限内。
对应的MATLAB程序为:wp= 0.2* pi; ws = 0.3 *pi;tr_width = ws –wp; %确定过度带宽M = ceil (6.6* pi /tr_width) +1 ;% 确定滤波器阶数,ceil是向上取整函数n = [0: 1: M-1];wc = (ws +wp ) /2; %理想低通的截止频率hd = ideal _lp (wc, M);w_ham = (hamming (M))’;h = hd .* w_ham;[db, mag, pha, grd, w]=freqz_m (h, [1]);delta _w =2*pi/1000;Rp= - (min (db(1:1: wp/ delta _w +1))); %实际通带波动As= - round (max (db (ws/delta_w +1: 1: 501 ))) ;% 最小阻带衰减%画图(见图1-5-1)subplot (2,2,1); stem(n, hd ); title (‘理想冲激响应’);axis ([0 ,M-1, -0.1 , 0.3]); xlabel (‘n’); ylabel (‘hd(n)’ );subpl ot (2,2,2); stem(n, w_ham ); title (‘哈明窗’);axis ([0 ,M-1, 0 , 1.1]); xlabel (‘n’); ylabel (‘w(n)’ );subplot (2,2,3); stem(n, h ); title (‘实际冲激响应’);axis ([0 ,M-1, -0.1 , 0.3]); xlabel (‘n’); ylabel (‘h(n)’ );subplot (2,2,4); plot (w/pi, db ); title (‘幅度响应(单位:dB)’); gridaxis ([0 ,1, -100 , 10]); xlabel (‘频率(单位:pi)’); ylabel (‘分贝数’ );根据以上代码,可计算出滤波器阶数M=67,实际的阻带衰减As=52dB,实际的通带波动为Rp=0.0394 dB,满足设计技术指标。
用窗函数法设计低通FIR滤波器
%用窗函数法设计低通FIR滤波器clear;close all;clc;wc=0.3*pi;wp=0.25*pi;ws=0.35*pi;disp('窗函数选择哈明窗');%N=ceil(4*pi/(ws-wp));N0=ceil(8*pi/(ws-wp)); %选择窗函数为哈明窗N=N0+mod(N0+1,2); %N个数为奇数alpha=(N-1)/2;n=0:N-1;m=n-alpha+eps;hd=sin(wc*m)./(pi*m);%windows=ones(1,N);windows=(0.54-0.46*cos(2*pi*n/(N-1))).*ones(1,N);%windows=hamming(N);%b=hd.*windows';b=hd.*windows;[H w]=freqz(b,1);dBH=20*log10((abs(H)+eps)/max(abs(H)));subplot(1,2,1);plot(w/pi,dBH);xlabel('频率(单位:\pi)');ylabel('H(e^{j\omega})');title('幅频响应');axis([0,1,-150,10]);grid;set(gca,'XTickMode','manual','XTick',[0 wp/pi wc/pi ws/pi 1]); set(gca,'YTickMode','manual','YTick',[-50 -30 -3 0]);subplot(1,2,2);plot(w/pi,unwrap(angle(H)));grid;xlabel('频率(单位:\pi)');ylabel('\phi');title('相频响应');set(gca,'XTickMode','manual','XTick',[0 wp/pi wc/pi ws/pi 1]); set(gca,'YTickMode','manual','YTick',[0]);f1=50;f2=100;phi1=0;phi2=0;fs=500;T=1;t=0:1/fs:T;A=1;y0=A*sin(2*pi*f1*t+phi1)+A*sin(2*pi*f2*t+phi2);M=length(t);noise=0.5*randn(1,M);f=y0+noise;y=filter(b,1,f);xx=-fs/2:1/T:fs/2;ff=abs(1/fs*fftshift(fft(f)));yy=abs(1/fs*fftshift(fft(y)));figure;subplot(1,2,1);plot(t,f);xlabel('t/s');ylabel('f');title('信号+噪声时域波形');subplot(1,2,2);plot(t,y);xlabel('t/s');ylabel('y');title('滤波后时域波形');figure;subplot(1,2,1);plot(xx,ff);xlabel('f/Hz');ylabel('ff');title('信号+噪声频谱图');subplot(1,2,2);plot(xx,yy);xlabel('f/Hz');ylabel('yy');title('滤波后频谱图');Ps=A^2;Pn1=sum(noise.^2)/M;SNR1=10*log10(Ps/Pn1);disp('输入信噪比如下:'); SNR1yy=filter(b,1,noise); Pn2=sum(yy.^2)/M;SNR2=10*log10(Ps/Pn2); disp('输出信噪比如下:'); SNR2disp('信噪比增益如下:'); SNR2-SNR1。
(完整word版)窗函数法设计FIR数字滤波器
数字信号处理实验报告---实验4窗函数法设计FIR数字滤波器一、实验目的1.了解常用的几种窗函数,能正确选择适当的窗函数进行滤波器设计;2.掌握窗函数法设计数字低通滤波器。
二、实验原理1.常用的窗函数:矩形窗函数为boxcar和rectwin,调用格式:w= boxcar(N)w= rectwin(N)其中N是窗函数的长度,返回值w是一个N阶的向量。
三角窗函数为triang,调用格式:w= triang(N)汉宁窗函数为hann,调用格式:w= hann(N)海明窗函数为hamming,调用格式:w= hamming(N)三、实验内容题一:生成四种窗函数:矩形窗、三角窗、汉宁窗、海明窗,并观察其频率响应。
题二:根据下列技术指标,设计一个FIR数字低通滤波器:wp=0.2π,ws=0.4π,ap=0.25dB,as=50dB,选择一个适当的窗函数,确定单位冲激响应,绘出所设计的滤波器的幅度响应。
四、上机程序及运行结果题一:n=30;%矩形窗及其频响window1=rectwin(n);[h1,w1]=freqz(window1,1);subplot(4,2,1);stem(window1);title('矩形窗');subplot(4,2,2);plot(w1/pi,20*log(abs(h1))/abs(h1(1)));title('矩形窗频响'); %三角窗及其频响window2=triang(n);[h2,w2]=freqz(window2,1);subplot(4,2,3);stem(window2);title('三角窗');subplot(4,2,4);plot(w2/pi,20*log(abs(h2))/abs(h2(1)));title('三角窗频响'); %汉宁窗及其频响window3=hann(n);[h3,w3]=freqz(window3,1);subplot(4,2,5);stem(window3);title('汉宁窗');subplot(4,2,6);plot(w3/pi,20*log(abs(h3))/abs(h3(1)));title('汉宁窗频响'); %海明窗频响window4=hamming(n);[h4,w4]=freqz(window4,1);subplot(4,2,7);stem(window4);title('海明窗');subplot(4,2,8);plot(w4/pi,20*log(abs(h4))/abs(h4(1)));title('海明窗频响');题二:%理想低通滤波器单位冲激响应函数function hd=ideal_lp1(wc,N);alpha=(N-1)/2;n=0:1:N-1;m=n-alpha+eps;hd=sin(wc*m)./(pi*m);%滤波器幅值、相位响应函数function[db,mag,pha,w]=freqz_m2(b,a);%db:相对幅值响应%mag:绝对幅值响应%pha:相位响应%w:采样频率%b:系统函数H(Z)的分子项(对FIR,b=h)%a:系统函数H(Z)的分母项(对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);%主程序clear all;wp=0.2*pi;ws=0.4*pi;tr_wdith=ws-wp;N=ceil(6.6*pi/tr_wdith)+1;n=0:1:N-1;wc=(ws+wp)/2;%理想低通滤波器的截止频率hd=ideal_lp1(wc,N);%理想低通滤波器的单位冲激响应w_ham=(hamming(N))';%海明窗h=hd.*w_ham;%截取得到实际的单位脉冲响应[db,mag,pha,w]=freqz_m2(h,[1]);%计算实际滤波器的幅度响应delta_w=2*pi/1000;ap=-(min(db(1:1:wp/delta_w+1)));%实际带通波纹as=-round(max(db(ws/delta_w+1:1:501)));%实际阻带波纹subplot(221);stem(n,hd);title('理想单位脉冲响应hd(n)'); subplot(222);stem(n,w_ham);title('海明窗w(n)');subplot(223);stem(n,h);title('实际单位脉冲响应hd(n)'); subplot(224);stem(w/pi,db);title('幅度响应(dB)');axis([0,1,-100,10])五、实验总结及心得。
FIR数字低通滤波器的(汉宁)窗函数法设计
)(9cos 15.0)(12cos 15.0)(1919n R n n R N n n w ⎥⎦⎤⎢⎣⎡⎪⎭⎫ ⎝⎛-=⎥⎦⎤⎢⎣⎡⎪⎭⎫ ⎝⎛--=ππ2.3进行语音信号的采集(1)按“开始”-“程序”-“附件”-“娱乐”-“录音机”的顺序操作打开Window s系统中的录音机软件。
如图1所示。
图1 wi ndows 录音机(2)用麦克风录入自己的声音信号并保存成wav 文件。
如图2所示。
图2 保存文件保存的文件按照要求如下:① 音信号文件保存的文件名为“y uxueji ao.wav ”。
②语音信号的属性为“8.000KH z,8位,单声道 7KB /秒” ,其它选项为默认。
2.4语音信号的分析将“yu xuejiao .wav ”语音文件复制到计算机装有Ma tlab 软件的磁盘中相应Mat lab目录中的“work ”文件夹中。
打开Matlab 软件,在菜单栏中选择“File ”-图3语音信号的截取处理图在图3中,其中第一个图为原始语音信号;第二个图是截短后的信号图。
图4频谱分析图其中第二个图是信号的FFT 结果,其横坐标的具体值是X (k)中的序号k;第三个图是确定滤波频率范围的参考图,其横坐标的具体值应当是遵循DFT 定义式和频率分辨率求得的:∑-===10)()]([)(N n k N W n x n x DFT k X π当k等于0时, 020j kn Njk knNe eW ==⋅-=π,从数字角频率上看,对应的正好是0=ω即直流的位置,也就是说,在取滤波频段时,当将主要能量(即红色框的部分)保留,其余频段部分的信号滤除。
)]([)(n x DFT k X =相当于是信号)(n x 的实际频谱)]([)(n x DFT ej X w =采样,而)(n x 又是连续时间语音信号)(t x 的采样。
)(k X 的每两个相邻取值之间的频率间隔大小对应到语音信号)(n x 的频谱中去,其频率间隔大小正好是采样结果的长度采样速率===∆L f f f s det f ∆称频率分辨率,其中Hz f s 8000=,10000=L ,p2=sum(s2.^2)-sum(s1.^2);SNR1=10*log10(p1/p2);p3=sum(s4.^2)/8000;p4=sum(s3.^2)/8000-sum(s4.^2)/8000;SNR2=10*log10(p3/p4);2.6 噪声叠加图5 语音信号与加噪声后语音信号对比图五为语音信号与加噪声后语音信号对。
实验六用窗函数法设计FIR滤波器分析解析
实验六用窗函数法设计FIR滤波器分析解析一、引言数字滤波器是数字信号处理中的重要组成部分。
滤波器可以用于去除噪声、调整频率响应以及提取感兴趣的信号。
有许多方法可以设计数字滤波器,包括窗函数法、频域法和优化法等。
本实验将重点介绍窗函数法设计FIR滤波器的原理和过程。
二、窗函数法设计FIR滤波器窗函数法是设计FIR滤波器的一种常用方法。
其基本原理是将滤波器的频率响应与理想滤波器的频率响应进行乘积。
理想滤波器的频率响应通常为矩形函数,而窗函数则用于提取有限长度的理想滤波器的频率响应。
窗函数的选择在FIR滤波器的设计中起着重要的作用。
常用的窗函数包括矩形窗、汉宁窗、汉明窗、布莱克曼窗等。
对于每种窗函数,都有不同的特性和性能指标,如主瓣宽度、副瓣抑制比等。
根据不同的应用需求,可以选择合适的窗函数。
窗函数法设计FIR滤波器的具体步骤如下:1.确定滤波器的阶数N。
阶数N决定了滤波器的复杂度,一般情况下,阶数越低,滤波器的简单度越高,但频率响应的近似程度也会降低。
2.确定滤波器的截止频率。
根据应用需求,确定滤波器的截止频率,并选择合适的窗函数。
3.根据窗函数长度和截止频率计算理想滤波器的频率响应。
根据所选窗函数的特性,计算理想滤波器的频率响应。
4.根据理想滤波器的频率响应和窗函数的频率响应,得到所需的FIR滤波器的频率响应。
将理想滤波器的频率响应与窗函数的频率响应进行乘积,即可得到所需滤波器的频率响应。
5.对所得到的频率响应进行逆傅里叶变换,得到时域的滤波器系数。
6.实现滤波器。
利用所得到的滤波器系数,可以通过卷积运算实现滤波器。
三、实验结果与分析本实验以Matlab软件为平台,利用窗函数法设计了一个低通滤波器。
滤波器的阶数为16,截止频率为500Hz,采样频率为1000Hz,选择了汉宁窗。
根据上述步骤,计算得到了所需的滤波器的频率响应和时域的滤波器系数。
利用这些系数,通过卷积运算,实现了滤波器。
为了验证滤波器的性能,将滤波器应用于输入信号,观察输出信号的变化。
实验六 用窗函数法设计FIR数字滤波器
实验六 用窗函数法设计FIR 数字滤波器一,实验目的1.掌握窗函数法设计FIR 数字滤波器的原理及具体方法;2.深入理解吉布斯现象,理解不同窗函数的特点。
二,实验内容例6.1 利用fir1函数和矩形窗设计一个N=51,截止频率ωc =0.5π的低通滤波器,画出幅频特性。
MATLAB 程序: clearN=51;wc=0.5;h=fir1(50,wc,boxcar(N)) [H,W]=freqz(h,1) plot(W/pi,abs(H));title(‘矩形窗振幅特性/dB ’);xlabel(‘相对频率’);ylabel(‘H(w)’)00.10.20.30.40.50.60.70.80.910.20.40.60.811.21.4矩形窗振幅特性/dB相对频率H (w )例6.2 利用fir1函数和布莱克曼窗设计一个N=51,截止频率为1p ω=0.3π,2p ω=0.4π的带通滤波器。
MATLAB 程序:clearN=51;wc=[0.3,0.4];h=fir1(50,wc,'bandpass',blackman(N)) [H,W]=freqz(h,1) plot(W/pi,abs(H));title('布莱克曼窗带通振幅特性/dB'); xlabel('相对频率');ylabel('H(w)')0.10.20.30.40.50.60.70.80.9100.10.20.30.40.50.60.70.80.91布莱克曼窗带通振幅特性/dB相对频率H (w )6.3.1窗函数法设计低通数字滤波器,{πωπωπωω4.0||0,||4.0,02/)(≤≤≤<-=N j e j d eH(1)N=26,分别利用矩形窗,汉宁窗和布莱克曼窗设计该滤波器,且滤波器具有线性相位。
绘出脉冲响应()n h 及滤波器的频率响应; (2)增加N ,观察过渡带和最大肩峰值的变化。
基于汉明窗函数的FIR低通滤波器设计及性能分析
基于汉明窗函数的FIR低通滤波器设计及性能分析FIR低通滤波器是一种常用的数字滤波器,用于处理数字信号中频率较低的成分,将高频成分滤除。
在设计FIR低通滤波器时,常使用汉明窗函数来实现。
本文将介绍基于汉明窗函数的FIR低通滤波器的设计方法和性能分析。
首先,要设计一个FIR低通滤波器,需要确定以下几个参数:滤波器阶数N、采样频率fs、截止频率fc和窗函数类型。
本文将以汉明窗函数为例,演示如何设计FIR低通滤波器。
1. 滤波器阶数N的确定:滤波器阶数N决定了滤波器的复杂度和性能。
一般来说,阶数越高,滤波器的性能越好,但计算复杂度也相应增加。
因此,需要在滤波器性能和计算复杂度之间做出平衡。
常用的方法是根据滤波器的截止频率和采样频率来确定阶数N。
一般可以使用公式N=4fs/fc来初步估计阶数N,然后根据实际需求进行调整。
2. 窗函数的选择:本文选择汉明窗函数作为设计FIR低通滤波器的窗函数。
汉明窗函数在频域上具有较好的副瓣抑制性能,适合用于低通滤波器设计。
3. 窗函数的定义:汉明窗函数的表达式为:w(n) = 0.54 - 0.46*c os(2πn/(N-1)), 0 ≤ n ≤ N-1其中,N为窗函数的长度,n为窗函数的离散时间索引。
4. FIR低通滤波器的设计:设计FIR低通滤波器的步骤如下:1)确定滤波器阶数N;2)选择截止频率fc;3)计算滤波器系数h(n);4)对滤波器系数h(n)进行归一化处理。
5. 滤波器系数的计算:滤波器系数h(n)的计算公式为:h(n) = wc/pi * sinc(wc*(n-(N-1)/2)/pi)其中,wc为归一化的截止频率,wc=2πfc/fs。
sinc(x)为正弦函数sin(x)/x。
6. 归一化处理:对滤波器系数h(n)进行归一化处理,即将系数乘以汉明窗函数的值。
即:hn(n) = h(n) * w(n),0 ≤ n ≤ N-17. 性能分析:设计完毕后,需要进行性能分析来评估滤波器的性能。
实验六用窗函数设计FIR滤波器
实验六用窗函数设计FIR滤波器一、引言数字滤波器是用于处理数字信号的重要工具,而FIR(Finite Impulse Response)滤波器是其中一类常见的滤波器。
在FIR滤波器中,输出信号的每个样本值仅依赖于输入信号在过去固定时间窗口内的样本值。
窗函数则是用于设计FIR滤波器的一种常见方法。
本实验将介绍如何用窗函数设计FIR滤波器,并通过一系列实验验证其性能。
二、实验目的1.了解FIR滤波器的原理和窗函数设计方法。
2.利用MATLAB工具进行FIR滤波器设计与性能评估。
3.分析不同窗函数对FIR滤波器的影响。
三、窗函数设计方法在设计FIR滤波器时,可以通过选择不同的窗函数来实现不同的频率响应。
常见的窗函数有矩形窗、汉宁窗、汉明窗、布莱克曼窗等。
在本实验中,我们将以汉宁窗为例进行讲解。
1.首先确定滤波器的截止频率和通带误差。
2.根据通带误差和滤波器的截止频率计算阶数。
3.根据阶数选择合适大小的窗口长度。
4.选择合适的窗函数,如汉宁窗。
5.计算窗函数的系数,并与理想滤波器的冲击响应相乘得到最终的滤波器系数。
四、实验步骤1.确定滤波器参数:截止频率、通带误差等。
2.根据通带误差和截止频率计算滤波器的阶数。
3.选择合适大小的窗口长度,通常选择大于滤波器阶数的2倍。
4.选择窗函数,如汉宁窗,计算窗函数的系数。
5.根据窗函数系数和截止频率计算滤波器的系数。
6.绘制滤波器的频率响应曲线。
7.利用设计好的FIR滤波器对输入信号进行滤波,并观察滤波效果。
五、实验结果与分析在本实验中,我们选择了截止频率为1kHz的低通滤波器。
首先计算滤波器的阶数,假设通带误差为0.01,根据公式可得N=3.32/((截止频率*通带误差)/采样频率)≈60。
我们选择窗口长度为120,即滤波器的阶数的两倍。
接下来选择汉宁窗作为窗函数,并计算其系数。
最后通过窗函数系数和截止频率计算得到滤波器的系数。
实验采用不同窗函数设计的FIR滤波器进行滤波,观察不同窗函数对滤波器性能的影响。
用窗函数法设计FIR数字滤波器
%实验,用窗函数法设计FIR数字滤波器close all;b=1;i=0;while(b);N=inputdlg('输入窗函数长度N');%输入函数N=str2num(N{1});%将字符串转化为数值w=inputdlg('输入逼近理想低通滤波器截止频率Wc');w=str2num(w{1});alpha=(N-1)/2;n=[0:(N-1)];m=n-alpha+eps;% eps是双精度存储下最小的比1.0大的数与1.0的差值hd= sin(w*m)./(pi*m); %得到理想低通滤波器k=menu('请选择窗口类型:','boxcar矩形窗','hamming哈明窗','hanning汉宁窗','blackman 不莱克曼窗','triang三角形窗');if k==1B=boxcar(N);string=['Boxcar矩形窗','N=',num2str(N)];else if k==2B=hamming(N); %窗函数调用string=['Hamming哈明窗','N=',num2str(N)];else if k==3B=hanning(N);string=['Hanning汉宁窗','N=',num2str(N)];else if k==4B=blackman(N);string=['Blackman不莱克曼窗','N=',num2str(N)];else if k==5B =triang(N);string=['triang三角形窗','N=',num2str(N)];endendendendendh=hd.*(B)'; %得到FIR数字滤波器[H,m]=freqz(h,[1],1024,'whole'); %求其频率响应,函数给出了滤波器的双边频率特性,是N点的mag=abs(H); %得到幅值,将变量H的绝对值(模)赋值给变量magdb=20*log10((mag+eps)/max(mag));pha=angle(H); %得到相位i=i+1;figure(i)subplot(2,2,1);n=0:N-1;stem(n,h,'.');axis([0,N-1,-0.1,0.3]);hold on;% 启动图形保持功能,此后绘制的图形将添加到当前的图形窗口中,并自动调整坐标轴的范围;n=0:N-1;x=zeros(N);plot(n,x,'-'); %-实线xlabel('n');ylabel('h(n)');title('实际低通滤波器的h(n)');text((0.3*N),0.27,string);hold off;% 关闭图形保持功能,新绘制图形将覆盖原图形subplot(2,2,2); %第二个子图plot(m/pi,db);axis([0,1,-100,0]);% 控制坐标轴的特征x y轴上下限xlabel('w/pi');%x轴标注ylabel('dB');title('衰减特性(dB)');%图形顶部标注grid;%图形网格切换subplot(2,2,3);plot(m,pha);hold on;n=0:7;x=zeros(8);plot(n,x,'-');title('相频特性');xlabel('频率(rad)');ylabel('相位(rad)');axis([0,3.15,-4,4]);subplot(2,2,4);plot(m,mag);title('幅频特性');xlabel('频率W(rad)');ylabel('幅值');axis([0,3.15,0,1.5]);text(0.9,1.2,string); %给定标注文本在图中添加的位置b=menu('Do You want To Continue ?','Yes','No');if b==2b=0;endendtemp=menu('Close All Figure ?','Yes','No');if temp==1close allend。
基于窗函数法的FIR数字低通滤波器设计.docx
基于窗函数法的FIR数字低通滤波器设计摘要数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。
根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR)滤波器和有限冲激响应(FIR)滤波器。
与IIR滤波器相比,FIR的实现是非递归的,总是稳定的;更重要的是,FIR滤波器在满足幅频响应要求的同时,可以获得严格的线性相位特性。
因此,它在高保真的信号处理,如数字音频、图像处理、数据传输、生物医学等领域得到广泛应用。
滤波器的设计是信号处理的核心问题之一。
根据FIR滤波器的原理,提出了FIR 滤波器的窗函数设计法,给出了在MATLAB环境下,用窗函数法设计FIR滤波器的过程和设计实例。
通过利用不同的窗函数方法设计FIR滤波器,对所设计的滤波器进行分析比较,得出各种方法设计的滤波器的优缺点及其不同的使用场合,从而可以在设计滤波器时能够正确的选择FIR数字滤波器的窗函数的选取及设计方法。
关键词:FIR滤波器,MATLAB,窗函数摘要 (I)1概述 (1)1.1 FIR滤波器简介 (1)1.2窗函数设计法 (1)2设计原理 (3)2.1基本原理 (3)2.2典型的窗函数 (4)3几种数字低通滤波器的窗函数设计 (7)3.1采用矩形窗设计FIR数字低通滤波器 (7)3.2采用汉明窗设计FIR数字低通滤波器 (7)3.3采用布莱克曼窗设计FIR数字低通滤波器 (9)参考文献 (10)附录 (12)1概述1.1 FIR滤波器简介FIR数字滤波器设计最简单的方法是窗函数法,通常也称为傅立叶级数法。
它是在时域进行的,因而必须由理想滤波器的频率响应H d(e JW)推导出其单位冲激响应纪(〃),在设计一个FIR数字滤波器的单位冲激响应力(〃)去逼近纪(〃)。
根据冲激响应的时域特性,数字滤波器可分为无限长冲激响应(IIR)和有限长冲激响应滤波器(FIR) , FIR的突出优点是:系统总是稳定的、易于实现线性相位、允许设计多通带(或多阻带)滤波器,但与IIR相比,在满足同样阻带衰减的情况下需要的阶数较高,滤波器的阶数越高,占用的运算时间越多,因此在满足指标要求的情况下应尽量减少滤波器的阶数。
(完整word版)用窗函数法设计FIR数字滤波器
用窗函数法设计FIR 数字滤波器一、实验目的1.掌握用窗函数法设计FIR 数字滤波器的原理和方法。
2.熟悉线性相位FIR 数字滤波器特征。
3.了解各种窗函数对滤波特性的影响。
二、实验仪器微型计算机 matlab 软件 三、实验原理和方法如果所希望的滤波器的理想频率响应函数为 )(ωj d eH ,则其对应的单位脉冲响应为)(n h d =π21ωωωππd e e H j j d )(⎰-(2-1)窗函数设计法的基本原理是用有限长单位脉冲响应序列)(n h 逼近)(n h d 。
由于)(n h d 往往是无限长序列,且是非因果的,所以用窗函数)(n ω将)(n h d 截断,并进行加权处理,得到:)(n h =)(n h d )(n ω (2-2))(n h 就作为实际设计的FIR 数字滤波器的单位脉冲响应序列,其频率响应函数)(ωj d e H 为: )(ωj d eH =∑-=-1)(N n j e n h ω (2-3)式中,N 为所选窗函数)(n ω的长度。
由第七章可知,用窗函数法设计的滤波器性能取决于窗函数)(n ω的类型及窗口长度N 的取值。
设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度N 。
各种类型的窗函数可达到的阻带最小衰减和过渡带宽度见第七章。
这样选定窗函数类型和长度N 后,求出单位脉冲响应)(n h =)(n h d ·)(n ω,并按式(2-3)求出)(ωj e H 。
)(ωj e H 是否满足要求,要进行验算。
一般在)(n h 尾部加零使长度满足于2的整数次幂,以便用FFT 计算)(ωj e H 。
如果要观察细节,补零点数增多即可。
如果)(ωj eH 不满足要求,则要重新选择窗函数类型和长度N ,再次验算,直至满足要求。
如果要求线性相位特性,则)(n h 还必须满足)1()(n N h n h --±= (2-4)根据上式中的正负号和长度N 的奇偶性又将线性相位FIR 滤波器分成四类。
用窗函数设计FIR数字滤波器
目录1基本原理 (2)1.1设计hd(n) (2)1.2窗函数 (3)1.2.1矩形窗(Rectangle Window) (3)1.2.2三角形窗(Bartlett Window) (3)1.2.3布莱克曼(Blankman)窗 (3)1.2.4窗函数表格 (4)2课设题目 (4)2.1第一题 (4)2.2第二题 (5)2.2第三题 (6)3.心得体会 (7)参考文献 (8)1基本原理1.1设计hd(n)设计低通FIR数字滤波器,寻求一系统函数H(z),使其频率响应逼近滤波器要求的理想频率响应,其对应的单位脉冲响应Hd(n)其它为零(1.1)其中 =(N-1)/2如果所希望的滤波器的理想的频率响应函数为,则其对应的单位脉冲响应为(1.2)窗函数设计法的基本原理是用有限长单位脉冲响应序列h(n)逼近hd(n)。
由于hd(n)往往是无限长序列,而且是非因果的,所以用窗函w(n)将hd(n)截断,并进行加权处理,得到:w(n)hd(n)(1.3)h(n)就作为实际设计的FIR数字滤波器的单位脉冲响应序列,其频率响应函数:(1.4)式中,N为所选窗函数w(n)的长度。
1.2窗函数1.2.1矩形窗(Rectangle Window)其频率响应和幅度响应分别为:(1.6)1.2.2三角形窗(Bartlett Window)(1.7)其频率响应和幅度响应分别为:(1.8)1.2.3布莱克曼(Blankman)窗(1.9)其幅度响应:.(1.10)我们知道,用窗函数法设计的滤波器性能取决于窗函数我w(n)的类型及窗口长度的取值。
设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数和窗口长度N 。
各种类型的窗函数可达到的阻带最小衰减和过渡带宽度见下表11.2.4窗函数表格窗函数旁瓣峰值幅度/dB 过渡带宽阻值最小衰减/dB-12矩形窗-134-25三角窗-258-44汉宁窗-318-53哈明窗-418-74布莱克曼窗-5712-80凯塞窗-5710表格 1.12课设题目2.1第一题1.用矩形窗设计一个FIR线性相位数字低通滤波器,已知Wc=0.5。
实验7-窗函数法设计FIR滤波器
实验7-窗函数法设计FIR滤波器实验7 窗函数法设计FIR数字滤波器一、实验目的掌握窗函数法设计FIR数字滤波器的原理及具体方法。
二、实验设备与环境计算机、MATLAB软件环境。
三、实验基础理论1、基本原理窗函数设计法的基本思想为,首先选择一个适当的理想的滤H d(e jω),然后用窗函数截取它的单位脉冲响应h d(n),得到线性相位和因果的FIR滤波器。
这种方法的重点是选择一个合适的窗函数和理想的滤波器,使设计的滤波器的单位脉冲响应逼近理想滤波器的单位脉冲响应。
2、设计步骤(1) 给定理想滤波器的频率响应H d(e jω),在通带上具有单位增益和线性相位,在阻带上具有零响应。
一个带宽为ωc (ωc<π)的低通滤波器由下式给定H d(e jω)={ 1∙e−jαω |ω|≤ωc0 ωc<|ω|≤π (7-1)其中α为采样延迟,其作用是为了得到因果的系统。
(2)确定这个滤波器的单位脉冲响应h d(n)=sin[ωc(n−α)]π(n−α)(7-2)为了得到一个h(n)长度为N的因果的线性相位FIR滤波器,我们令(7-3)α=N−12(3)用窗函数截取h d(n)得到所设计FIR数字滤波器h(n)h(n)=h d(n)w(n) (7-4)3.窗函数的选择常用的窗函数有矩形(Rectangular)窗、汉宁(Hanning)窗、海明(Hamming)窗、布莱克曼(Blackman)窗、凯瑟(Kaiser)窗。
MATLAB提供了一些函数用于产生窗函数。
如表7-1所示。
表7-1 MATLAB中产生窗函数的命令MATLAB函数窗函数 MATLAB函数窗函数boxcar 矩形窗函数 blackman 布莱克曼窗函数hanning 汉宁窗函数 kaiser 凯瑟窗函数hannming 海明窗函数在设计过程中我们需要根据给定的滤波器技术指标,选择滤波器长度N和窗函数ω(n)。
表7-2列出了常用窗函数的一些特性,可供设计时参考。
DSP实验6用窗函数法设计FIR滤波器
DSP实验6用窗函数法设计FIR滤波器实验六用窗函数法设计FIR 滤波器一、实验目的1. 掌握窗函数法设计FIR 滤波器的原理和方法,观察用几种常用窗函数设计的FIR 数字滤波器技术指标;2. 掌握FIR 滤波器的线性相位特性;3. 了解各种窗函数对滤波特性的影响。
二、实验原理与方法如果所希望的滤波器的理想频率响应函数为H d (e jω),则其对应的单位脉冲响应为ωπωππωd e e H n h n j j d ?-=)(21)(,用窗函数w N (n)将h d (n)截断,并进行加权处理,得到实际滤波器的单位脉冲响应h (n )=h d (n )w N (n ),其频率响应函数为n j N n j e n h e H ωω--=∑=10)()(。
如果要求线性相位特性,则h (n )还必须满足)1()(n N h n h --±=。
可根据具体情况选择h(n)的长度及对称性。
三、实验步骤1. 写出理想低通滤波器的传输函数和单位脉冲响应。
2. 写出用四种窗函数设计的滤波器的单位脉冲响应。
3. 用窗函数法设计一个线性相位FIR 低通滤波器,用理想低通滤波器作为逼近滤波器,截止频率ωc =π/4 rad ,选择窗函数的长度N =15,33两种情况。
要求在两种窗口长度下,分别求出h(n),打印出相应的幅频特性和相频特性曲线,观察3dB 带宽和阻带衰减;4 用其它窗函数(汉宁窗(升余弦窗)、哈明窗(改进的升余弦窗)、布莱克曼窗) 设计该滤波器,要求同1;比较四种窗函数对滤波器特性的影响。
四、实验用MATLAB 函数可以调用MATLAB 工具箱函数fir1实现本实验所要求的线性相位FIR-DF 的设计,调用一维快速傅立叶变换函数fft 来计算滤波器的频率响应函数。
fir1是用窗函数法设计线性相位FIRDF 的工具箱函数,调用格式如下:hn=fir1(N, wc, ‘ftype ’, window)fir1实现线性相位FIR 滤波器的标准窗函数法设计。
窗函数法设计FIR滤波器
窗函数法设计FIR滤波器FIR(Finite Impulse Response)滤波器是一种常见的数字滤波器,通过一系列有限长度的输入信号进行系统响应的采样,使用窗函数法设计FIR滤波器是一种常用且有效的方法。
设计FIR滤波器的第一步是确定滤波器的阶数。
阶数是指滤波器的长度,通常表示为N。
设计FIR滤波器的第二步是选择滤波器的截止频率。
截止频率决定滤波器的频率响应。
设计FIR滤波器的第三步是选择窗函数。
窗函数是一种平滑函数,用于调整滤波器的频率响应。
常见的窗函数有矩形窗、汉明窗、海明窗等。
矩形窗是最简单的窗函数,没有频率响应调整的效果。
汉明窗是常用的窗函数之一,它可以提供较好的频率响应特性。
海明窗是一种能够提供更优秀频率响应的窗函数。
设计FIR滤波器的第四步是确定窗函数的参数。
这些参数包括主瓣宽度、动态范围、副瓣能量等。
设计FIR滤波器的最后一步是计算滤波器的系数。
滤波器的系数是由输入信号进行线性组合得到的。
通常采用离散频率域设计方法计算FIR滤波器的系数。
该方法通过将滤波器的频率响应与目标响应之间的差异最小化来寻找最佳系数。
具体计算过程包括以下几个步骤:1.设计一个无限长的理想低通滤波器,其频率响应与所需滤波器接近。
2. 使用离散Fourier变换将无限长的理想滤波器转换为有限长的频率响应。
3.选择适当的窗函数,根据窗函数的参数修改频率响应。
4.反变换回时间域,得到FIR滤波器的系数。
设计完滤波器后,可以通过将输入信号与滤波器系数进行卷积运算来获得滤波后的信号。
滤波器系数的选择决定了滤波器的性能。
通常可以通过频率响应、滤波器特性等指标来评估滤波器的性能。
使用窗函数法设计FIR滤波器可以得到满足特定要求的滤波器,其设计过程相对简单,易于实现。
但需要注意的是,窗函数法设计的FIR滤波器在频率响应的过渡区域可能会有较大的波动,需要根据具体应用场景对滤波器参数进行调整。
总之,窗函数法是一种常见且有效的设计FIR滤波器的方法,通过选择合适的窗函数和调整参数,可以得到满足特定要求的滤波器。
窗函数设计FIR低通滤波器
西南科技大学课程设计报告课程名称:数字信号处理与通信原理课程设计设计名称: FIR数字滤波器分析与应用姓名:学号:班级:指导教师:起止日期: 6.26 – 7.6课程设计任务书学生班级:通信学生姓名:学号:设计名称:窗函数设计FIR低通滤波器起止日期: 6.26~7.6 指导教师:课程设计学生日志课程设计考勤表课程设计评语表窗函数设计FIR 低通滤波器一、设计目的和意义:1、目的(1) 掌握用窗函数法设计FIR 数字滤波器的原理和方法。
(2) 熟悉线性相位FIR 数字滤波器特性。
(3) 了解各个窗函数对滤波器特性的影响。
2、意义:有限长单位冲激响应数字滤波器可以做成具有严格的线性相位,同时又可以具有任意的幅度特性。
滤波器的性能只由窗函数的形状决定。
二、设计原理:假如题目所要求设计的滤波器的频率响应为H d (e ωj ),则要设计一个FIR 滤波器频应为H(eωj )=∑=-1-N 0n j )(nen h ω()1来逼近。
但是设计却是在时域进行的,所以用傅氏反变换导出h d (n):h d (n) =ωπππωωd e e Hn j j d⎰-)(21()2但是要求设计的FIR 滤波器,它的h(n)是有限长的,但是h d (n)却是无限长的,所以要用一个有限长度的窗函数)(n ω来截取h d (n),即h(n)= )(n ωh d (n)()3h(n)就是实际设计的FIR 数字滤波器的单位脉冲响应序列,其频率响应函数即为()1式,其中N 就是所选择的窗函数)(n ω的长度。
本课程设计的要求是利用矩形窗,海宁窗,汉明窗各设计一个FIR 低通滤波器。
因此首先对这三个窗函数进行简要说明。
1.矩形窗:)(n ω=R N (n )()42.汉宁窗:ω(n)=[sin 2(1-N n π)]R N (n) ()5 3.海明窗:ω(n)=[0.54-(1-0.54)cos(12-N nπ)]R N (n) ()6 用窗函数设计的滤波器的性能由窗函数)(n ω的性能和窗口长度N 的取值决定。
实验六指导书 用窗函数法设计FIR数字滤波器
实验六 用窗函数法设计FIR 数字滤波器1、实验目的(1)掌握用窗函数法设计FIR 数字滤波器的原理和方法。
(2)熟悉线性相位FIR 数字滤波器特性。
(3)了解各种窗函数对滤波特性的影响。
2、实验原理如果所希望的滤波器的理想频率响应函数为)(jw d e H ,则其对应的单位脉冲响应为:⎰-=πππdw e e H n h jwn jw d d )(21)(窗函数设计法的基本原理是用有限长单位脉冲响应h(n)逼近h d (n)。
由于h d (n)往往是无限长序列,且是非因果的,所以用窗函数ω(n)将h d (n)截断,并进行加权处理,得到:)()()(n w n h n h d ⋅=h(n)就作为实际设计的FIR 数字滤波器的单位脉冲响应序列,其频率响应函数H(e jω)为:∑-=-=10)()(N n jwn jwe n h e H 式中,N 为所选窗函数ω(n)的长度。
这种对理想单位取样响应的加窗处理对滤波器的频率响应会产生以下三点影响:(1)使理想特性不连续的边沿加宽,形成一个过渡带,过渡带的宽度取决于窗函数频谱的主瓣宽度。
(2)在过渡带两旁产生肩峰和余振,它们取决于窗函数频谱的旁瓣;旁瓣越多,余振也越多;旁瓣相对值越大,肩峰则越强。
(3)增加截断长度N ,只能缩小窗函数频谱的主瓣宽度而不能改变旁瓣的相对值;旁瓣与主瓣的相对关系只决定于窗函数的形状。
因此增加N ,只能相对应减小过渡带宽。
而不能改变肩峰值。
肩峰值的大小直接决定通带内的平稳和阻带的衰减,对滤波器性能有很大关系。
例如矩形窗的情况下,肩峰达8.95%,致使阻带最小衰减只有21分贝,这在工程上往往是不够的。
怎样才能改善阻带的衰减特性呢?只能从改善窗函数的形状上找出路,所以希望的窗函数频谱中应该减少旁瓣,使能量集中在主瓣,这样可以减少肩峰和余振,提高阻带衰减。
而且要求主瓣宽度尽量窄,以获得较陡的过渡带,然而这两个要求总不能同时兼得,往往需要用增加主瓣宽度带换取较大的阻带衰急,于是提出了海明窗、汉宁窗、布莱克曼窗、凯塞窗、切比雪夫窗等窗函数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
百度文库- 让每个人平等地提升自我河北科技大学课程设计报告学生姓名:学号:专业班级:课程名称:学年学期指导教师:20 年月课程设计成绩评定表学生姓名学号成绩专业班级起止时间设计题目指导教师评指导教师:语年月日目录1. 窗函数设计低通滤波器设计目的 (1)设计原理推导与计算 (1)设计内容与要求 (2)设计源程序与运行结果 (3)思考题 (10)心得体会 (14)参考文献 (15)1.窗函数设计低通滤波器设计目的1. 熟悉设计线性相位数字滤波器的一般步骤。
2. 掌握用窗函数法设计FIR 数字滤波器的原理和方法。
3. 熟悉各种窗函数的作用以及各种窗函数对滤波器特性的影响。
4. 学会根据指标要求选择合适的窗函数。
设计原理推导与计算如果所希望的滤波器的理想的频率响应函数为()ωj d e H ,则其对应的单位脉冲响应为()()ωπωωππd e e H n h j j d d ⎰-=21 ()窗函数设计法的基本原理是设计设计低通FIR 数字滤波器时,一般以理想低通滤波特性为逼近函数()ωj e H ,即()⎪⎩⎪⎨⎧≤<≤=-πωωωωωαωc c j jd ,,ee H 0,其中21-=N α()()()[]()a n a n d e e d e eH 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 ω= ()()n h 就作为实际设计的FIR 数字滤波器的单位脉冲响应序列,其频率响应函数()ωj e H 为()()nj N n j en h eH ωω∑-==1()式中,N 为所选窗函数()n ω的长度。
用窗函数法设计的滤波器性能取决于窗函数()n ω的类型及窗口长度N 的取值。
设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度N 。
各种类型的窗函数可达到的阻带最小衰减和过渡带宽度见表(一)。
窗函数旁瓣峰值幅度/dB过渡带宽阻带最小衰减/dB过渡带带宽()N πω2∆矩形窗 -134π/N -12三角形窗 -25 8π/N -25汉宁窗 -31 8π/N -44哈明窗 -41 8π/N -53不莱克曼窗-57 12π/N -74凯塞窗(β=-57 10π/N-80 5表(一) 各种窗函数的基本参数这样选定窗函数类型和长度N 之后,求出单位脉冲响应()()()n n h n h d ω•=,并按照式()求出()ωj e H 。
()ωj e H 是否满足要求,如果()ωj e H 不满足要求,则要重新选择窗函数类型和长度N ,再次验算,直至满足要求。
设计内容与要求(一)设计要求: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 函数文件。
3. 编写计算N 阶差分方程所描述系统频响函数()j H e ω的m 函数文件。
4.根据指标要求选择窗函数的形状与长度N 。
(至少选择两种符合要求的窗函数及其对应的长度)。
5.编写.m 程序文件,通过调用和fr .m 文件,计算你设计的实际低通FIR 滤波器的单位抽样响应h(n)和频率响应()j H e ω,打印在频率区间[O ,π]上的幅频响应特性曲线()~j H e ωω,幅度用分贝表示。
6.验证所设计的滤波器是否满足指标要求。
设计的源程序及运行结果: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=;w=kaiser(20,beta); subplot(3,2,6); plot(w);stem(w,'k');%'k'表示黑色 title('凯泽窗,beta='); xlabel('n'); ylabel('w(n)');51015200.51巴特利特床窗n w (n )051015200.51布莱克曼窗n w (n )510152000.51矩形窗n w (n )510152000.51海明窗nw (n )51015200.51汉宁窗nw (n )051015200.51凯泽窗,beta=5.6533nw (n )常用窗函数的图形2、理想低通滤波器单位抽样响应hd(n)的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函数文件。
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=*pi;ws=*pi;tr_width=ws-wp;disp(['海明窗设计低通滤波器参数:']);M=ceil*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 ]);ylabel('hd(n)');subplot(2,6,2)stem(n,w_ham);title('海明窗');axis([0 M-1 0 ]);ylabel('w(n)');subplot(2,6,7)stem(n,h);title('实际冲激响应');axis([0 M-1 ]);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实际带通波动为最小阻带衰减为-52db%用布莱克曼窗设计低通滤波器wp=*pi;ws=*pi;tr_width=ws-wp;disp(['布莱克曼窗设计低通滤波器的参数:']);M=ceil*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 ]);ylabel('hd(n)');subplot(2,6,4)stem(n,w_bla);title('布莱克曼窗');axis([0 M-1 0 ]);ylabel('w(n)');subplot(2,6,9)stem(n,h);title('实际冲激响应');axis([0 M-1 ]);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实际带通波动为 最小阻带衰减为-73db 5、技术指标比较:(1)海明窗设计低通滤波器参数: 滤波器的长度为67 实际带通波动为 最小阻带衰减为-52db(2)布莱克曼窗设计低通滤波器的参数: 滤波器的长度为111 实际带通波动为 最小阻带衰减为-73db在相同的技术指标下用布莱克曼窗设计的低通滤波器实际带通波动实际带通波动最小,最小阻带衰减,滤波器的长度最大;海明窗和凯泽窗最小阻带衰减差不多,滤波器的长度页差不多,但是海明窗实际波动小于凯泽窗;所以用布莱克曼窗用设计的FIR 最逼近理想单位冲击响应。