窗函数设计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. 汉明窗函数汉明窗函数是一种常见的窗函数,其形式为:w[n] = 0.54 - 0.46 * cos(2πn/(N-1)), 0 ≤ n ≤ N-1汉明窗函数具有以下特性:- 主瓣宽度较窄,抑制能力强;- 窗函数的边界平滑,信号截断较小;- MMSE(均方误差最小估计)性能较好。
3. FIR低通滤波器设计FIR低通滤波器可通过卷积运算实现。
设计步骤如下:- 确定截止频率:根据应用需求确定滤波器的截止频率。
- 确定滤波器阶数:根据截止频率和滤波器性能要求来确定阶数N。
- 确定理想低通滤波器的频率响应:根据截止频率确定理想低通滤波器的频率响应Hd(ω)。
- 应用汉明窗函数:将汉明窗函数与理想低通滤波器的频率响应相乘,得到实际滤波器的频率响应H(ω)。
- 逆傅里叶变换:将H(ω)进行逆傅里叶变换,得到时域的系数序列h[n]。
- 对h[n]进行归一化:将h[n]的最大值设置为1或0dB。
4. 性能分析对设计好的FIR低通滤波器进行性能分析,可从以下几个方面入手:- 频率响应:分析滤波器的截止频率、通频带边界、抑制带边界等重要参数,确保滤波器的性能与设计要求相符。
- 平均功率:计算滤波后信号的平均功率,评估滤波器的增益特性。
- 相位响应:分析滤波器的相位特性,检测滤波器对信号的引入的延迟。
- 稳态和瞬态特性:观察滤波器的稳态和瞬态响应,检验滤波器对不同类型输入信号的处理效果。
- 线性相位特性:验证滤波器是否具有线性相位特性,因为线性相位滤波器可以保持信号的波形不失真。
5. 实验与结果分析为了验证基于汉明窗函数设计的FIR低通滤波器的性能,可以进行一系列实验,并对结果进行分析。
基于汉明窗函数的FIR低通滤波器的设计

基于汉明窗函数的FIR低通滤波器的设计简介FIR低通滤波器是一种常用的数字信号处理滤波器,它可以用来滤除高频成分,保留低频成分。
汉明窗函数是一种常用的窗函数,用于设计FIR滤波器时可以有效降低频域泄漏现象。
本文将介绍基于汉明窗函数的FIR低通滤波器的设计方法和实现过程。
FIR滤波器的基本原理FIR滤波器是一种非递归滤波器,其输出仅由输入和滤波器的系数决定。
其基本原理是将输入信号与滤波器的冲激响应进行卷积运算,从而得到输出信号。
FIR滤波器的离散时间域表达式如下:y[n] = \\sum_{k=0}^{M} h[k] \\cdot x[n-k]其中,y[n]为滤波器的输出,x[n]为输入信号,h[k]为滤波器的系数,M为滤波器的阶数。
汉明窗函数汉明窗函数是一种常用的窗函数,用于在频域上抑制泄漏现象。
汉明窗函数的表达式如下:w[n] = 0.54 - 0.46 \\cdot \\cos \\left(\\frac {2\\pi n}{N-1}\\right)其中,w[n]为汉明窗函数的值,n为窗函数的点数,N为窗函数的长度。
在FIR滤波器设计中,可以使用汉明窗函数对滤波器的冲激响应进行加权,以实现频域上的泄漏抑制。
基于汉明窗函数的FIR低通滤波器设计方法基于汉明窗函数的FIR低通滤波器的设计方法如下:1.确定滤波器的阶数M,一般情况下,阶数的选择要取决于所需的滤波器的响应特性。
2.计算窗函数的长度N,一般情况下,窗函数的长度应为M+1。
3.根据窗函数的表达式计算窗函数的值,并将其作为滤波器的系数h[k],其中k=0,1,...,M。
4.对滤波器的系数进行归一化处理,以保证滤波器的幅度响应符合要求。
5.完成滤波器的设计。
汉明窗函数的特性汉明窗函数具有以下特性:1.对称性:汉明窗函数在窗口的两侧具有对称性,这使得滤波器的响应具有良好的频域特性。
2.正频响特性:汉明窗函数具有较低的副瓣水平,能够实现较好的频谱特性。
窗函数法设计FIR滤波器

FIR 数字滤波器的设计方法IIR 数字滤波器最大缺点:不易做成线性相位,而现代图像、语声、数据通信对线性相位的要求是普遍的。
正是此原因,使得具有线性相位的FIR 数字滤波器得到大力发展和广泛应用。
1. 线性相位FIR 数字滤波器的特点FIR DF 的系统函数无分母,为∑∑-=--=-==11)()(N n n N i ii z n h zb z H ,系统频率响应可写成:∑-=-=10)()(N n jwn jwe n h e H ,令)(jw e H =)()(w j e w H Φ,H(w)称为幅度函数,)(w Φ称为相位函数。
这与模和幅角的表示法有所不同,H(w)为可正可负的实数,这是为了表达上的方便。
如某系统频率响应)(jw e H =wj we34sin -,如果采用模和幅角的表示法,w 4sin 的变号相当于在相位上加上)1(ππj e =-因,从而造成相位曲线的不连贯和表达不方便,而用)()(w j e w H Φ这种方式则连贯而方便。
线性相位的FIR 滤波器是指其相位函数)(w Φ满足线性方程:)(w Φ=βα+-w (βα,是常数)根据群时延的定义,式中α表示系统群时延,β表示附加相移。
线性相位的FIR 系统都具有恒群时延特性,因为α为常数,但只有β=0的FIR 系统采具有恒相时延特性。
问题:并非所有的FIR 系统都是线性相位的,只有当它满足一定条件时才具有线性相位。
那么应满足什么样的条件?从例题入手。
例题:令h(n)为FIR 数字滤波器的单位抽样相应。
N n n ≥<或0时h(n)=0,并假设h(n)为实数。
(a ) 这个滤波器的频率响应可表示为)()()(w j jwew H e H Φ=(这是按幅度函数和相位函数来表示的,不是用模和相角的形式),)(w H 为实数。
(N 要分奇偶来讨论) (1) 当h(n)满足条件)1()(n N h n h --=时,求)(w H 和)(w Φ(π≤≤w 0) (2) 当h(n)满足条件)1()(n N h n h ---=时,求)(w H 和)(w Φ(π≤≤w 0)(b ) 用)(k H 表示h(n)的N 点DFT(1) 若h(n)满足)1()(n N h n h ---=,证明H(0)=0; (2) 若N 为偶数,证明当)1()(n N h n h --=时,H(N/2)=0。
基于汉明窗函数设计的FIR低通滤波器

基于汉明窗函数设计的FIR低通滤波器FIR低通滤波器是一种常用的数字滤波器,可以用于信号的去噪、降噪、频率选择等信号处理任务。
在设计FIR低通滤波器时,我们可以使用汉明窗函数来实现。
汉明窗函数是一种常见的窗函数,其特点是在频率域上具有较好的副瓣抑制能力。
在FIR滤波器设计中,我们可以通过将输入信号与汉明窗函数进行卷积来实现滤波功能。
下面将介绍如何基于汉明窗函数设计FIR低通滤波器。
首先,我们需要确定滤波器的阶数和截止频率。
阶数决定了滤波器的复杂度,阶数越高,滤波器的性能越好,但计算量也会增加。
截止频率则决定了滤波器的截止频率,即在该频率以下的信号将被保留,而在该频率以上的信号将被削弱。
接下来,我们可以通过以下步骤来设计基于汉明窗函数的FIR低通滤波器:1. 确定滤波器系数:根据滤波器的阶数和截止频率,可以采用窗函数设计方法来计算滤波器的系数。
具体来说,我们可以使用窗函数对理想低通滤波器的幅度响应进行加窗。
汉明窗函数的表达式为:w(n)=0.54-0.46cos(2πn/(N-1))其中,n为窗函数的索引,N为窗函数的长度。
2. 计算理想低通滤波器的幅度响应:根据滤波器的截止频率,可以计算理想低通滤波器的幅度响应。
理想低通滤波器在截止频率之前为1,在截止频率之后为0。
3. 加窗:将理想低通滤波器的幅度响应与窗函数进行乘积,得到加窗后的幅度响应。
4. 归一化:将加窗后的幅度响应进行归一化处理,使滤波器的增益为1。
5. 反变换:对归一化后的幅度响应进行反变换,得到滤波器的系数。
设计完滤波器后,我们可以将输入信号与滤波器系数进行卷积运算,得到滤波后的输出信号。
此时,输入信号中的高频成分将被抑制,而低频成分将被保留。
需要注意的是,调整滤波器的阶数和截止频率可以影响滤波器的性能。
阶数过高可能引起滤波器的过长延迟和过高的计算复杂度,而截止频率的选择应根据具体的信号处理任务来确定。
总结起来,基于汉明窗函数设计的FIR低通滤波器是一种常用的数字滤波器,可以通过对汉明窗函数与理想低通滤波器的幅度响应进行乘积来实现对输入信号的滤波功能。
用窗函数法设计低通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。
实验六用窗函数法设计FIR滤波器分析解析

实验六用窗函数法设计FIR滤波器分析解析一、引言数字滤波器是数字信号处理中的重要组成部分。
滤波器可以用于去除噪声、调整频率响应以及提取感兴趣的信号。
有许多方法可以设计数字滤波器,包括窗函数法、频域法和优化法等。
本实验将重点介绍窗函数法设计FIR滤波器的原理和过程。
二、窗函数法设计FIR滤波器窗函数法是设计FIR滤波器的一种常用方法。
其基本原理是将滤波器的频率响应与理想滤波器的频率响应进行乘积。
理想滤波器的频率响应通常为矩形函数,而窗函数则用于提取有限长度的理想滤波器的频率响应。
窗函数的选择在FIR滤波器的设计中起着重要的作用。
常用的窗函数包括矩形窗、汉宁窗、汉明窗、布莱克曼窗等。
对于每种窗函数,都有不同的特性和性能指标,如主瓣宽度、副瓣抑制比等。
根据不同的应用需求,可以选择合适的窗函数。
窗函数法设计FIR滤波器的具体步骤如下:1.确定滤波器的阶数N。
阶数N决定了滤波器的复杂度,一般情况下,阶数越低,滤波器的简单度越高,但频率响应的近似程度也会降低。
2.确定滤波器的截止频率。
根据应用需求,确定滤波器的截止频率,并选择合适的窗函数。
3.根据窗函数长度和截止频率计算理想滤波器的频率响应。
根据所选窗函数的特性,计算理想滤波器的频率响应。
4.根据理想滤波器的频率响应和窗函数的频率响应,得到所需的FIR滤波器的频率响应。
将理想滤波器的频率响应与窗函数的频率响应进行乘积,即可得到所需滤波器的频率响应。
5.对所得到的频率响应进行逆傅里叶变换,得到时域的滤波器系数。
6.实现滤波器。
利用所得到的滤波器系数,可以通过卷积运算实现滤波器。
三、实验结果与分析本实验以Matlab软件为平台,利用窗函数法设计了一个低通滤波器。
滤波器的阶数为16,截止频率为500Hz,采样频率为1000Hz,选择了汉宁窗。
根据上述步骤,计算得到了所需的滤波器的频率响应和时域的滤波器系数。
利用这些系数,通过卷积运算,实现了滤波器。
为了验证滤波器的性能,将滤波器应用于输入信号,观察输出信号的变化。
基于汉明窗函数的FIR低通滤波器的设计

基于汉明窗函数的FIR低通滤波器的设计1. 滤波器的概念和作用滤波是信号处理中重要的一个部分,可以去除噪声、修复信号、提取特定频率成分等。
滤波器则是一种用来实现滤波功能的电路或软件,其主要作用是选择性地影响输入信号的不同频率成分。
在数字信号处理中,滤波器通常是由一组数字滤波器系数组成的,其中FIR滤波器(Finite Impulse Response)是最简单和最容易实现的一种。
FIR滤波器的基本原理是将输入信号与滤波器系数的乘积相加,从而产生输出信号。
而滤波器系数的选择则决定了滤波器的特性。
在本文中,我们将介绍一种基于汉明窗函数的FIR低通滤波器的设计方法。
2. 汉明窗函数的基本原理汉明窗函数是一种广泛应用于数字信号处理中的窗函数,其形式为:$$w(n) = 0.54 - 0.46\cos\frac{2\pi n}{N-1}, \quad 0 \leq n \leq N-1 $$其中,$N$为窗口长度,决定了窗口的主瓣宽度和副瓣抑制程度。
汉明窗函数的特点是在窗口内具有平坦的频率响应和较高的副瓣抑制能力,而主瓣宽度较大。
3. FIR低通滤波器的设计过程在设计FIR低通滤波器时,我们的目标是将信号中高于一定频率的部分滤除,从而达到降噪的效果。
因此,我们需要选择适当的滤波器系数来实现这一目标。
具体设计过程如下:3.1 确定滤波器参数在设计FIR滤波器时,需要确定一些关键参数,包括:(1)采样频率:即采样器的采样率,一般情况下为信号最高频率的两倍以上。
(2)截止频率:即希望滤除的信号部分的最高频率。
(3)滤波器阶数:阶数越高,滤波器的频率响应越陡峭。
(4)窗口长度:即用于窗函数的样本点数。
3.2 选择窗函数在滤波器设计中,窗函数的选择对于滤波器性能有很大的影响。
通常,我们可以选择常用的窗函数,如矩形窗函数、汉明窗函数、升余弦窗函数等。
在本文中,我们将选择汉明窗函数作为窗口函数。
3.3 计算滤波器系数通过选择合适的窗口函数,我们可以得到对应的窗口系数,然后将其与所需滤波器类型(低通、高通、带通等)的理想频率响应进行卷积,即可得到所需的滤波器系数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西南科技大学课程设计报告课程名称:数字信号处理与通信原理课程设计设计名称: 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 H nj 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 的取值决定。
设计的时候,窗函数类型和长度N ,应由对阻带最小衰减和过渡带宽度的要求而选择。
设计所要求的三种窗函数可达到的阻带最小衰减和过渡带宽度见表1。
如何根据滤波器长度N 的奇偶性,选择h(n)的奇偶对称性则是另外一个需要考虑的问题。
先行相位实系数FIR 滤波器按其N 值奇偶和h(n)的奇偶对称性,可以分位四种,它们具有不同的幅频和相位特性: 1.h(n)为偶对称,N 为奇数:H(eωj )=[h(21-N )+∑-=+-2/)1(1cos )21(2N n n n N h ω]e 21--N j ω ()7它的幅度是关于ω=0,π,2π点成偶对称。
2.h(n)为偶对称,N 为偶数:H(eωj )={∑-=-+-2/)1(1)]21(cos[)12(2n n n n N h ω} e21--N j ω ()8它的幅度是关于ω=π点成奇对称,ω=π处有零点,所以它不适合于做高通滤波器。
3.h(n)为奇对称,N 为奇数:H(eωj )=[∑-=+-2/)1(1sin )21(2N n n n n h ω]e]221[πω+--N j ()9它的幅度是关于ω=0,π,2π点成奇对称。
H(e ωj )在ω=0,π,2π处都有零点。
所以,它不适用于低通和高通。
4.h(n)为奇对称,N为偶数:H(eωj)=[∑-=-+-2/)1(1)21(sin)21(2Nnnnnhω]e]221[πω+--Nj()10它的幅度是关于ω=0,π,2π点成奇对称。
H(eωj)在ω=0,2π处都有零点。
因此,它不适合用于低通。
在滤波器设计过程中,只有根据上述四种线性相位滤波器传递函数的性质,合理地选择应采用的种类,构造出Hd(eωj)的幅频特性和相位特性,才能求得所需要的,具有单位脉冲响应的线性相位FIR滤波器传递函数。
三、详细设计步骤1、窗函数法设计线性相位FIR滤波器可以按如下步骤进行:(1)确定数字滤波器的性能要求。
确定各临界频率kω和滤波器单位脉冲响应长度N。
(2)根据性能要求和N值,合理的选择单位脉冲响应h(n)的奇偶对称性,从而确定理想频率响应Hd(eωj)的幅频特性和相位特性。
(3)利用()2式,求得理想脉冲响应h d(n)。
(4)选择适当的窗函数ω(n),根据()3式,求得所设计的FIR滤波器单位脉冲响应。
(5)用傅立叶变换公式求得其频率响应H(eωj),分析它的幅频特性,若不满足要求,可适当改变窗函数形式或者长度N,重复上述过程,直到得到满意的结果。
注意:在步骤(3)中,利用()2式求h d(n),这里的积分运算,在计算机中可以取其数值解:hd (n)≈M1∑-=1MkdH(e k M jπ2)e knMjπ2()11其中0≤n≤N-1,而M≥8N,这样,数值解才能较好地逼近解析解。
2、设Hd(eωj)为理想线性滤波器Hd (eωj)={,0,ωτje-其他cωω≤||()12★给定三组滤波器的性能指标,根据这些指标选择适宜的窗函数设计低通滤波器。
见表2。
◆ 分析设计如下:⑴ 分析第一组数据:① 由所给的指标,可以求得对应的数字频率:通带截止频率 p ω=sp f Ω=2πsp ΩΩ=0.4π阻带起始频率 st ω=s st f Ω=2πsst ΩΩ=0.6π 阻 带 衰 减 2δ=20dB② 因为H d (eωj )={,0,ωτj e - 其他cωω≤||首先由所需低通滤波器的过渡带求截止频率c Ωc Ω=21(ρΩ+st Ω)=2π⨯3.75⨯103(rad/sec ) 其对应的数字频率为c ω=sc f Ω=2s c ΩΩπ=0.5π因此,由()2式可得h d (n)=ωπππωωτd e e nj j ⎰--21= ωπωωπωd e cn j ⎰--)(21={,)],(sin[)(1πωτωτπc c n n --ττ=≠n n()13其中τ=21-N ③ 由阻带衰减2δ来确定窗函数,由过渡带宽确定N :因为2δ=20dB,由表1知道,可选用矩形窗,因为它的最小衰减-21dB 符合题目设计要求。
要求的过渡带宽 spst ΩΩ-Ω=∆πω2=43105.12105.122⨯⨯⨯⨯⨯πππ=0.2πN=21,τ=10。
④ 由矩形窗表达式)(n ω=R N (n )()4以及()13式来确定FIR 滤波器的h(n)⑤ 由()1式H(eωj )=∑=-1-N 0n j )(nen h ω得出频率范围图象。
⑵ 分析第二组数据:按照分析第一组数据的方法,可得出:① 通带截止频率 p ω=sp f Ω=2πsp ΩΩ=0.2π阻带起始频率 st ω=s st f Ω=2πsst ΩΩ=0.4π 阻 带 衰 减 2δ=50dB② 通带截止频率 c ω=sc f Ω=2s c ΩΩπ=0.3πh d (n)和()13式一样。
⑤ 因为2δ=50dB ,所以由表1可知,选用海明窗。
过渡带宽 πω2.0=∆,又因为N πω6.6=∆,所以N=33,1621=-=N τ ⑥ 由海明窗表达式ω(n)=[0.54-(1-0.54)cos(12-N nπ)]R N (n) ()6 以及()13式来确定FIR 滤波器的h(n)h(n)= h d (n)• ω(n)=)]16(46.054.0[)16()]16(3.0sin[nn n πππ-•-- R N (n)⑤ 由()1式H(e ωj )=∑=-1-N 0n j )(nen h ω得出频率范围图象。
★ 验证型:设c ω=0.5π,N=51。
选用汉宁窗进行验证。
3、编制窗函数设计FIR 滤波器的主程序及相应的子程序。
(1) 傅立叶反变换数值计算子程序,用于计算设计步骤(3)中的傅立叶反变换,给定H d (ek Mj π2),k=0,1,…,M-1,按照公式()11求得理想单位脉冲响应h d (n),n=0,…,N-1。
(2) 窗函数产生子程序,用于产生几种常见的窗函数序列。
本课程设计要求产生的窗函数序列有:矩形窗,升余玄窗,改进的升余玄窗。
根据给定的长度,按照()4到()6式生成响应的窗函数序列。
(3) 主程序,在上述子程序的基础上,设计主程序完成FIR 滤波器的窗函数法设计。
程序如下:N=input('Input the length of the windows N=:\n'); w=input('Input the Wc:\n'); b=1; close all; i=0;while(b);n=[0:(N-1)];hd=ideal(w,N);k=input('请选择窗口类型:1(boxcar);2(hamming);3(hanning):\n'); 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)];endendendh=hd.*(B)';[H,m]=freqz(h,[1],1024,'whole');mag=abs(H);db=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(1,1,string);text((0.3*N),0.27,string);hold onsubplot(2,2,2);plot(m/pi,db);axis([0 1 -100 0]);xlabel('w/pi');ylabel('衰减特性dB');grid onsubplot(2,2,3);plot(m,pha);hold onn=0:7x=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=input('Do you want to continue? 1(Continue),0(exit):\n');if b==1N=input('Input the length of the windows:\n');w=input('Input the Wc:\n');endend子程序:产生理想低通滤波器单位脉冲响应hd(n)function hd=ideal(w,N);alpha=(N-1)/2;n=[0:(N-1)];m=n-alpha+eps;hd=sin(w*m)./(pi*m);对上面设计的计算结果用本程序进行验证,比较,看结果是否符合要求。