基于matlab的fir数字滤波器设计要点

合集下载

用MATLAB设计FIR数字滤波器

用MATLAB设计FIR数字滤波器

实验八 用MATLAB 设计FIR 数字滤波器(二)一、实验目旳:1、加深对窗函数法设计FIR 数字滤波器旳基本原理旳理解。

2、学习用MATLAB 语言旳窗函数法编写设计FIR 数字滤波器旳程序。

3、理解MATLAB 语言有关窗函数法设计FIR 数字滤波器旳常用函数用法。

二、实验原理:1、用窗函数法设计FIR 数字滤波器 FIR 数字滤波器旳系统函数为N-1-n n=0H(z)=h(n)z ∑这个公式也可以当作是离散LSI 系统旳系统函数M-m -1-2-mmm=0012m N -1-2-k-k12k k k=1bz b +b z +b z ++b z Y(z)b(z)H(z)====X(z)a(z)1+a z +a z ++a z1+a z ∑∑ 分母a 0为1,其他a k 全都为0时旳一种特例。

由于极点所有集中在零点,稳定和线性相位特性是FIR 滤波器旳突出长处,因此在实际中广泛使用。

FIR 滤波器旳设计任务是选择有限长度旳h(n),使传播函数H(e j ω)满足技术规定。

重要设计措施有窗函数法、频率采样法和切比雪夫等波纹逼近法等。

本实验重要简介窗函数法。

用窗函数法设计FIR 数字滤波器旳基本环节如下:(1)根据过渡带和阻带衰减指标选择窗函数旳类型,估算滤波器旳阶数N 。

(2)由数字滤波器旳抱负频率响应H(e j ω)求出其单位脉冲响应h d (n)。

可用自定义函数ideal_lp实现抱负数字低通滤波器单位脉冲响应旳求解。

程序清单如下:function hd=ideal_lp(wc,N) %点0到N-1之间旳抱负脉冲响应%wc=截止频率(弧度)%N=抱负滤波器旳长度tao=(N-1)/2;n=[0:(N-1)];m=n-tao+eps; %加一种小数以避免0作除数hd=sin(wc*m)./(pi*m);其他选频滤波器可以由低通频响特性合成。

如一种通带在ωc1~ωc2之间旳带通滤波器在给定N值旳条件下,可以用下列程序实现:Hd=ideal_lp(wc2,N)-ideal_lp(wc1,N)(3)计算数字滤波器旳单位冲激响应h(n)=w(n)h d(n)。

matlabfir滤波器设计

matlabfir滤波器设计

matlabfir滤波器设计MATLAB是一个高级编程语言和交互式环境,被广泛应用于各种科学和工程问题的数值分析、数据可视化和编程开发等领域。

FIR滤波器是数字信号处理中经常使用的一种滤波器,它是基于有限长冲激响应的滤波器。

在MATLAB平台上,我们可以使用fir1函数来设计FIR滤波器。

一、FIR滤波器设计基础1.1 什么是FIR滤波器FIR滤波器是有限长冲激响应滤波器,由于其具有线性相位特性和可控阶数等优点,在数字信号处理中得到了广泛的应用。

一般来说,FIR滤波器的频率响应特性由滤波器的系数函数确定。

FIR滤波器的设计一般采用窗函数法、最小二乘法、频率抽取法等方法。

窗函数法是最常见的一种方法,大部分情况下选择的是矩形窗、汉宁窗、布莱克曼窗等。

1.3 fir1函数介绍fir1函数是MATLAB中用于FIR滤波器设计的函数,用法为:h = fir1(N, Wn, type)N为滤波器的阶数,Wn是用于指定滤波器截止频率的参数,type指定滤波器类型,可以是低通、高通、带通、带阻等。

二、使用fir1函数设计FIR滤波器2.1 设计要求采样率为300Hz;滤波器阶数为50;截止频率为50Hz。

2.2 实现步骤(1)计算规范化截止频率规范化截止频率是指在数字滤波器设计中使用的无单位量,通常范围为0到1。

在本例中,我们需要将50Hz的截止频率转化为规范化截止频率。

Wn = 2*50/300 = 1/3根据计算出的规范化截止频率和滤波器阶数,我们可以使用fir1函数来进行滤波器设计。

此处滤波器的阶数为50,规范化截止频率为1/3,类型为低通。

(3)绘制滤波器的幅频响应图为了验证设计的低通FIR滤波器是否符合要求,我们需要绘制其幅频响应图。

freqz(h,1,1024,300)经过上述步骤后,我们就得到了一张低通FIR滤波器的幅频响应图,如下图所示:图1.低通FIR滤波器的幅频响应图三、总结通过上述例子,我们可以看出在MATLAB中与fir1函数可以非常方便的进行FIR滤波器的设计。

基于MATLAB的FIR滤波器的设计及应用(信号去噪)

基于MATLAB的FIR滤波器的设计及应用(信号去噪)

数字信号处理课程设计报告书课题名称基于MATLAB 的FIR 滤波器的设计及应用(信号去噪)姓 名 陈君诚 学 号 20106503 院、系、部 电气工程系 专 业 电子信息工程指导教师刘鑫淼2013年 6月28日※※※※※※※※※ ※※ ※※ ※※※※※※※※※※※2010级数字信号处理 课程设计基于MATLAB 的FIR 滤波器的设计及应用(信号去噪)20106503 陈君诚一、设计目的1.学会MATLAB 的使用,掌握MATLAB 的程序设计方法; 2.掌握数字信号处理的基本概念、基本理论和基本方法; 3. 在MATLAB 环境下产生噪声信号;4.掌握MATLAB 设计FIR 数字滤波器的窗函数设计方法; 5.学会用MATLAB 对信号进行分析和处理。

二、设计要求1.噪声信号的频谱分析2.设计数字滤波器和画出频率响应利用窗函数的方法和最佳逼近法设计FIR 滤波器;最后,利用MATLAB 中的函数freqz 画出各滤波器的频率响应。

3.用滤波器对噪声信号进行滤波4.比较几种滤波器去滤波前后噪声信号的波形及频谱三、设计原理3.1 窗函数设计原理如果所希望的滤波器的理想的频率响应函数为()ωj e H ,则其对应的单位脉冲相应为:()()ωπωωππd e e H n h j j d d ⎰-=21 (3.1) 窗函数设计法的基本原理是用有限长单位脉冲响应序列()n h 逼近()n h d 。

由于()n h d 往往是无限长序列,而且是非因果的,所以用窗函数()n ω将()n h d 截断,并进行加权处理,得到:()()()n n h n h d ω= (3.2)()n h 就作为实际设计的FIR 数字滤波器的单位脉冲响应序列,其频率响应函数()ωj e H 为()()nj N n j en h eH ωω∑-==1(3.3)式中,N 为所选窗函数()n ω的长度。

由此可知,用窗函数法设计的滤波器性能取决于窗函数()n ω的类型及窗口长度N 的取值。

基于MATLAB的FIR滤波器设计

基于MATLAB的FIR滤波器设计

EDA课程设计报告滤波器设计参数:根据要求,要设计一个输入8位,输出8位的17阶线性相位FIR滤波器,所以采用图2(a)的方式,其中输入信号范围为:[±99,0,0,0,±70,0,0,0,±99,0,0,0,±70,…],此滤波器Fs为44kHz,Fc 为10.4kHz。

(一)FIR数字滤波器理论简述有限冲激响应(FIR)数字滤波器和无限冲激响应(IIR)数字滤波器广泛应用于数字信号处理系统中。

IIR数字滤波器方便简单,但它相位的非线性,要求采用全通网络进行相位校正,且稳定性难以保障。

FIR滤波器具有很好的线性相位特性,使得它越来越受到广泛的重视。

有限冲击响应(FIR)滤波器的特点:1 既具有严格的线性相位,又具有任意的幅度;2 FIR滤波器的单位抽样响应是有限长的,因而滤波器性能稳定;3只要经过一定的延时,任何非因果有限长序列都能变成因果的有限长序列,因而能用因果系统来实现;4 FIR滤波器由于单位冲击响应是有限长的,因而可用快速傅里叶变换(FFT)算法来实现过滤信号,可大大提高运算效率。

5 FIR也有利于对数字信号的处理,便于编程,用于计算的时延也小,这对实时的信号处理很重要。

6 FIR滤波器比较大的缺点就是阶次相对于IIR滤波器来说要大很多。

FIR数字滤波器是一个线性时不变系统(LTI),N阶因果有限冲激响应滤波器可以用传输函数H(z)来描述,0()()N k k H z h k z -==∑(0.1)在时域中,上述有限冲激响应滤波器的输入输出关系如下:0[][][][][]N k y n x n h n x k h n k ==*=-∑(0.2)其中,x [n ]和y [n ]分别是输入和输出序列。

N 阶有限冲激响应滤波器要用N +1个系数描述,通常要用N+1个乘法器和N 个两输入加法器来实现。

乘法器的系数正好是传递函数的系数,因此这种结构称为直接型结构,可通过式(1.2)来实现,如图1。

基于matlab的fir数字滤波器的设计

基于matlab的fir数字滤波器的设计

一、引言数字滤波器是数字信号处理中至关重要的组成部分,它能够对数字信号进行滤波处理,去除噪音和干扰,提取信号中的有效信息。

其中,fir数字滤波器作为一种常见的数字滤波器类型,具有稳定性强、相位响应线性等特点,在数字信号处理领域得到了广泛的应用。

本文将基于matlab软件,探讨fir数字滤波器的设计原理、方法和实现过程,以期能够全面、系统地了解fir数字滤波器的设计流程。

二、fir数字滤波器的基本原理fir数字滤波器是一种有限长冲激响应(finite impulse response, FIR)的数字滤波器,其基本原理是利用线性相位特性的滤波器来实现对数字信号的筛选和处理。

fir数字滤波器的表达式为:$$y(n) = \sum_{k=0}^{M}h(k)x(n-k)$$其中,y(n)为输出信号,x(n)为输入信号,h(k)为滤波器的系数,M为滤波器的长度。

fir数字滤波器的频率响应特性由其系数h(k)决定,通过设计合适的系数,可以实现对不同频率成分的滤波效果。

三、fir数字滤波器的设计方法fir数字滤波器的设计方法主要包括窗函数法、频率抽样法、最小最大法等。

在matlab中,可以通过信号处理工具箱提供的fir1函数和firls函数等来实现fir数字滤波器的设计。

下面将分别介绍这两种设计方法的基本原理及实现步骤。

1. 窗函数法窗函数法是fir数字滤波器设计中最为常见的方法之一,其基本原理是通过对理想滤波器的频率响应进行窗函数加权来满足设计要求。

在matlab中,可以使用fir1函数实现fir数字滤波器的设计,其调用格式为:h = fir1(N, Wn, type)其中,N为滤波器的阶数,Wn为滤波器的截止频率,type为窗函数的类型。

通过调用fir1函数,可以灵活地设计出满足特定要求的fir数字滤波器。

2. 频率抽样法频率抽样法是fir数字滤波器设计中的另一种重要方法,其基本原理是在频域上对理想滤波器的频率响应进行抽样,并拟合出一个最优的滤波器。

基于MATLAB设计FIR滤波器

基于MATLAB设计FIR滤波器

基于MATLAB设计FIR滤波器FIR(Finite Impulse Response)滤波器是一种数字滤波器,它具有有限的冲激响应长度。

基于MATLAB设计FIR滤波器可以使用signal工具箱中的fir1函数。

fir1函数的语法如下:b = fir1(N, Wn, window)其中,N是滤波器的阶数,Wn是截止频率,window是窗函数。

要设计一个FIR低通滤波器,可以按照以下步骤进行:步骤1:确定滤波器的阶数。

阶数决定了滤波器的截止频率的陡峭程度。

一般情况下,阶数越高,滤波器的陡峭度越高,但计算复杂度也会增加。

步骤2:确定滤波器的截止频率。

截止频率是指在滤波器中将信号的频率限制在一定范围内的频率。

根据应用的需求,可以选择适当的截止频率。

步骤3:选择窗函数。

窗函数是为了在时域上窗口函数中心增加频率衰减因子而使用的函数。

常用的窗函数有Hamming、Hanning等。

窗函数可以用来控制滤波器的幅度响应特性,使得它更平滑。

步骤4:使用fir1函数设计滤波器。

根据以上步骤确定滤波器的阶数、截止频率和窗函数,可以使用fir1函数设计FIR滤波器。

具体代码如下:N=50;%设定阶数Wn=0.5;%设定截止频率window = hanning(N + 1); % 使用Hanning窗函数步骤5:使用filter函数对信号进行滤波。

设计好FIR滤波器后,可以使用filter函数对信号进行滤波。

具体代码如下:filtered_signal = filter(b, 1, input_signal);其中,input_signal是输入信号,filtered_signal是滤波后的信号。

以上,便是基于MATLAB设计FIR滤波器的简要步骤和代码示例。

根据具体需求和信号特性,可以进行相应的调整和优化。

基于MATLAB的FIR和IIR数字滤波器的设计

基于MATLAB的FIR和IIR数字滤波器的设计

基于MATLAB的FIR和IIR数字滤波器的设计一、本文概述随着数字信号处理技术的飞速发展,数字滤波器作为其中的核心组件,已经广泛应用于通信、音频处理、图像处理、生物医学工程等诸多领域。

在数字滤波器中,有限脉冲响应(FIR)滤波器和无限脉冲响应(IIR)滤波器是最常见的两种类型。

它们各自具有独特的优点和适用场景,因此,对这两种滤波器的深入理解和设计掌握是工程师和研究人员必备的技能。

本文旨在通过MATLAB这一强大的工程计算工具,详细介绍FIR 和IIR数字滤波器的设计原理、实现方法以及对比分析。

我们将简要回顾数字滤波器的基本概念和分类,然后重点阐述FIR和IIR滤波器的设计理论,包括窗函数法、频率采样法、最小均方误差法等多种设计方法。

接下来,我们将通过MATLAB编程实现这些设计方法,并展示如何根据实际应用需求调整滤波器参数以达到最佳性能。

本文还将对FIR和IIR滤波器进行性能对比,分析它们在不同应用场景下的优缺点,并提供一些实用的设计建议。

我们将通过几个典型的应用案例,展示如何在MATLAB中灵活应用FIR和IIR滤波器解决实际问题。

通过阅读本文,读者将能够深入理解FIR和IIR数字滤波器的设计原理和实现方法,掌握MATLAB在数字滤波器设计中的应用技巧,为未来的工程实践和研究工作打下坚实的基础。

二、FIR滤波器设计有限脉冲响应(FIR)滤波器是一种数字滤波器,其特点是其脉冲响应在有限的时间后为零。

因此,FIR滤波器是非递归的,没有反馈路径,从而保证了系统的稳定性。

在设计FIR滤波器时,我们主要关注的是滤波器的阶数、截止频率和窗函数的选择。

在MATLAB中,有多种方法可以用来设计FIR滤波器。

其中,最常用的方法是使用fir1函数,该函数可以设计一个线性相位FIR滤波器。

该函数的基本语法是b = fir1(n, Wn),其中n是滤波器的阶数,Wn是归一化截止频率,以π为单位。

该函数返回一个长度为n+1的滤波器系数向量b。

用MAtlab实现FIR数字滤波器的设计

用MAtlab实现FIR数字滤波器的设计

设计方法
• 一、窗函数设计法 • 二、频率抽样设计法 • 三、最小二乘逼近设计法
FIR 数 字 滤 波 器 的 文 件
一、fir1.m
• 本文件采用窗函数法设计FIR数字滤波器,其调用格式是
• 1)b=fir1(N ,W c)
• 2)b=fir1(N,W c ,’high’) • 3)b=fir1(N,W c ,’stop’)
实践课题
FIR 数 字 滤 波 器 的 设 计
实践目的


通过实践加深对Matlab软件的认识。 能熟练应用并基本掌握Matlab软件, 通过实践对课本以外的内容有初步的 了解。 通过设计FIR数字滤波器,对滤波器 的功能和原理有初步的认识和了解。
实践课题简介
在数字信号处理的许多领域中, 如图像处理、数字通信等领域,常 常要求滤波器具有线性相位。FIR数 字滤波器的最大优点就是容易设计 成线性相位特性,而且它的单位冲 激响应是有限长的,所以它永远是 稳定的。

Hale Waihona Puke 上式中N为滤波器的阶次,W c是通带截止频率,其值在0~1之间, 1对应采样频率的一半,b是设计好的滤波器系数(单位冲激响应序 列)其长度为N+1。
对于格式(1)若W c是一标量,则可用来设计低通滤波器;若W c 是 的向量,则用来设计带通滤波器。 格式(2)用来设计高通滤波器。 格式(3)用来设计带阻滤波器。
部分滤波器的例子(频率抽样法)

部分滤波器的例子(最小二乘逼近设计法)

Fircls1设计的低通滤波器,归一化截止频率 为0.3,通带波纹为0.02,阻带波纹为0.008。
实践总结

通过这次实践课题的设计与制作,使我 对Matlab这个软件有了进一步的了解,并且 加深了课本上的知识。与此同时,使我对 滤波器有了初步的认识。提高了我的理解 以及分析能力,理论和实践相结合,不仅 巩固了我的理论知识,同时更提高了我的 实践能力,使我受益匪浅。

FIR滤波器的MATLAB设计与实现

FIR滤波器的MATLAB设计与实现

FIR滤波器的MATLAB设计与实现FIR滤波器(Finite Impulse Response Filter)是一种数字滤波器,其特点是其响应仅由有限长度的序列决定。

在MATLAB中,我们可以使用信号处理工具箱中的函数来设计和实现FIR滤波器。

首先,需要明确FIR滤波器的设计目标,包括滤波器类型(低通、高通、带通、带阻)、通带和阻带的频率范围、通带和阻带的增益等。

这些目标将决定滤波器的系数及其顺序。

在MATLAB中,我们可以使用`fir1`函数来设计FIR滤波器。

该函数的使用方式如下:```matlabh = fir1(N, Wn, type);```其中,`N`是滤波器长度,`Wn`是通带边缘频率(0到0.5之间),`type`是滤波器的类型('low'低通、'high'高通、'bandpass'带通、'stop'带阻)。

该函数会返回一个长度为`N+1`的滤波器系数向量`h`。

例如,如果要设计一个采样频率为10kHz的低通滤波器,通带截止频率为2kHz,阻带频率为3kHz,可以使用以下代码:```matlabfc = 2000; % 通带截止频率h = fir1(50, fc/(fs/2), 'low');```上述代码中,`50`表示滤波器的长度。

注意,滤波器的长度越大,滤波器的频率响应越陡峭,但计算成本也更高。

在设计完成后,可以使用`freqz`函数来分析滤波器的频率响应。

例如,可以绘制滤波器的幅度响应和相位响应曲线:```matlabfreqz(h);```除了使用`fir1`函数外,MATLAB还提供了其他函数来设计FIR滤波器,如`fir2`、`firpm`、`firls`等,具体使用方式可以参考MATLAB的文档。

在实际应用中,我们可以将FIR滤波器应用于音频处理、图像处理、信号降噪等方面。

例如,可以使用FIR滤波器对音频信号进行去噪处理,或者对图像进行锐化处理等。

基于MATLAB的FIR数字滤波器设计

基于MATLAB的FIR数字滤波器设计

基于MATLAB 的FIR 数字滤波器设计摘自:张登奇,李望移.基于MATLAB 的FIR 数字滤波器设计[J]. 计算机时代,2007,(11)摘 要:数字滤波是数字信号处理的重要内容,数字滤波器可分为FIR 和IIR 两大类。

文章根据FIR 滤波器的设计原理,详细介绍了MATLAB 环境下FIR 数字滤波器的设计方法和操作步骤,并列出了设计实例程序及运行结果。

关键词:MATLAB ;数字信号处理;数字滤波器;有限脉冲响应2 FIR 数字滤波器的窗口设计法窗口设计法是从时域出发,将理想滤波器的单位脉冲响应截取一段作为传输函数的系数。

通常情况下,滤波器指标往往在频域给出,算出的理想单位脉冲响应一般是非因果、无限长、物理上不可实现的,需先截短再右移使之成为有限长因果序列,只要截取的长度和方法合理,总能满足频域指标要求。

截短就是加窗,矩形窗最简单,在频域属最小平方逼近,但峰肩和波纹不太理想。

一般希望窗函数的频谱主瓣尽可能地窄,以获得较陡的过渡带,同时能量又要尽量集中在主瓣,以减小峰肩和波纹,进而增加阻带衰减。

实际工程中常用窗的特性及MATLAB 函数比较如表1所示。

表1 常用窗函数性能比较利用窗口设计法设计FIR 数字滤波器的过程:)()()()()(ωωj D TFT n w d ID TFT j d e H n h n h e H −−→−−−→−−−→−⨯具体操作步骤如下:1、对设计指标进行归一化处理。

数字滤波器传输函数只与频域的相对值有关,故在设计时可先将滤波器设计指标对采样频率进行归一化处理,归一化公式为:2、根据阻带衰减要求和过渡带宽,由表1选择窗函数的类型并估计窗口长度M ,此时滤波器的阶数为M-1(注意窗口长度与滤波器类型的关系)。

3、根据滤波器的理想频响求出理想单位脉冲响应)(n h d 。

4、将理想单位脉冲响应与窗函数相乘,得系统单位脉冲响应。

5、用freqz 函数验算技术指标是否满足要求。

基于Matlab的FIR数字滤波器的优化设计

基于Matlab的FIR数字滤波器的优化设计

基于Matlab的FIR数字滤波器的优化设计摘要通过实例介绍了基于Matlab的FIR滤波器的优化设计方法。

3种结果比较发现,在同样阶数下,优化设计可以获得最佳的频率特性和衰耗特性。

关键词数字滤波器;Matlab;FIR;IIR;优化设计数字滤波在数字信号处理中,占有重要的地位。

数字滤波包括FIR 和IIR两种滤波方式,其中FIR滤波具有很多优点,可以在幅度特性随意设计的同时,保证精确、严格的线性相位,滤波稳定,不会出现递归型结构中的极限振荡等不稳定现象,且误差较小,可采用FFT算法实现,因此运算效率高。

设计FIR滤波器常用的方法有窗函数法与频率抽样法,但是这两种方法均不易精确控制通带与阻带的边界频率,所以在实际应用中有一定的局限性。

文中用Matlab语言实现了最佳等波纹FIR滤波器的设计,通过比较显示了它在等波纹方脉冲响应方面的优化特性。

1 FIR滤波器优化设计法Matlab信号工具箱中提供的Remez函数可对数字滤波器进行优化设计,得到的数字滤波器具有等波纹特性,Remez函数实现Parks McClel-lan算法,即采用数字分析中的Remez算法和切比雪夫最佳一致逼近理论来设计,使实际频响拟合期望频率响应最优。

使用Remez算法设计滤波器,首先需根据要求确定滤波器阶数。

利用Remezord函数可以确定滤波器阶数n,归一化的各频带边界频率fo,归一化的各频带幅度值ao,加权系数w,其格式如下:[n,fo,ao,w]=remezord(f,a,dev)。

Remezord输入参数的含义为向量f指定各频带边界频率,在 0~Fs/2之间取值。

向量a指定各频带的幅度响应。

f的长度是length(f)=2×length(a)-2,必须为偶数。

第一频带总是从0开始,最后一个频带到Fs/2结束。

向量dev指定设计出的滤波器和理想滤波器的幅度响应在每个频带的最大允许误差,因此与向量a的长度相等。

2 FIR滤波器设计实例分别使用窗函数法,频率取样,优化设计法,设计一个线性相位的带通滤波器。

基于MATLAB的FIR数字滤波器的设计与优化

基于MATLAB的FIR数字滤波器的设计与优化

3.1.2 几种常用的窗函数 ............................................ 19 3.2 用频率抽样法设计 FIR 滤波器 ...................................... 29 3.2.1 逼近误差及改进措施 .......................................... 30 3.3 切比雪夫逼近法设计 FIR 滤波器 .................................... 31 4 FIR 数字滤波器的最优化设计 .......................................... 33 4. 1 等波纹切比雪夫逼近准则 ......................................... 34 4. 2 REMEZ 算法 ..................................................... 34 4.3 基于等波纹切比雪夫逼近准则的 FIR DF 的最优化设计 ................. 35 5 FIR 数字滤波器的 MATLAB 仿真 ........................................ 36 5.1 典型窗函数及其调用格式 .......................................... 36 5.2 基于窗函数的 FIR 滤波器的 MATLAB 实现 ............................. 37 5.2.1 理想低通滤波器实现 .......................................... 37 5.2.2 系统各响应函数 .............................................. 37 5.2.3 滤波器主函数 ................................................ 38 5.2.4 滤波器主程序解析 ............................................ 41 5.3 仿真实验结果及分析 .............................................. 42 5.3.1 原信号的时域波形和处理后时域波形 ............................ 42 5.3.2 原信号频域波形与处理后信号的频域波形 ........................ 43 结束语 ............................................................... 44

基于Matlab的FIR低通滤波器设计讲解

基于Matlab的FIR低通滤波器设计讲解

浙江万里学院本科毕业设计(论文)(2012届)论文题目基于Matlab的FIR低通滤波器设计(英文) Design of FIR Low-pass DigitalFilter Based on Matlab所在学院电子信息学院专业班级学生姓名指导教师指导教师职称完成日期年月日基于Matlab的FIR低通滤波器设计黄丽王(浙江万里学院电信学院电子082班)2012年4月摘要FIR数字滤波器是数字信号处理的一个重要组成部分,由于FIR数字滤波器具有严格的线性相位,因此在信息的采集和处理过程中得到了广泛的应用。

本文介绍了FIR 数字滤波器的概念和线性相位的条件,分析了窗函数法、频率采样法和等波纹逼近法设计FIR滤波器的思路和流程。

在分析三种设计方法原理的基础上,借助Matlab仿真软件工具箱中的fir1实现窗函数法设计FIR滤波器。

仿真结果表明,在相频特性上,窗函数法设计的FIR滤波器在通带内具有线性相位;在幅频特性上,窗函数法设计FIR 滤波器的边界频率不够精确。

关键词:FIR数字滤波器;窗函数法;Matlab目录1引言 (1)2FIR数字滤波器线性相位条件 (2)2.1 FIR数字滤波器概述 (2)2.2 FIR数字滤波器线性相位定义 (3)2.3 FIR数字滤波器线性相位时域约束条件 (3)3FIR数字滤波器设计方法 (5)3.1 FIR数字滤波器的窗函数设计法 (5)3.1.1 窗函数设计法的设计思路 (5)3.1.2 吉布斯效应 (7)3.1.3 常见窗函数介绍 (7)3.2 FIR数字滤波器的频率采样设计法 (10)3.2.1 频率采样法的基本思路 (10)3.2.2 频率采样法的设计步骤 (11)3.3 FIR数字滤波器的等波纹逼近设计法 (13)3.4 不同设计方法的比较 (15)4 基于Matlab的FIR数字滤波器设计 (16)4.1 Matlab简介 (16)4.2 窗函数法的Matlab实现 (17)4.2.1 fir1函数介绍 (17)4.2.2 基于fir1函数的窗函数法FIR滤波器设计 (17)5 结论 (23)致谢 (24)参考文献 (25)1引言随着信息科学和计算机技术的不断发展,数字信号处理(DSP,Digital Signal Processing)的理论和技术也得到了飞速的发展,并逐渐成为一门重要的学科,它的重要性在日常通信、图像处理、遥感、声纳、生物医学、地震、消费电子、国防军事、医疗方面等显得尤为突出。

毕业设计(论文)-基于MATLAB的fir数字滤波器的设计

毕业设计(论文)-基于MATLAB的fir数字滤波器的设计

目录摘要----------------------------------------------------------------3 引言----------------------------------------------------------------3正文----------------------------------------------------------------4一、数字滤波器的设计---------------------------------------------------------------41.1 IIR数字滤波器设计------------------------------------61.1.1脉冲响应不变法-------------------------------61.1.2双线性变换法---------------------------------81.2 FIR数字滤波器设计-----------------------------------101.2.1窗函数法------------------------------------111.2.2频率取样法----------------------------------131.2.3最优化设计法--------------------------------14二、数字滤波器的MATLAB设计-------------------------------------152.1 FIR数字滤波器的窗函数法--------------------------152.2 FIR数字滤波器的频率采样法------------------------19 2.3 FIR数字滤波器的最优设计法----------------------23设计总结-----------------------------------------------------------27 参考文献-----------------------------------------------------------27摘要:数字滤波器是数字信号处理的重要环节,数字滤波器可分为IIR和FIR两大类。

毕业设计——基于matlab的FIR数字滤波器设计

毕业设计——基于matlab的FIR数字滤波器设计

毕业设计任务书之袁州冬雪创作设计题目:基于MATLAB的IIR数字滤波器设计专业:通信工程班级学号:姓名:指导教员:设计期限:2012年3月 5日开端2012年5月20日竣事院、系:信息工程学院2012年3月7日一、毕业设计的目标1、通过毕业设计把自己在大学中所学的知识应用到实践当中.2、深入懂得操纵Matlab设计FIR数字滤波器的基本方法.3、在毕业设计的过程中基本掌握了Matlab编译程序的基本方法.4、提高自己的自学才能和动手才能.5、锻炼自己通过网络及各种资料处理实际问题的才能.二、主要设计内容操纵窗函数法、频率抽样法设计FIR滤波器,绘制出滤波器的特性图.操纵所设计的滤波器对多个频带叠加的正弦信号停止处理,对比滤波前后的信号时域和频域图,验证滤波器的效果.最后找一段语音信号,并对此信号停止采样和加噪,绘制出采样后语音信号的时域波形和频谱图,然后用所设计的滤波器对加噪后的信号停止滤波,绘制出滤波后信号的时域波形和频谱,并对滤波前后的信号停止对比,分析信号的变更.三、重点研究问题基于Matlab的FIR数字滤波器的基本设计方法,可以根据性能指标要求独立矫捷地停止滤波器的设计.四、主要技术指标或主要设计参数(1)滤波器类型(2)滤波器阶数和采样频率(3)通带和阻带截止频率(4)通带和阻带衰减五、设计成果要求1、完成毕业设计书文档2、完成程序的编译和调试3、对程序主要语句做出注释本科生毕业设计(论文)开题陈述2012年3月20日基于Matlab的FIR数字滤波器设计摘要:在数字信号处理中 ,由于信号中常常混有各种复杂成分,所以很多信号分析都是基于滤波器而停止的,因此数字滤波器占有极其重要的地位.在数字节制系统中输入信号中所含的干扰对系统的性能会发生很大的影响,因此需要对输入信号停止处理,以提取有用信号.有限长冲激响应(FIR)滤波器在数字信号处理中发挥着重要作用,采取Matlab软件对FIR数字滤波器停止仿真设计,简化了设计中繁琐的计算.本文采取窗函数法,频率采样法通过调用Matlab函数设计FIR数字滤波器.绘制对应的幅频特性曲线.最后用基于Matlab 函数设计的FIR数字滤波器停止语音滤波处理,通过滤波前后信号的频谱图和生成的声音文件的对比,分析分歧滤波器的滤波效果.关键词:FIR数字滤波器,仿真,窗函数法,频率抽样法,Matlab Design of the MATLAB-basedFIR digital filter Abstract:In digital signal processing, because the signal is often mixed with a variety of complex composition, so a lot of signal analysis are based on the filter, digital filter occupies an extremely important position.In digital control system, interference, which is mixed in the input signal, has a great effect on performance of the system. Therefore, processing of input signal has to be done to get useful signal. Finite impulse response (FIR) filter plays an important role in the processing of digital signal. Designing the FIR filter by Matlab can simplify the complicated computation in simulation and improve the performance. By using the methods of window function, frequency sampling ,the design of FIR digital filter has been processed in Matlab. In the view of the designed program of Matlab and the figure of the amplitude-frequency characterization. At last, by using the FIR digital filters which have been designed to process the sound signal based on the Matlab function, the filtering effect of different digital filters is analyzed b y comparing the signal’s spectrum viewers and the sound files which have been generated. The experimental results show that the FIR filters designed in this paper are effective.Key words: FIR digital filter, simulation, windowing method, frequency samplingmethod, Matlab目次第一章绪论Matlab是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks 公司出品的商业数学软件,用于算法开辟、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包含Matlab和Simulink两大部分.1.1 Matlab简介1.1.1 MATLAB的发展MATLAB是英文MATrix LABoratory(矩阵实验室)的缩写.早期的MATLAB 是用FORTRAN语言编写的,虽然功能十分简单,但作为收费软件,还是吸引了大批使用者.颠末几年的校际传播,在John Little.Cleve Moler和Steve Banger合作,于1984年景立MathWorks公司,并正式推出MATLAB第一版版.从这时起,MATLAB的核心采取C语言编写,功能越来越强大,除原有的数值计算功能外,还新增了图形处理功能.MathWorks公司于1992年推出了具有划时代意义的4.0版;1994年推出了4.2版扩大了4.0版的功能,尤其在图形界面设计方面提供了新方法;1997年春5.0版问世,5.0版支持了更多的数据布局,使其成为一种更方便、更完善的编程语言;1999年头推出的MATLAB5.3版在很多方面又进一步改进了MATLAB 语言的功能,随之推出的全新版本的最优化工具箱和Simulink3.0达到了很高水平;2000年10月,MATLAB6.0版问世,在操纵页面上有了很大改观,为用户的使用提供了很大方便,在计算机性能方面,速度变的更快,性能也更好,在图形界面设计上更趋合理,与C语言接口及转换的兼容性更强,与之配套的Simulink4.0版的新功能也特别引人注目;2001年6月推出的MATLAB6.1版及Simulink4.1版,功能已经十分强大;2002年6月推出的MATLAB6.5版及Simulink5.0版,在计算方法、图形功能、用户界面设计、编程手段和工具等方面都有了重大改进;2004年,MathWorks公司推出了最新的MATLAB7.0版,其中集成了最新的MATLAB7编译器、Simumlink6.0仿真软件以及很多工具箱.这一版本增加了很多新的功能和特性,内容相当丰富.Matlab主要面临迷信计算、可视化以及交互式程序设计的高科技计算环境.它将数值分析、矩阵计算、迷信数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为迷信研究、工程设计以及必须停止有效数值计算的众多迷信范畴提供了一种全面的处理方案,代表了当今国际迷信计算软件的先进水平.1.1.2 Matlab的主要功能1.数值计算和符号计算功能2.绘图功能3.语言体系4.MATLAB的工具箱1.2 Matlab的优势及特点1.2.1M ATLAB的优势(1) 工作平台编程环境十分友好(2)编程语言简单易用(3)数据的计算处理才能十分强大(4)图像处理才能强大(5)模块集合工具箱应用广泛(6)程序的接口和发布平台很实用(7)可以开辟用户界面1.2.2 Matlab 语言的特点MATLAB语言被称为第四代计算机语言,其操纵丰富的函数资源,使程序员从繁琐的程序代码中束缚出来,其最突出的特点就是简洁.MATLAB用更直观的、符合人们思维习惯的代码,代替了C和FORTRAN语言的冗长代码,给用户带来最直观、最简洁的程序开辟环境,下面简单先容一下MATLAB的主要特点.语言简洁紧凑,使用方便,库函数十分丰富.MATLAB程序书写的形式自由,操纵丰富的库函数避开了繁琐的子程序编程任务,由于库函数都是由本范畴的专家编写,所以不必担心函数的靠得住性.高效方便的矩阵和数组运算,MATLAB语言不需要定义数组的维数,并给出了矩阵函数、特殊矩阵函数、特殊矩阵专门的库函数,使得在求解信号处理、建模、系统识别、优化和节制等范畴的问题时,显得大为简洁、方便、高效,这是其他高级语言所不克不及的.MATLAB既具有布局化的节制语句,又具有面向对象编程的特性.MATLAB语法限制不严格,程序设计自由度大,通过建立M后缀名文件的形式,与用户已经编好的FORTRAN、C语言成语混合编程,方便地调用有关的FORTRAN、C语言的子程序.可移植性很好,基本上不做修改便可以在各种型号的计算机和操纵系统上面运行.MATLAB的图形功能强大.在C和FORTRAN语言里,绘图都很不容易,但在MATLAB里,数据的可视化非常简单.此外,MATLAB还具有较强的编辑图形界面的才能.MATLAB拥有功能强大的工具箱,主要用来扩大其符号计算功能、图示建仿照真功能、文字处理功能以及与硬件实施交互功能.源程序的开放性强.除外部函数以外,所有MATLAB的核心文件和工具箱文件都是可读可改变的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱.MATLAB软件自1984年推向市场以来,历经十几年的发展和竞争,现已成为国际公认的最优秀的科技应用软件.它功能强大、界面友好、语言自然、开放性强,很快成为应用学科计算机辅助分析、设计、仿真、讲授甚至科技文字吹不成缺少的基础软件.第二章 数字滤波器2.1 数字滤波器简介数字滤波器是一个团圆的系统.它可以对输入的团圆信号停止一系列运算处理,从输入的信号中获得所需要的信息.数字滤波器的系统函数通常暗示为数字滤波器分为有限冲激响应数字滤波器,即FIR数字滤波器和无限冲激响应,即IIR 数字滤波器.从公式的角度来看,FIR 始终为零;IIR .实现数字滤波器的方法一般有两种:一种方法是吧滤波器所要完成的运算编成程序并让计算机执行,也就是采取计算机软件来实现;另外一种方法是设计专用的数字硬件、专用的数字信号处理器或采取通用的数字信号处理器来实现.实现一个数字滤波器一般需要三个基本的运算单元:加法器、单位延时器和常数乘法器.这些基本的单元可以有两种暗示方法—方框图法和信号流程图法. 设计一个数字滤波器的一般步调为:(1)按所给要求确定滤波器的性能(2)用一个因果稳定的团圆线性时不变的系统函数迫近此性能的要求(3)操纵算法来实现这个系统函数(4)操纵计算机仿真或硬件来实现2.2 IIR 数字滤波器无限长单位冲激响应滤波器,即IIR 数字滤波器具有下面几个特点:(1) 系统的单位冲激响应h(n)为无限长的;(2) 系统函数H(z)在有限z 平面上有极点存在;(3)布局上存在着输出到输入的反馈,也就是布局上是递归型的.IIR滤波器的设计就是在给定的技术指标下去确定滤波器的阶数N和系数在已知足给定的技术指标下,应选用阶数尽量低的滤波器,因为滤波器的阶数越低,在实现时成本就越低.在设计IIR滤波器时,最常常使用的方法是操纵摹拟滤波器来设计数字滤波器.其原因为:(1)摹拟滤波器的设计技术相对成熟,可以广泛操纵;(2)摹拟滤波器有大量的参考程序和表格;(3)它的解可以为闭合形式的.2.3 FIR数字滤波器有限长单位冲激响应滤波器,即FIR数字滤波器具有下面几个特点:(1)系统的单位冲激响应h(n)在有限个n值处不为零;(2)系统函数H(z)在|z|>0处收敛,在|z|<0处只有零,即有限z平面上只有零点,儿全部极点都在z=0处(因果系统);(3)没有输出到输入的反馈,但有些布局中(例如频率抽样布局)也包含有反馈的递归部分.,FIR滤波器是指在有限范围内系统的单位脉冲响应h[k]唯一非零值的滤波器.M阶FIR滤波器的系统函数H(z)为其中H(z)M阶多项式,在有限的z平面内H(z)有M个零点,在z平面原点z=0有M个极点. FIR它的别的一种暗示方法为.H(z)具有严格线性相位.由于严格线性相位条件在数学层面上处理起来较为坚苦,因此在FIR滤波器设计中一般使用广义线性相位.线性相位的.如果M阶FIR滤波器的单位脉冲响应h[k]是实数,则可以证明系统是线性相位的充要条件为当h[k]知足h[k]=h[M-k],称h[k]偶对称.当h[k]知足h[k]=-h[M-k],称h[k]奇对称.按阶数h[k]又可分为M奇数和M偶数,所以线性相位的FIR滤波器可以有四种类型.四种线性相位FIR滤波器的性质如表1-1所示表1-1 四种线性相位FIR滤波器的特性2.4 IIR与FIR数字滤波器的比较(1) IIR滤波器h(n)无限长,FIR滤波器h(n)有限长.(2)在技术指标相同的条件下,IIR滤波器的输出对输入有反馈,所以可以用比FIR少的阶数来知足要求,存储单元少,运算次数也少,经济实惠.(3)FIR滤波器的相位是严格线性的,而IIR滤波器做不到这一点,IIR滤波器的选择性越好,其相位的非线性越严重.(4)FIR滤波器主要采取非递归布局,有限精度的运算误差很小.而IIR滤波器在运算中会发生寄生振荡.(5)FIR滤波器可使用疾速傅里叶变换算法,而IIR滤波器不克不及这样. (6)IIR滤波器可以操纵摹拟滤波器的公式、数据和表格,计算量小.FIR滤波器设计时往往要借助计算机.(7)IIR滤波器极点位于z平面任意位置,而FIR滤波器极点固定在原点. (8)IIR滤波器用于设计规范化的选频滤波器,FIR滤波器可设计各种幅度特性和相频特性的滤波器.第三章 FIR数字滤波器的设计在数字信号处理中 ,由于信号中常常混有各种复杂成分,所以很多信号分析都是基于滤波器而停止的,因此数字滤波器占有极其重要的地位 .数字滤波器是具有一定传输选择特性的数字信号处理装置,其输入与输出均为数字信号,实质上是一个由有限精度算法实现的线性时不变团圆系统.它的基本工作原理是操纵团圆系统特性对系统输入信号停止加工和变换,改变输入序列的频谱或信号波形,让有用频率的信号分量通过,抑制无用的信号分量输出.数字滤波器和摹拟滤波器有着相同的滤波概念,根据其频率响应特性可分为低通、高通、带通、带阻等类型.与摹拟滤波器相比,数字滤波器除了具有数字信号处理固有优点外,还有滤波精度高、稳定性好、矫捷性强等优点.FIR滤波器可以得到严格的线性相位,但它的传递函数的极点固定在原点,只能通过改变零点位置来改变性能,为了达到高的选择性,必须用较高的阶数,对于同样的滤波器设计指标,FIR滤波器要求的阶数可以比IIR滤波器高5~10倍.由于FIR数字滤波器具有严格的相位特性,对于信号处理和数据传输是很重要的.今朝FIR滤波器的设计方法主要有三种:窗函数法、频率抽样法和优化设计方法.我们本章主要先容窗函数法、频率抽样法.3.1 窗函数法设计FIR滤波器窗函数设计法又称为傅里叶级数法.暗示要迫近的抱负滤波器的频率响应,则由IDTFT可得出滤波器的单位脉冲响应为.但是我们所要设计的FIR滤波器,其h[k]是有限长的.为了能用FIR滤波器近似抱负滤波器,需将抱负滤波.当截断后的单位脉冲响应FIR滤波器.应中,然后操纵IDTFT0≦k≦M范围的值为FIR滤波器单位脉冲响应.积分平方误差定义为上式中的第一项和第三项与所设计出的滤波器参数是没有关系的,为了使上式中的第二项达到最小,可选择所以用上面的方法得出的滤波器是在积分平方误差最小意义下的最佳滤波器. GibbsFIR 滤波器的.随着滤波器阶数的增加,幅度函数在通带和阻带振荡的波纹数量也随之增加,波纹的宽度随之减小,然而通带和阻带最大波纹的幅度与滤波器的阶数M 无关.窗函数的主瓣宽度决议了N 增大,过渡带减小.下面先容一些常常使用的窗函数,用N=M+1暗示窗函数的长度.(1)矩形窗用矩形窗设计的FIR 滤波器过渡带宽度近似为(2) Hanning 窗Hanning 由Hanning 窗的定义可知,Hanning 窗在其两个端点的值为零,这就使得在实际的应用中不克不及操纵两个端点的数据.我们可将N+2点的Hanning 窗除去两个端点来定义长度为N 的Hanning 窗.修改后的长度为N 的Hanning 窗定义为在Matlab 信号处理工具箱中所采取的就是这种修改后的定义方式.(3) Hamming 窗对升余弦加以改进,可以得到旁瓣更小的效果,窗形式为主瓣峰值的1%.(4) Blackman 窗为了更进一步抑制旁瓣,可再加上余弦的二次谐波分量,得到Blackman 窗Blackman (5) Kaiser 窗此种窗是一种应用广泛的可调节窗,它可以通过改变窗函数的形状来节制窗函数旁瓣的大小,从而在设计中可用滤波器的衰减指标来确定窗函数的形状.长度为N 的Kaiser 窗定义为分歧的阻带衰减要求..可用幂级数暗示为对于任意的一个实变量x ,函数的值都是正的.在实际计算中,上式的求和一般取20项就可以达到所需精度.Kaiser 窗在两头的衰减是逐渐加大的.3.2 频率抽样法设计线性相位FIR 滤波器频率抽样法是从频域出发,在频域直接设计,把给定的抱负频率响应FIR 滤波器的频率响应.设所需滤波现要求设计一个M 阶的FIR 滤波器h[k]M+1个抽样点上,FIRh[k]需要通过设计来确定.如果M+1个方程是线性无关的,则可以通过求解M+1阶的线性方程来得出FIR 滤波器的h[k].一些特殊抽样方法,上述方程的解可以直接由IDFT 得到.由于要求设计出的滤波器是实系数的线性相位FIR位滤波器的约束条件.I 型和IIIII 型和IVM+1为I 型(M 为偶数,h[k]偶对称)线性相位FIR 滤波器在M+1个抽样点值为上式标明I 型线性相位FIR.M+1点的IDFT 即可得到I 型线性相位滤波器的h[k].II 型(M 为奇数,h[k]偶对称)线性相位FIR 滤波器在M+1个抽样点值为上式标明II 型线性相位FIR.III 型(M 为偶数,h[k]奇对称)线性相位FIR 滤波器在M+1个抽样点值为上式标明III 型滤波器线性相位FIR.IV 型(M 为奇数,h[k]奇对称)线性相位FIR 滤波器在M+1个抽样点值为上式标明IV 型线性相位FIR.z 平面单位圆上的N 个等间隔点上抽样出频率响应值.在单位圆上可以有两种抽样方式,第一种是第一个抽样点在w=0处,第二种是第一个抽样点在w=pi/M 处,每种方式可分为M 为偶数与M 为奇数两种.为了提高迫近质量,使迫近误差更小,也就是减小在通带边沿由于抽样点的徒然变更而引起的起伏变更(这种起伏振荡使阻带内最小衰减变小,例如从衰减30dB 变小为衰减20dB ).和窗口法的平滑截断一样,这里是使抱负频率响应的不持续点的边沿加上一些过渡的抽样点(在这些点上抽样的最佳值由计算机算出),从而增加过渡带,减小频带边沿的突变,也就是减小了起伏振荡,增大了阻带最小衰减.这些抽样点上的取值分歧,效果也就分歧.如果精心设计过渡带的抽样值,就有可以使它的游泳频带的博文减小,从而设计出较好的滤波器.一般过渡带取一、二、三点抽样值即可得到称心成果.在抱负低通滤波器的设计中,若不增加过渡点,阻带和通带之间的衰减约为-21dB ,如果在通带和阻带之间增加一个采样点,阻带的最小衰减可以提高到-65dB ,如果增加两个采样点,阻带的最小衰减可以提高到-75dB ,如果增加3个采样点,阻带的最小衰减可以提高到-85dB至-95dB.频率抽样法的优点是可以在频域直接设计,而且适合于最优化设计;缺点是抽样频率只能等于2pi/M的整数倍或等于2pi/M的整数倍上加上pi/M,因而不克不及确保截止频率Wc的自由取值.要想实现自由选择频率,则必须增加抽样点数M,但这种计算量加大.第四章操纵Matlab实现FIR滤波器设计在操纵Matlab设计FIR滤波器时,分别采取窗函数法、频率抽样法和优化设计方法去设计所需的滤波器.在设计的过程中,用设计的滤波器对加有噪声的语音信号或分歧频率叠加的正弦输入信号停止滤波,对比输入前后的图像,以此验证滤波器的性能.在程序绘制的图像中,有滤波器的特性图、输入信号的时域频域图和输出信号的时域频域图.4.1 窗函数法的Matlab实现在窗函数法的Matlab实现中,程序中常常使用的函数有fir1和kaiserord.程序中fir1函数的用法:b=fir1(n,Wn,’ftype’,window)①n为滤波器的阶数②Wn为滤波器的截止频率,它是一个0到1的数.如果Wn是一个含有两个数的向量,则函数返回一个带通滤波器③ftype为滤波器的类型,ftype=’high’时,设计的是高通滤波器;ftype=’stop’时,设计的是带阻滤波器;没有此参数时,设计的是低通滤波器④window为指定的窗函数,矩形窗为boxcar(n),汉宁窗为hanning(n),海明窗为hamming(n),布莱克曼窗为blackman(n),凯撒窗为kaiser(n,beta),没有此参数时,默许为hamming窗程序中kaiserord函数的用法:[n,Wn,beta,ftype]=kaiserord(f,a,dev,Fs)①f是一个向量,为设计滤波器过渡带的起始点和竣事点②a是一个向量,指定频率段的幅度值②dev是一个向量,长度和a相同,为各个通带和阻带内容许的幅度最大误差④n为可以知足要求的滤波器的最小阶数⑤Wn为滤波器的截止频率⑥ftype为根据待设计滤波器的要求得到的滤波器的类型高通滤波器是容许高频信号通过、但减弱(或减少)频率低于截止频率信号通过的滤波器.对于分歧滤波器而言,每一个频率的信号的减弱程度分歧.它有时被称为低频剪切滤波器;在音频应用中也使用低音消除滤波器或者噪声滤波器.低通滤波器与高通滤波器特性恰恰相反.(1)操纵窗函数法设计低通滤波器设计要求:①使用hamming窗,采样频率2000Hz③通带衰减小于等于0.1dB,阻带衰减大于等于50dB程序拜见附录二中的1-(1)操纵窗函数法设计低通滤波器从参考程序及图4-1可以得到所设计出滤波器的参数如下:①滤波器的采样频率为2000Hz,滤波器的阶数为266③通带衰减为0.019dB,阻带衰减为53dB对比设计要求与所设计出滤波器的参数可知,其各项参数均知足设计指标,所设计出的滤波器即为设计所要求的滤波器.从图4-2和图4-3的图像中可以看到:输入信号是由两个分歧频率的正弦信号叠加而成,信号频域图中位于滤波器通带内的频率分量保存了下来,位于滤波器阻带内的频率分量被滤除,滤波器的效果符合设计要求.(2)操纵窗函数法设计带通滤波器设计要求:①使用Kaiser窗,采样频率8000Hz③程序拜见附录二中的1-(2)操纵窗函数法设计带通滤波器图4-4 窗函数法设计带通滤波器的增益响应从参考程序及图4-4可以得到所设计出滤波器的参数如下:①滤波器的采样频率为8000Hz,滤波器的阶数为90③对比设计要求与所设计出滤波器的参数可知,其各项参数均知足设计指标,所设计出的滤波器即为设计所要求的滤波器.图4-6 信号滤波后的时域图和频域图从图4-5和图4-6的图像中可以看到:输入信号是由四个分歧频率的正弦信号叠加而成,信号频域图中位于滤波器通带内的频率分量保存了下来,位于滤波器阻带内的频率分量被滤除,滤波器的效果符合设计要求.(3) 操纵窗函数法设计多通带滤波器设计要求:①使用Kaiser窗,采样频率200Hz③程序拜见附录二中的1-(3)操纵窗函数法设计多通带滤波器图4-7 窗函数法设计多通带滤波器的增益响应从参考程序及图4-7可以得到所设计出滤波器的参数如下:①滤波器的采样频率为200Hz,滤波器的阶数为46③对比设计要求与所设计出滤波器的参数可知,其各项参数均知足设计指标,所设计出的滤波器即为设计所要求的滤波器.图4-9 信号滤波后的时域图和频域图从图4-8和图4-9的图像中可以看到:输入信号是由六个分歧频率的正弦信号叠加而成,信号频域图中位于滤波器通带内的频率分量保存了下来,位于滤波器阻带内的频率分量被滤除,滤波器的效果符合设计要求.4.2 频率抽样法的Matlab实现(1)操纵频率抽样法设计低通滤波器②阻带衰减大于等于15dB程序拜见附录二中的2-(1)操纵频率抽样法设计低通滤波器图4-10 频率抽样法设计低通滤波器的增益响应从参考程序及图4-7可以得到所设计出滤波器的参数如下:①滤波器的阶数为63③阻带衰减为17dB对比设计要求与所设计出滤波器的参数可知,其各项参数均知足设计指标,所设计出的滤波器即为设计所要求的滤波器.。

matlab的fir高通数字滤波器的设计和分析

matlab的fir高通数字滤波器的设计和分析

基于MATLAB的FIR高通数字滤波器的设计和分析陆锐勇(2009012303)通信工程09级02班摘要:以MATLAB中FIR高通数字滤波器为例,对滤波进行工作原理分析。

利用声音处理函数作为数据接口,使用FDAtool设计滤波器,对仿真前后的音频进行波形和频谱的对比分析,加深对滤波的理解。

关键词:高通滤波,数字滤波,matlab,FIR0、引言数字信号处理的目的包括设计某种设备或者建立某个算法用来处理信号序列,使序列具有一些确定的性质,这个设备或者算法结构就成为数字滤波器。

数字滤波器的主要功能是对数字信号进行处理,最常见的处理是保留数字信号中的有用频率成分,去除信号中的无用频率成分。

通常是用有限精度的算法实现的离散时间线性时不变系统,它本身既可以有硬件也可以由软件来实现,还可以用DSP处理器配合软件实现。

数字滤波器可以分为有限冲激响应FIR和无线冲激响应IIR两种。

FIR滤波器可以通过窗函数法、频率抽样法和最优化设计方案来设计【1】。

首先解释FIR 数字高通滤波的物理过程,然后用FDAtool采用窗函数法设计语音高通滤波器。

1、数字滤波器的工作原理数字滤波器具有一定传输特性的数字信号处理功能,它的输入以及输出都是离散的数字信号,并借助于数字器件和一定的数值计算方法,对输入信号进行处理,改变输入信号,进而达到除去信号中无用成分而保留有用成分的功能。

数字滤波器是一个离散的数字信号处理装置,也是一个离散的时间系统,输入和输出都是一个时间序列。

这里设H(z)为数字滤波器的系统函数,h(n)为其相应的脉冲序列,则在时域内有y(n)=x(n)*h(n)在z域内有Y(z)=H(z)*X(z)上式中,X(z),Y(z)分别为输入x(n)和输出y(n)的Z变换。

在频域内有Y(jw)=H(jw)X(jw)上式中,H(jw)为数字滤波器的频率特性;X(jw)和Y(jw)分别为输入x(n)和输出y(n)的频谱.由以上论述可知,一个合适的滤波器系统函数H(z)可以改变输入x(n)的频率特性,经数字滤波处理后得到信号y(n),保留x(n)中的有用频率成分,而去掉其中无用的成分。

基于matlab的fir数字滤波器设计讲诉

基于matlab的fir数字滤波器设计讲诉

基于matlab的fir数字滤波器设计sea(湖南涉外经济学院湖南长沙421000)摘要:介绍了应用Matlab语言设计FIR数字滤波器时采用直接程序设计法。

同时介绍了FIR数字滤波器几种设计方法的函数调用格式;通过实例,给出了程序设计法的详细步骤,并在Matlab的Simulink环境下,对所设计的滤波器进行了仿真。

关键词:数字滤波器;MatlabAbstract: It Introduced the application of Matlab language when designing FIR digital filter with direct procedures. At the same time it introduced several formats of function calls when designing FIR digital filter; through some examples of programming method it gives the detail steps of Simulink in Matlab environment, and to simulate the designed filter.Keywords: digital filter MATLAB引言1. MATLAB的特点MATLAB(Matrix Laboratory)机矩阵实验室是由美国MathWorks公司推出的一款集数值分析、矩阵计算、信号处理和图形显示于一体的工具软件。

它的命令语句功能非常强大,包含了大量高度集成的可直接调用的函数,高效简洁;另一方面,它又是一个开放系统,针对不同的学科,推出了不同的工具箱。

自1984年推向市场以来,经过十几年的发展和竞争,现已成为国际认可(IEEE)的最优化的科技应用软件一。

正是由于MATLAB具有良好的扩展性以及强大的数据分析和处理能力,现已广泛应用于矩阵代数、数值计算、数字信号处理、振动理论、神经网络控制、动态仿真等领域。

基于matlab的FIR数字滤波器设计(多通带,窗函数法)

基于matlab的FIR数字滤波器设计(多通带,窗函数法)

数字信号处理课程设计报告设计名称:基于matlab的FIR数字滤波器设计彪一、课程设计的目的1、通过课程设计把自己在大学中所学的知识应用到实践当中。

2、深入了解利用Matlab设计FIR数字滤波器的基本方法。

3、在课程设计的过程中掌握程序编译及软件设计的基本方法。

4、提高自己对于新知识的学习能力及进行实际操作的能力。

5、锻炼自己通过网络及各种资料解决实际问题的能力。

二、主要设计内容利用窗函数法设计FIR滤波器,绘制出滤波器的特性图。

利用所设计的滤波器对多个频带叠加的正弦信号进行处理,对比滤波前后的信号时域和频域图,验证滤波器的效果。

三、设计原理FIR 滤波器具有严格的相位特性,对于信号处理和数据传输是很重要的。

目前 FIR滤波器的设计方法主要有三种:窗函数法、频率取样法和切比雪夫等波纹逼近的最优化设计方法。

常用的是窗函数法和切比雪夫等波纹逼近的最优化设计方法。

本实验中的窗函数法比较简单,可应用现成的窗函数公式,在技术指标要求高的时候是比较灵活方便的。

如果 FIR 滤波器的 h(n)为实数, 而且满足以下任意条件,滤波器就具有准确的线性相位:第一种:偶对称,h(n)=h(N-1-n),φ (ω)=-(N-1)ω/2第二种:奇对称,h(n)=-h(N-1-n), φ(ω)=-(N-1)ω/2+pi/2对称中心在n=(N-1)/2处四、设计步骤1.设计滤波器2.所设计的滤波器对多个频带叠加的正弦信号进行处理3.比较滤波前后信号的波形及频谱五、用窗函数设FIR 滤波器的基本方法基本思路:从时域出发设计 h(n)逼近理想 hd(n)。

设理想滤波器的单位响应在时域表达为hd(n),则Hd(n) 一般是无限长的,且是非因果的,不能直接作为FIR 滤波器的单位脉冲响应。

要想得到一个因果的有限长的滤波器单位抽样响应 h(n),最直接的方法是先将hd(n)往右平移,再迕行截断,即截取为有限长因果序列:h(n)=hd(n)w(n),并用合适的窗函数迕行加权作为FIR 滤波器的单位脉冲响应。

基于MATLAB设计FIR滤波器

基于MATLAB设计FIR滤波器

目录摘要 (I)Abstract (II)第一章引言 (1)1.1课题背景 (1)1.2 课题研究的现状与前沿 (1)1.3 本课题主要研究内容 (2)第二章基本原理概念 (3)2.1 数字滤波器简介 (3)2.2 MATLAB简介 (4)2.2.1 MATLAB系统的功能及特点 (4)2.2.2 MATLAB的发展 (4)第三章 FIR数字滤波器的原理与设计 (6)3.1 FIR数字滤波器的结构特点 (6)3.2 FIR的线性相位特性 (7)3.3 FIR数字滤波器设计的基本步骤 (7)3.4 FIR数字滤波器的设计方法 (8)3.4.1 频率取样法 (8)3.4.2 FIR滤波器的最优化方法 (9)3.4.3 窗函数法 (12)3.3.4 三种设计方法的比较 (12)第四章窗函数设计 (13)4.1 窗函数设计法的基本原理 (13)4.1.1 窗函数的理论根据 (13)4.1.2 常用窗函数 (14)4.1.3 MATLAB方法 (16)4.2 窗函数设计法的步骤 (17)第五章利用窗函数设计给定参数的FIR滤波器 (19)第六章结论分析 (22)参考文献 (24)致谢 .................................................................................................... 错误!未定义书签。

附录程序清单. (25)基于MATLAB的窗函数法设计FIR滤波器摘要:数字滤波是数字信号处理中一个非常重要且应用普遍的技术。

FIR数字滤波器因其严格的线性相位等优点得到了广泛应用。

MATLAB是国际控制界的标准计算软件。

本文根据FIR数字滤波器设计的基本原理,介绍了窗函数,分析了数字滤波器的设计方法,对基于窗函数设计的FIR滤波器的特性进行了分析。

分别采用Hanning窗、Hamming窗、Blackman窗和Kaiser窗,利用MATLAB语言设计数字FIR低通滤波器并给出了实验结果,达到了性能指标要求,引入了MATLAB工具软件进行设计。

实验四 参考 基于MATLAB的FIR数字滤波器设计

实验四  参考 基于MATLAB的FIR数字滤波器设计

实验4 基于MATLAB 的FIR 数字滤波器设计一、 实验目的(1) 加深对数字滤波器的常用指标理解。

(2) 学习数字滤波器的设计方法。

二、 实验原理 低通滤波器1()1()P P P SS H H δδδπ⎧-≤Ω≤+Ω≤Ω⎪⎨Ω≤Ω≤Ω≤⎪⎩低通滤波器的常用指标:1、 通带边缘频率P Ω,2、 阻带边缘频率SΩ ,3、 通带起伏P δ,4、通带峰值起伏])[1(log2010dB p pδα--=,5、阻带起伏sδ,最小阻带衰减])[(log 2010dB s S δα-=。

三、 要求 (1)在MA TLAB 中,熟悉函数fir1、kaiserord 、remezord 、remez 的使用;B = fir1(n,Wn,'high','noscale')设计滤波器;[n,Wn,beta,ftype] = kaiserord(f,a,dev)估计滤波器阶数;[n,fo,ao,w] = remezord (f,a,dev ,fs)计算等波纹滤波器阶数n 和加权函数w(ω); B=remez(n,f,a)进行等波纹滤波器的设计(2)阅读附录中的实例,学习FIR 滤波器的设计方法及其在MA TLAB 中的实现;(3)给出FIR 数字滤波器的冲激响应,绘出它们的幅度和相位频响曲线,讨论它们各自的实现形式和特点。

四、 实验内容利用MA TLAB 编程,分别用窗函数法和等波纹滤波器法设计两种FIR 数字滤波器,指标要求如下:通带边缘频率:π45.01=ΩP ,π65.02=ΩP ,通带峰值起伏:][1dB p≤α。

阻带边缘频率:π3.01=ΩS ,π75.02=ΩS ,最小阻带衰减:][40dB S ≥α。

附录:例1 用凯塞窗设计一FIR 低通滤波器,通带边界频率π3.0=Ωp ,阻带边界频率π5.0=Ωs ,阻带衰减 不小于50dB 。

S Ω-PΩ-P SΩPassband StopbandTransitionbandFig 1 Typical magnitudespecification for a digital LPF解首先由过渡带宽和阻带衰减来决定凯塞窗的N和π2.0=Ω-Ω=∆Ωps,,上图给出了以上设计的频率特性,(a) 为N=30直接截取的频率特性(b)为凯塞窗设计的频率特性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于matlab的fir数字滤波器设计sea(湖南涉外经济学院湖南长沙421000)摘要:介绍了应用Matlab语言设计FIR数字滤波器时采用直接程序设计法。

同时介绍了FIR数字滤波器几种设计方法的函数调用格式;通过实例,给出了程序设计法的详细步骤,并在Matlab的Simulink环境下,对所设计的滤波器进行了仿真。

关键词:数字滤波器;MatlabAbstract: It Introduced the application of Matlab language when designing FIR digital filter with direct procedures. At the same time it introduced several formats of function calls when designing FIR digital filter; through some examples of programming method it gives the detail steps of Simulink in Matlab environment, and to simulate the designed filter.Keywords: digital filter MATLAB引言1. MATLAB的特点MATLAB(Matrix Laboratory)机矩阵实验室是由美国MathWorks公司推出的一款集数值分析、矩阵计算、信号处理和图形显示于一体的工具软件。

它的命令语句功能非常强大,包含了大量高度集成的可直接调用的函数,高效简洁;另一方面,它又是一个开放系统,针对不同的学科,推出了不同的工具箱。

自1984年推向市场以来,经过十几年的发展和竞争,现已成为国际认可(IEEE)的最优化的科技应用软件一。

正是由于MATLAB具有良好的扩展性以及强大的数据分析和处理能力,现已广泛应用于矩阵代数、数值计算、数字信号处理、振动理论、神经网络控制、动态仿真等领域。

MATLAB是用M语言编程,尽管不能在M文件中直接调用C语言程序,但可以通过MATLAB提供的应用编程接口(API)来与外部接口,在MATLAB环境中调用C语言或Fortran程序、输入或输出数据以及与其他软件程序建立客户/服务器关系。

在MATLAB中调用C语言程序,必须通过MEX文件来实现。

2. FIR 数字滤波器滤波就是有选择性地提取或去掉(或削弱)某一段或某几段频率范围内的信号,数字滤波器是一种用来过滤时间离散信号的数字系统,它是通过对抽样数据进行数学处理来达到选频目的。

数字滤波器可分为IIR (无限冲激响应)和FIR (有限冲激响应)两种结构。

随着计算机技术和集成电路技术的发展,数字信号处理以其方便、灵活的特点,越来越引起人们的重视。

数字滤波器是数字信号处理的重要内容,数字滤波器的设计已成为数字信号处理研究中的热点一。

应用Matlab 语言可以快捷地设计出由软件组成的数字滤波器,很容易通过对参数的修改进行性能的优化。

FIR 滤波器(即有限长冲击响应滤波器, Finite Imp ulse Response Digital Filter)最大的优点就是在满足幅频特性的同时,还可以获得严格的线性相位特性,这使它在语音处理、图像处理等要求高保真的数字信号处理中显得十分重要。

FIR 数字滤波器的设计原理 1. FIR 滤波器设计原理由于FIR 滤波器冲击响应h[n]是有限长序列,因此这种结构可用非递归结构来实现[1]。

FIR 数字滤波器系统函数一般形式为:10()()N kn H z h k z --==∑。

FIR 滤波器数学表达式可用差分方程来表示:10()()()N k y n h k x n k -==-∑。

式中:y (n )输出序列;h (k )滤波器系数;n 滤波器阶数;x (k )输入序列。

应用Matlab 设计FIR 滤波器的主要任务就是根据给定的性能指标,设计一个H (z ) ,使其逼近这一指标,进而计算并确定滤波器的系数b(n),再将所设计滤波器的幅频响应、相频响应曲线作为输出,与设计要求进行比较,对设计的滤波器进行优化。

FIR 滤波器的主要设计方法有窗函数法、最优化设计法及约束最小二乘逼近法[2]。

在滤波器传统设计中,要得到其幅频和相频响应特性,需要根据这些方法进行大量的计算,这使得滤波器的设计缓慢,周期变长,不利于设计的优化。

Matlab 信号处理工具箱中提供了基于滤波器设计方法的工具函数,编程中可根据设计要求直接调用相应的函数,方便快捷,见表1 。

2. 用窗函数法设计FIR 数字滤波器窗函数设计[3]技术是FIR 滤波器设计的主要方法之一,由于其运算简单、精度高,已成为工程中应用最广泛的设计方法。

设计滤波器的基本思想是让待设计的实际滤波器逼近理想特性。

理想低通滤波器的频率特性应为:振幅特性在通带内为1,阻带内为0;在通带内的相位特性与w 成线性关系,即⎪⎩⎪⎨⎧≤<≤⨯=-..,1)(,0πw w w w w e e H c c c jwn jwd 它对应的理想单位冲激相应hd(n)为.)()](sin[21)(000n n n n w dw een h c w w jwnjwn d nc--==⎰--ππ可见,理想低通滤波器的单位冲激响应hd (n)是无限长的非因果序列。

而我们要设计的是FIR 滤波器,其h( n)必然是有限长的,为了构造物理上可以实现的长度为N 的因果线性相位滤波器,必须将hd( n) 截取长度为N 的一段,或者说用一个有限长度的窗口函数序列w ( n) 来截取hd ( n),即h( n) = w ( n) hd ( n),因而窗函数序列的形状及长度的选择就是关键。

工程实际中常用的窗函数有6种,即矩形窗、三角形窗、汉宁(Hanning)窗、哈明(Hamming)窗、布莱克曼(Blackman) 窗和凯泽( Kaiser) 窗。

它们之间的性能比较如表2所示。

实际的FIR 数字滤波器的频率响应H(jwe ) 逼近理想滤波器频率响应Hd(jwe )的好坏,取决于窗函数的频率特性W( w)。

表2 6种窗函数的特性3. 窗函数法设计步骤3.1用窗函数设计FIR 滤波器的步骤为:(1)选择窗函数类型能够和长度,写出窗函数w (n )表达式。

根据阻带最小衰减选择窗函数w(n)的类型,再根据过渡带宽确定所选窗函数的长度N 。

(2)构造希望逼近的频率响应函数)(jwd e H 。

根据设计需要,一般选择相应的线性相位理想滤波器(理想低通,理想高通,理想带通,理想带阻)。

应当注意,理想滤波器的截止频率wc 点(对低通滤波器)0(21g g H H ≈)近似为最终设计的FIRDFD 的-6dB 频率。

(3)计算:dw e e H n h jwn jw d d )(21)(⎰-=πππ(4)加窗得到设计结果:)()()(n w n h n h d =3.2实际设计时,一般采用MATLAB 工具箱函数实现。

步骤(1)由设计者根据设计指标完成,步骤(2)-(4)的解题过程可调用设计函数fir1来实现。

Fir1时用窗函数法设计线性相位FIRDF 的工具箱函数,调用格式如下:hn=fir1(N,wc,’ftype ’,window) fir 实现线性相位FIR 滤波器的标准窗函数法设计。

“标准”时指再设计低通、高通、带通、带阻FIR 滤波器时,)(jwde H 分别取相应的理想低通、高通、带通、带阻滤波器,故而设计的滤波器的频率响应称为标注频率响应。

hn=fir1(N,wc)可得到6dB 截至频率为wc 的N 阶(单位脉冲响应h(n)长度为N+1)FIR 低通滤波器,默认(缺省参数windows )选用hammiing 窗。

其单位脉冲响应h(n)为:h(n)=h(n+1),n=0,1,2,…,N而且满足线性相位条件:h(n)=h(N-1-n)其中wc 为对π归一化的数字频率,0≤wc ≤1。

hn=fir1(N,wc,’ftype ’)可设计高通和带阻滤波器。

·当ftype=high 时,设计高通FIR 滤波器;·当ftype=stop 时,设计带阻FIR 滤波器。

hn=fir1(N,wc,’ftype ’,window)通过选择wc 、ftype 和window 参数,可以设计各种加窗滤波器。

Fir2可以指定任何形状的Hd (jwe ),用help 命令查阅其调用格式。

4.用Matlab 对FIR 数字滤波器进行仿真设计4.1 编写流程[4]我们以低通数字滤波器设计为例,来介绍用MATLAB 对FIR 数字滤波器进行仿真过程: 设计55阶低通滤波器,截止频率在0.3,并用滤波器对信号sin(2*pi*15*t)+0.5*sin(2*pi*90*t)+0.2*sin(2*pi*300*t)滤波(信号采样频率为600Hz)。

1)用RLS设计数字低通滤波器B=fircls1(n,wo,dp,ds)函数返回长度为n+1 线性相位低通FIR滤波器,截止频率为wo,取值0-1之间。

通带幅度偏离1.0最大值为dp,阻带偏离0最大值为ds,n为滤波器阶数。

2)建立新的M文件选择“File”菜单项,单击“New M-file”按钮,便建立一个M 文件[5]。

3)编写程序,调试程序,在MATLAB 平台上得出实验结果编写完程序,单击“Debug”按钮,即可观察到所设计滤波器幅频特性和滤波前后的波形。

4.2 实例下面给出两个实例说明用MATLAB设计FIR滤波器的优点,及滤波器的滤波特性。

先用最优化设计法设计一个滤波器:例1:设计一个最小阶数的低通滤波器,采样频率fs=2000 Hz,通带截止频率为500Hz,阻带的截至频率为600Hz,阻带最小衰减为40dB,通带的最大衰减为3dB。

在设计之前应先确定用说明方法设计,本例可选择等波纹的最优化设计法。

程序如下:fs=2000; %采样频率rp=3; %通带波纹rs=40; %阻带波纹f=[500 600]; %截止频率a=[1 0]; %期望的幅度dev=[(10^(rp/20)-1)/(10^(rp/20)+1) 10^(-rs/20)];[n,fo,ao,w]=remezord(f,a,dev,fs);b=remez(n,fo,ao,w); %调用最优设计法中remez 函数freqz(b,1,1024,fs)程序运行后,计算机输出该滤波器的幅频及相频响应特性,如图1所示。

图1 滤波器输出的幅频及相频响应特性上图中幅频特性曲线从500Hz开始向下折,这是因为题设中通带截止频率为500Hz,同样图中幅频曲线在600Hz降为最低,是因为题设中阻带的截至频率为600Hz。

相关文档
最新文档