基于matlab的fir数字滤波器设计要点 下载本文

内容发布更新时间 : 2024/11/13 4:20:06星期一 下面是文章的全部内容请认真阅读。

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

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

sea

(湖南涉外经济学院 湖南 长沙 421000)

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

Abstract: 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文件来实现。

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

2.

FIR数字滤波器

滤波就是有选择性地提取或去掉(或

计已成为数字信号处理研究中的热点一。

应用Matlab语言可以快捷地设计出由软件组成的数字滤波器,很容易通过对参数的修改进行性能的优化。FIR滤波器(即有限长冲击响应滤波器, Finite Imp ulse Response Digital Filter)最大的优点就是在满足幅频特性的同时,还可以获得严格的线性相位特性,这使它在语音处理、图像处理等要求高保真的数字信号处理中显得十分重要。

削弱)某一段或某几段频率范围内的信号,数字滤波器是一种用来过滤时间离散信号的数字系统,它是通过对抽样数据进行数学处理来达到选频目的。数字滤波器可分为IIR (无限冲激响应)和FIR (有限冲激响应)两种结构。

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

FIR数字滤波器的设计原理 1. FIR滤波器设计原理

由于FIR 滤波器冲击响应h[n]是有限长序列,因此这种结构可用非递归结构来实现

[1]

。FIR 数字滤波器系统函数一般形式为:

N?1n?0H(z)??h(k)z?kN?1k?0。

FIR 滤波器数学表达式可用差分方程来表示:

y(n)??h(k)x(n?k)。

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

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

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

FIR滤波器的主要设计方法有窗函数法、最优化设计法及约束最小二乘逼近法。在滤波器传统设计中,要得到其幅频和相频响应特性,需要根据这些方法进行大量的计算,这使得滤波器的设计缓慢,周期变长,不利于设计的优化。Matlab信号处理工具箱中提供了基于滤波器设计方法的工具函数,编程中可根据设计要求直接调用相应的函数,方便快捷,见表1 。

表1 FIR数字滤波器设计方法及函数调用格式 [2]

设计方法 调用方法 窗函数法 Fir1 Fir2 Firls Remez 最优化设计法 调用格式 b=fir1(n,Wn) b=fir2(n,f,m) b=firls(n,f,a) bremez(n,f,a,w) 说明 n为阶数;Wn为截止频率 f,m为期望幅频向量和幅值向量 两者仅算法不同,f为频率点向量,n为指定频率点幅度响应,w为权系数 Remezord [ n ,fo ,ao ,w] =remezord Fo为归一化频率边界,ao为频带内幅值,w(f ,a ,dev) Fircls b=fircls(n,f,a,up,lo) b=fircls1(n,wo,dp,ds) 为权向量 up,lo为每个频带上边界和下边界频率,f,a为期望幅频特性的频率向量和幅值向量。 Wo为截至频率,dp为离幅值1的最大偏差,ds为阻带离幅值0的最大偏差。 最小二乘法 Fircls1

2. 用窗函数法设计FIR数字滤波器

窗函数设计[3]技术是FIR滤波器设计的主要方法之一,由于其运算简单、精度高,已

成为工程中应用最广泛的设计方法。设计滤波器的基本思想是让待设计的实际滤波器逼近理想特性。理想低通滤波器的频率特性应为:振幅特性在通带内为1,阻带内为0;在通带内的相位特性与w成线性关系,即

?jwn0?1?e,w?wc.?jwHd(e)??

ww?w??.?c?c,它对应的理想单位冲激相应hd(n)为

1hd(n)?2?

?wn?wce?jwn0ejwnsin[wc(n?n0)]dw?.

?(n?n0)可见,理想低通滤波器的单位冲激响应hd (n)是无限长的非因果序列。而我们要设