实验6数字滤波器的matlab设计

发布时间:2024-11-28

实验6:数字滤波器的matlab设计

一、实验目的:

1 掌握低通、高通,带通,带阻滤波器的概念

2 掌握使用matlab进行进行滤波器的设计

二、实验原理

数字滤波器是通过一定运算关系,改变输入信号频谱的利用计算机技术实现的软或硬件。 选频数字滤波器设计过程一般可以归纳为以下三个步骤:

(1)按照实际需要性能要求确定滤波器技术指标。

(2)用一个因果稳定的系统函数IIR、FIR去逼近这个要求

(3)用一个有限精度的运算(软、硬件)去实现这个传递函数

实验工具介绍fdatool的介绍

fdatool(filter design & analysis tool)是matlab信号处理工具箱里专用的滤波器设计分析工具,matlab6.0以上的版本还专门增加了滤波器设计工具箱(filter design

toolbox)。fdatool可以设计几乎所有的基本的常规滤波器,包括fir和iir的各种设计方法。它操作简单,方便灵活。

fdatool界面总共分两大部分,一部分是design filter,在界面的下半部,用来设置滤波器的设计参数,另一部分则是特性区,在界面的上半部分,用来显示滤波器的各种特性。design filter部分主要分为:

filter type(滤波器类型)选项,包括lowpass(低通)、highpass(高通)、bandpass(带通)、bandstop(带阻)和特殊的fir滤波器。

design method(设计方法)选项,包括iir滤波器的butterworth(巴特沃思)法、chebyshev type i(切比雪夫i型)法、 chebyshev type ii(切比雪夫ii型) 法、elliptic(椭圆滤波器)法和fir滤波器的equiripple法、least-squares(最小乘方)法、window(窗函数)法。

filter order(滤波器阶数)选项,定义滤波器的阶数,包括specify order(指定阶数)和minimum order(最小阶数)。在specify order中填入所要设计的滤波器的阶数(n阶滤波器,specify order=n-1),如果选择minimum order则matlab根据所选择的滤波器类型自动使用最小阶数。

frenquency specifications选项,可以详细定义频带的各参数,包括采样频率fs和频带的截止频率。它的具体选项由filter type选项和design method选项决定,例如bandpass(带通)滤波器需要定义fstop1(下阻带截止频率)、fpass1(通带下限截止频率)、fpass2(通带上限截止频率)、fstop2(上阻带截止频率),而lowpass(低通)滤波器只需要定义fstop1、fpass1。采用窗函数设计滤波器时,由于过渡带是由窗函数的类型和阶数所决定的,所以只需要定义通带截止频率,而不必定义阻带参数。

magnitude specifications选项,可以定义幅值衰减的情况。例如设计带通滤波器时,可以定义wstop1(频率fstop1处的幅值衰减)、wpass(通带范围内的幅值衰减)、wstop2(频率fstop2处的幅值衰减)。当采用窗函数设计时,通带截止频率处的幅值衰减固定为6db,所以不必定义。

window specifications选项,当选取采用窗函数设计时,该选项可定义,它包含了各种窗函数。

2 运行fdatool

三、实验过程:

1 >> fdatool

2 Designing a low pass filter

We will design a low pass filter that passes all frequencies less than or equal to 20% of the Nyquist frequency (half the sampling frequency) and attenuates frequencies greater than or equal to 50% of the Nyquist frequency. We will use an FIR Equiripple filter with these specifications:

Passband attenuation 1 dB

Stopband attenuation 80 dB

A passband frequency 0.2 [Normalized (0 to 1)]

A stopband frequency 0.5 [Normalized (0 to 1)]

Viewing other Analyses

Once you have designed the filter, you can view the following filter analyses in the display window by clicking any of the buttons on the toolbar:

以一个fir 滤波器的设计为例来说明如何使用matlab设计数字滤波器:在小电流接地系统中注入83.3hz的正弦信号,对其进行跟踪分析,要求设计一带通数字滤波器,滤除工频及整次谐波,以便在非常复杂的信号中分离出该注入信号。参数要求:96阶fir数字滤波器,采样频率1000hz,采用hamming窗函数设计。

本例中,首先在filter type中选择bandpass(带通滤波器);在design method选项中选择fir window(fir滤波器窗函数法),接着在window specifications选项中选取hamming;指定filter order项中的specify order=95;由于采用窗函数法设计,只要给出通带下限截止频率fc1和通带上限截止频率fc2,选取fc1=70hz,fc2=84hz。设置完以后点击design filter即可得到所设计的fir滤波器。通过菜单选项analysis可以在特性区看到所设计滤波器的幅频响应、相频响应、零极点配置和滤波器系数等各种特性。设计完成后将结果保存为1.fda文件。

在设计过程中,可以对比滤波器幅频相频特性和设计要求,随时调整参数和滤波器类型, 以便得到最佳效果。其它类型的fir滤波器和iir滤波器也都可以使用fdatool来设计

3 以默认参数,设计低通,高通,带通,带阻滤波器,比较他们的不同。

4 基于FDATool的FIR滤波器设计

使用FDATool设计FIR滤波器的具体步骤如下:

1.1 滤波器指标

若需要设计一个16阶的FIR滤波器(h(0)=0),给定的参数如下:

(1) 低通滤波器

(2) 采样频率FS为48kHz,滤波器FC为10.8kHz

(3) 输入序列位宽为9位(最高位为符号位)

在此利用MATLAB来完成FIR滤波器系数的确定。

1.2 打开MATLAB的FDATool

MATLAB集成了一套功能强大的滤波器设计工具FDATool(Filter Design & Analysis Tool),可以完成多种滤波器的设计、分析和性能评估。

单击MATLAB主窗口下方的“Start”按钮,如图B.1所示,选择菜单“ToolBox” →“Filter Design” →“Filter Design & Analysis Tool(FDATool)”命令,打开FDATool,如图B.2所示。

另外,在MATLAB主命令窗口内键入“fdatool”,同样可打开FDATool程序界面。

1.3 选择Design Filter

FDATool界面左下侧排列了一组工具按钮,其功能分别如下所述:

● 滤波器转换(TransForm Filter)

● 设置量化参数(Set Quantization Parameters)

● 实现模型(Realize Model)

● 导入滤波器(Import Filter)

● 多速率滤波器(Multirate Filter)

● 零极点编辑器(Pole-zero Editor)

● 设计滤波器(Design Filter)

选择其中的按钮,进入设计滤波器界面,进行下列选择,如图B.3所示。

图B.3 FDATool设计FIR滤波器

● 滤波器类型(Filer Type)为低通(Low Pass)

● 设计方法(Design Method)为FIR,采用窗函数法(Window)

● 滤波器阶数(Filter order)定制为15

● 窗口类型为Kaiser,Beta为0.5

● FS为48kHz,FC为10.8kHz

最后单击Design Filter图标,让MATLAB计算FIR滤波器系数并作相关分析。

其系统函数H(z)可用下式来表示:

H(z)= bzk

k 1

1516 k 显然上式可以写成:

H(z)=z 1 bzk

k 0 k

即可以看成是一个15阶的FIR滤波器的输出结果经过了一个单位延时单元z,所以在FDATool中,把它看成15阶FIR滤波器来计算参数。

1.4 滤波器分析

计算完FIR滤波器系数以后,往往需要对设计好的FIR滤波器进行相关的性能分析,以便了解该滤波器是否满足设计要求。分析操作步骤如下:

选择FDATool的菜单“Analysis”→“Magnitude Response”,启动幅频响应分析如图

B.4所示,x轴为频率,y轴为幅度值(单位为dB)。 1

图B.4 FIR滤波器幅频响应

在图的左侧列出了当前滤波器的相关信息:

● 滤波器类型为Direct Form FIR(直接I型FIR滤波器)

● 滤波器阶数为15

选择菜单“Analysis”→“Phase Response”,启动相频响应分析,如图B.5所示。由该图可以看到设计的FIR滤波器在通带内其相位响应为线性的,即该滤波器是一个线性相位的滤波器。

图B.5 滤波器相频响应

图B.6显示了滤波器幅频特性与相频特性的比较,这可以通过菜单“Analysis”→“Magnitude and Phase Response”来启动分析。

图B.6 滤波器幅频和相频响应

选择菜单“Analysis”→“Group Delay Response”,启动群时延分析。

FDATool还提供了以下几种分析工具:

● 群时延响应分析。

● 冲激响应分析(Impulse Response),如图B.7所示。

● 阶跃响应分析(Step Response),如图B.8所示。

● 零极点图分析(Pole/Zero Plot),如图B.9所示。

图B.7 冲激响应

图B.8 阶跃响应

图B.9 零极点图

求出的FIR滤波器的系数可以通过选择菜单“Analysis”→“Filter Coefficients”来观察。如图B.10所示,图中列出了FDATool计算的15阶直接I型FIR滤波器的部分系数。

图B.10 滤波器系数

1.5 量化

可以看到,FDATool计算出的值是一个有符号的小数,如果建立的FIR滤波器模型需要一个整数作为滤波器系数,就必须进行量化,并对得到的系数进行归一化。为此,单击FDATool左下侧的工具按钮进行量化参数设置。量化参数有三种方式:双精度、单精度和定点。在使用定点量化前,必须确保MATLAB中已经安装定点工具箱并有相应的授权。

1.6 导出滤波器系数

为导出设计好的滤波器系数,选择FDATool菜单的“File”→“Export”命令,打开Export(导出)对话框,如图B.11所示。

图B.11 滤波器系数Export对话框

在该窗口中,选择导出到工作区(Workplace)。这时滤波器系数就存入到一个一维变量Num中了。不过这时Num中的元素是以小数形式出现的:

Num=

Columns 1 through 9

-0.0369 0.0109 0.0558 0.0054 -0.0873 -0.0484 0.1805 0.4133 0.4133 Columns 10 through 16

0.1805 -0.0484 -0.0873 0.0054 0.0558 0.0109 -0.0369

四 实验要求:

(1) 在Matlab中输入程序,验证试验结果。

(2) 在实验报告中写出程序,并解释语句的含义.

(3) 在实验报告中画出结果图。

实验6数字滤波器的matlab设计.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219