文档库 最新最全的文档下载
当前位置:文档库 › 完美版—FIR数字滤波器的设计

完美版—FIR数字滤波器的设计

完美版—FIR数字滤波器的设计
完美版—FIR数字滤波器的设计

1引言

数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。德州仪器、Freescale等半导体厂商在这一领域拥有很强的实力。

数字信号处理的算法需要利用计算机或专用处理设备如数字信号处理器(DSP)和专用集成电路(ASIC)等。数字信号处理技术及设备具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等突出优点,这些都是模拟信号处理技术与设备所无法比拟的。数字信号处理的目的是对真实世界的连续模拟信号进行测量或滤波。因此在进行数字信号处理之前需要将信号从模拟域转换到数字域,这通常通过模数转换器实现。而数字信号处理的输出经常也要变换到模拟域,这是通过数模转换器实现的。

数字信号处理的核心算法是离散傅立叶变换(DFT),是DFT使信号在数字域和频域都实现了离散化,从而可以用通用计算机处理离散信号。而使数字信号处理从理论走向实用的是快速傅立叶变换(FFT),FFT的出现大大减少了DFT的运算量,使实时的数字信号处理成为可能、极大促进了该学科的发展。

DSP(digital signal processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或1的数字信号。再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。

1.1DSP微处理器芯片的主要特点:

(1)在一个指令周期内可完成一次乘法和一次加法;

(2)程序和数据空间分开,可以同时访问指令和数据;

(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;

(4)具有低开销或无开销循环及跳转的硬件支持;

(5)快速的中断处理和硬件I/O支持;

(6)具有在单周期内操作的多个硬件地址产生器;

(7)可以并行执行多个操作;

(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。

1.2DSP优点:

(1)对元件值的容限不敏感,受温度、环境等外部参与影响小;

(2)容易实现集成;

(3)可以分时复用,共享处理器;

(4)方便调整处理器的系数实现自适应滤波;

(5)可用于频率非常低的信号;

(6)可实现模拟处理不能实现的功能:线性相位、多抽样率处理、级联、易于存储等。

1.3DSP技术的应用

语音处理:语音编码、语音合成、语音识别、语音增强、语音邮件、语音储存等。

图像/图形:二维和三维图形处理、图像压缩与传输、图像识别、动画、机器人视觉、多媒体、电子地图、图像增强等。

军事;保密通信、雷达处理、声呐处理、导航、全球定位、跳频电台、搜索和反搜索等。

仪器仪表:频谱分析、函数发生、数据采集、地震处理等。

自动控制:控制、深空作业、自动驾驶、机器人控制、磁盘控制等。

医疗:助听、超声设备、诊断工具、病人监护、心电图等。

家用电器:数字音响、数字电视、可视电话、音乐合成、音调控制、玩具与游戏等。

1.4实现方法

1.在通用的计算机(如PC机)上用软件(如Fortran、C语言)实现;--速度较慢,一般可用于DSP算法的模拟

2.在通用计算机系统中加上专用的加速处理机实现;--专用性强,不便于系统的独立运行

3.用通用的单片机(如MCS-51、96系列等)实现。

这种方法可用于一些不太复杂的数字信号处理,如数字控制等;--只适用于实现简单的DSP算法

4.用通用的可编程DSP芯片实现。

与单片机相比,DSP芯片具有更加适合于数字信号处理的软件和硬件资源,可用于复杂的数字信号处理算法;--应用较多

5.用专用的DSP芯片实现。

在一些特殊的场合,要求的信号处理速度极高,用通用DSP芯片很难实现,例如专用于FFT、数字滤波、卷积、相关等算法的DSP芯片,这种芯片将相应的信号处理算法在芯片内部用硬件实现,无需进行编程。--专用性强

1.5数字信号处理特点

精度高:在模拟系统的电路中,元器件精度要达到10-3以上已经不容易了,而数字系统17位字长可以达到10-5的精度,这是很平常的。例如,基于离散傅里叶变换的数字式频谱分析仪,其幅值精度和频率分辨率均远远高于模拟频谱分析仪。

灵活性强:数字信号处理采用了专用或通用的数字系统,其性能取决于运算程序和乘法器的各系数,这些均存储在数字系统中,只要改变运算程序或系数,即可改变系统的特性参数,比改变模拟系统方便得多。

可以实现模拟系统很难达到的指标或特性:例如:有限长单位脉冲响应数字滤波器可以实现严格的线性相位;在数字信号处理中可以将信号存储起来,用延迟的方法实现非因果系统,从而提高了系统的性能指标;数据压缩方法可以大大地减少信息传输中的信道容量。

可以实现多维信号处理:利用庞大的存储单元,可以存储二维的图像信号或多维的阵列信号,实现二维或多维的滤波及谱分析等。

2软件介绍

2.1MATLAB软件

2.1.1MATLAB软件介绍

MATLAB是“矩阵实验室”(MATrix LABoratoy)的缩写,是目前应用最为广泛的一种集科学运算、程序设计、高质量的可视化与界面设计,以及便于与其他程序和语言借口的软件。目前,MATLAB已经成为自动控制、数字信号处理、动态系统仿真等诸多学科极有效的工具。MATLAB是美国Math Works公司推出的一种面向工程和科学计算的交互式计算软件。它以矩阵运算为基础,把计算、可视化、程序设计融合在一个简单易用的交互式工作环境中,是一款数据分析和处理功能都非常强大的工程实用软件。Matlab是一个交互式的系统,它的基本运算单元是不需指定维数的矩阵,按照IEEE的数值计算标准(能正确处理无穷数Inf(Infinity)、无定NaN(not-a-number)及其运算)进行计算。系统提供了大量的矩阵及其它运算函数,可以方便地进行一些很复杂的计算,而且运算效率极高。Matlab命令和数学中的符号、公式非常接近,可读性强,容易掌握,还可利用它所提供的编程语言进行编程完成特定的工作。除基本部分外,Matlab还根据各专门领域中的特殊需要提供了许多可选的工具箱,如应用于自动控制领域的Control System工具箱和神经网络中Neural Network工具箱等。

2.1.2MATLAB主要特点

1.语言简洁紧凑,使用方便灵活,库函数极其丰富。MATLAB程序书写形式自由,利用起丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。由于库函数都由本领域的专家编写,用户不必担心函数的可靠性。可以说,用MATLAB进行科技开发是站在专家的肩膀上。

2.运算符丰富。由于MATLAB是用C语言编写的,MATLAB提供了和C语言几乎一样多的运算符,灵活使用MATLAB的运算符将使程序变得极为简短。

3.MATLAB既具有结构化的控制语句(如for循环,while循环,break语句和if语句),又有面向对象编程的特性。

4.程序限制不严格,程序设计自由度大。例如,在MATLAB里,用户无需对矩阵预定义就可使用。

5.程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。

6.MATLAB的图形功能强大。在FORTRAN和C语言里,绘图都很不容易,但

在MATLAB里,数据的可视化非常简单。MATLAB还具有较强的编辑图形界面的能力。

7.MATLAB的缺点是,它和其他高级程序相比,程序的执行速度较慢。由于MATLAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。

8.功能强大的工具箱是MATLAB的另一特色。MATLAB包含两个部分:核心部分和各种可选的工具箱。核心部分中有数百个核心内部函数。其工具箱又分为两类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能,图示建模仿真功能,文字处理功能以及与硬件实时交互功能。功能性工具箱用于多种学科。而学科性工具箱是专业性比较强的,control,toolbox,signl proceessing toolbox,commumnication toolbox等。这些工具箱都是由该领域内学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序,而直接进行高、精、尖的研究。

9.源程序的开放性。开放性也许是MATLAB最受人们欢迎的特点。除内部函数以外,所有MATLAB的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。

2.1.3MATLAB常用函数简介

1.wavread函数:[y,fs,bits]=wavread('Blip')用于读取语音,采样值放在向量y中,fs表示采样频率(Hz),bits表示采样位数。sound(x,fs,bits);用于对声音的回放。向量y则就代表了一个信号(也即一个复杂的“函数表达式”)也就是说可以像处理一个信号表达式一样处理这个声音信号。

2.FFT函数:FFT用于序列快速傅立叶变换。其调用格式为:y=fft(x)。其中,x 是序列,y是序列的FFT,x可以为一向量或矩阵:若x为一向量,y是x的FFT,且和x相同长度。若x为一矩阵,则y是对矩阵的每一列向量进行FFT。

3.Fir1函数:fir1函数是基于窗函数的FIR滤波器设计——标准频率响应形状。其调用格式为b=fir1(N,we,’ftype’,window)。ftype和window可以默认。b=fir1(N,wc)可得到截止频率为wc且满足线性相位条件的N阶FIR低通滤波器,window默认选用hamming窗。其单位脉冲响应h(n)为:h(n)=b(n+1),n=0,1,2,…,N。当wc=[wc1,wc2]时,得到的是通带为wc1

4.sound(x,fs,bits):该函数用于播放生硬,向量y就代表了一个信号(也即一个

复杂的“函数表达式”),也就是说可以像处理一个信号表达式一样处理这个声音信号。

2.1.4MATLAB软件的优点

1.此高级语言可用于技术计算

2.此开发环境可对代码、文件和数据进行管理

3.交互式工具可以按迭代的方式探查、设计及求解问题

4.数学函数可用于线性代数、统计、傅立叶分析、筛选、优化以及数值积分等

5.二维和三维图形函数可用于可视化数据

6.各种工具可用于构建自定义的图形用户界面

2.2CCS简介

DSP开发工具CCS具有较完善的软件和硬件开发工具,如:软件仿真器Simulator、在线仿真器Emulator、C编译器和集成开发环境CCS等,给开发应用带来很大方便。

CCS是TI公司针对本公司的DSP产品开发的集成开发环境。它集成了代码的编辑、编译、链接和调试等诸多功能,而且支持C/C++和汇编的混合编程。开放式的结构允许外扩用户自身的模块。它采用Windows风格界面,集编辑、编译、链接、软件仿真、硬件调试以及实时跟踪等功能于一体,极大地方便了DSP芯片的开发与设计,是目前使用最为广泛的DSP开发软件之一。

CCS是一种针对TMS320系列DSP的集成开发环境,在Windows操作系统下,采用图形接口界面,提供有环境配置、源文件编辑、程序调试、跟踪和分析等工具。

CCS有两种工作模式,即

软件仿真器模式:可以脱离DSP芯片,在PC机上模拟DSP的指令集和工作机制,主要用于前期算法实现和调试。

硬件在线编程模式:可以实时运行在DSP芯片上,与硬件开发板相结合在线编程和调试应用程序。

2.2.1CCS的开发系统主要由以下组件构成

①TMS320C54x集成代码产生工具;

②CCS集成开发环境;

③DSP/BIOS实时内核插件及其应用程序接口API;

④实时数据交换的RTDX插件以及相应的程序接口API;

⑤由TI公司以外的第三方提供的各种应用模块插件。

2.2.2各部件的功能

①TMS320C54x集成代码产生工具

用来对C语言、汇编语言或混合语言编程的DSP源程序进行编译汇编,并链接成为可执行的DSP程序。主要包括汇编器、链接器、C/C++编译器和建库工具等。

②CCS集成开发环境

集编辑、编译、链接、软件仿真、硬件调试和实时跟踪等功能于一体。包括编辑工具、工程管理工具和调试工具等。

③DSP/BIOS实时内核插件及其应用程序接口API

主要为实时信号处理应用而设计。包括DSP/BIOS的配置工具、实时分析工具等。

④实时数据交换的RTDX插件和相应的程序接口API

可对目标系统数据进行实时监视,实现DSP与其他应用程序的数据交换。

⑤由TI公司以外的第三方提供的应用模块插件

2.2.3CCS的主要功能

CCS的功能十分强大,它集成了代码的编辑、编译、链接和调试等诸多功能,而且支持C/C++和汇编的混合编程,其主要功能如下:

①具有集成可视化代码编辑界面,用户可通过其界面直接编写C、汇编、.cmd 文件等;

②含有集成代码生成工具,包括汇编器、优化C编译器、链接器等,将代码的编辑、编译、链接和调试等诸多功能集成到一个软件环境中;

③高性能编辑器支持汇编文件的动态语法加亮显示,使用户很容易阅读代码,发现语法错误;

④工程项目管理工具可对用户程序实行项目管理。在生成目标程序和程序库的过程中,建立不同程序的跟踪信息,通过跟踪信息对不同的程序进行分类管理;

⑤基本调试工具具有装入执行代码、查看寄存器、存储器、反汇编、变量窗口等功能,并支持C源代码级调试;

⑥断点工具,能在调试程序的过程中,完成硬件断点、软件断点和条件断点的设置;

⑦探测点工具,可用于算法的仿真,数据的实时监视等;

⑧分析工具,包括模拟器和仿真器分析,可用于模拟和监视硬件的功能、评

价代码执行的时钟;

⑨数据的图形显示工具,可以将运算结果用图形显示,包括显示时域/频域波形、眼图、星座图、图像等,并能进行自动刷新;

⑩提供GEL工具。利用GEL扩展语言,用户可以编写自己的控制面板/菜单,设置GEL菜单选项,方便直观地修改变量,配置参数等;

?支持多DSP的调试;

?支持RTDX技术,可在不中断目标系统运行的情况下,实现DSP与其他应用程序的数据交换;

?提供DSP/BIOS工具,增强对代码的实时分析能力。

2.2.4CCS文件名介绍

使用CCS软件所要用到的文件类型:

●*.cmd——链接命令文件;

●*.obj——由源文件编译或汇编后所生成的目标文件;

●*.out——完成编译、汇编、链接后所形成的可执行文件,可在CCS监控下调试和执行;

●*.wks—工作空间文件,可用来记录工作环境的设置信息;

●*.cdb—CCS的配置数据库文件,是使用DSP/BIOS API模块所必须的。当保存配置文件时,将产生链接器命令文件(*cfg.cmd)、头文件(*cfg.h54)和汇编语言源文件(*cfg.s54)。

2.2.5使用CCS开发应用程序的一般步骤

①打开或创建一个工程项目文件

②编辑各类文件

③对工程项目进行编译

④对结果和数据进行分析和算法评估利用CCS集成开发软件,用户可以在一个开发环境下完成工程项目创建、程序编辑、编译、链接、调试和数据分析等工作环节。

注:①文件包括源程序、目标文件、库文件、链接命令文件和包含文件。

②可以使用CCS提供的集成编辑环境,对头文件、链接命令文件和源程序进行编辑。

③如出现语法错误,将在构建窗口中显示错误信息。用户可以根据显示的信息定位错误位置,更改错误。

3FIR 数字滤波器的设计原理

3.1FIR 滤波器的网络结构

FIR 数字滤波器的差分方程如下:

其系统函数H(Z)为:

实现N 阶FIR 数字滤波器差分方程的网络结构有直接型、级联型和频率抽样型等。

1.直接型

由FIR 滤波器差分方程可直接绘出FIR 数字滤波器的直接型网络结构,如图

3.1:

2.级联型

将FIR 数字滤波器的系统函数H(Z)因式分解,得到

)

1()(221010--=++=∏Z Z H Z H j R j j ββ③

根据式③可绘出FIR 数字滤波器的级联型网络结构图,如图3.2:

∑∑=--====M i i

i M i i Z n h Z b Z X Z Y Z H 00)()()()(Z -1Z -1

Z -1Z -1h (M-1)

h (2)

h (1)h (0)h (M-2)……

……

y(n)x(n)图3.1FIR 数字滤波器的直接型网络结构图)

(...)1()()()(100M n x b x b n x b i n x b n y M M I i -+++=-=∑=

3.频率抽样型

抽样频率型是按下面步骤求出FIR 数字滤波器的H(Z)的

设FIR 滤波器的单位采样脉冲响应h(n)的长度为M ,对其做N 点DFT

(N≥M),可求出)(k H 即

∑-==10)()(N n kn N W n h k H (k=0,1…N-1)④再由内插公式推出

∑-=-----=1011)(1)(N k k N N Z

W k H N Z Z H ⑤令11)()(---=Z

W k H Z H k N k ,11)(--=Z Z H c ,其中)(Z H c 是一种梳状滤波器结构。将式⑤写成如下形式:

有上述步骤求出)(Z H 的方法,称为频率抽样法,其FIR 的结构称为频率抽样型结构,将式⑥用级联方式表示出其结构如图3.3:x(n)y(n)H 0

β11

β2R β1R β22β12β21Z -1Z -1Z -1

Z -

1Z -1Z -1……图3.2FIR 数字滤波器的级联型网络结构图

H(Z)

)()(???→???→?内插公式k H n h DFT ∑-==1

0)(1)()(N k k c Z H N Z H Z H

3.2FIR 滤波器的设计

3.2.1FIR 滤波器的设计原理

FIR 数字滤波器的设计方法主要有窗函数法和频率采样法,本设计采用窗函数法设计。FIR 数字滤波器的实现结构有直接型、级联型、频率抽样型等结构形式,当阶数不多时,利用对称FIR 滤波器的特点,采用直接型结构,此时多输入加法器实现难度不大,但可以减少滤波器数目,从而降低硬件复杂程度。

FIR 结构中的延迟Z -1在程序中实现时就是数据在存储器中的滑动,这对一个L 阶的FIR 数字滤波器来说,就是要求在存储器中开辟一个L 各样本并进行成累加运算。这可以用两种方法来实现该缓冲区:线形缓冲区和循环缓冲区。对于限行缓冲区来说,每当DSP 读入一个样本后都将此样本向后移动,读完最后一个样本后,最前面(最老的)的样本被推出缓冲区,并输入最新的样本至缓冲区顶部。线性缓冲区的存储器延时可以由具有数据移动功能的DMOV 指令来实现,它需要将缓冲区置于内部DARAM 块中;对于循环缓冲区,每当输入新样本时,以新样本改写缓冲区中最老的样本,而缓冲区中的其他样本不需要其他样本移动。循环缓冲区可采用循环寻址技术实现,它不需要必须定位在DARAM 块中,但需要适当的缓冲区对准以满足循环寻址的要求。下面主要介绍一下循环寻址方法。

循环缓冲实现延时的特点是:

(1)实现N 阶FIR 数字滤波器时,需要在数据存储器中开辟一个称为滑窗的N 个单元的缓冲区,滑窗中存放最新的N 个样本。

(2)当每次输入新样本时以新的样本改写滑窗中最老的样本,而滑窗中其他

-N

Z --Z -N 0N W 1N W )1(--N N W -1Z --1

Z --1Z -0H N 1

)

(n y )

(n x ……

图3.3FIR 数字滤波器的频率抽样型网络结构图

的数据不需要移动。

(3)利用片内BK (循环缓冲区长度)寄存器对滑窗进行间接寻址,循环缓冲区地址首位相邻。

下面以N=6的FIR 数字滤波器循环缓冲区为例,说明循环缓冲区中数据是如何寻址的。(见图3.4)

从图3-4中可以看出,第一次执行)()(5

0i n x a n y i i -=∑=后,间接寻址的辅助寄存

器AR X 指向老的数据)5(-n x ,然后从I/O 口输入一个数据)1(+n x 并将原来存放)5(-n x 的数据存储单元改写为)1(+n x 。接着进行第二次乘累加操作)1()1(5

0i n x a n y i i -+=+∑=,之后AR X

指向)4(-n x 。然后,从I/O 口输入一个数据)2(+n x 并将原来存放)4(-n x 的数据存储单元改写为)2(+n x 。之后进行第三次乘累加操作……

由此,实现循环缓冲区的间接寻址的关键是:使N 个循环缓冲区单元的首尾相临/C54提供循环寻址的方法实现这种元算。利用BK 寄存器实现按模间接寻址。可用的指令有:

…*AR X +%;加1按模修正AR X …

…*AR X -%;减1按模修正AR X …

…*AR X +0%;加AR 0按模修正AR X …

…*AR X -0%;减AR 0按模修正AR X

……*AR X (lk )%;加(lk )按模修正AR X

其中每一条指令均按照BK 寄存器中的值,分别对(AR X +1)、(AR X -1)、(AR X +

图3.4N=6的循环缓冲区存储器图

x(n-5)x(n-4)

x(n-3)

x(n-2)

x(n-1)

x(n)

循环存储器顶部AR X -数据存储器

循环存储器底部x(n+1)x(n+2)x(n-3)x(n-2)x(n-1)x(n)数据存储器AR X -

x(n+1)x(n-4)x(n-3)x(n-2)x(n-1)x(n)数据存储器AR X -

AR 0)、(AR X -AR 0)、(AR X +lk )值取模。在实现N 阶FIR 时,通过STM #lk ,BK 指令设定BK 的值为FIR 的阶数,就能保证循环缓冲区的指针AR X 始终指向循环缓冲区,实现循环缓冲区顶部和底部单元相邻。

由此可见,循环缓冲区中的新老数据不很直接明了,但是利用循环缓冲区实现的有点还是很明显的:它不需要移动数据,不存在一个机器周期中要求进行一次读和一次写的数据存储器,因而可以将循环缓冲区定位在数据存储器的任何位置。

3.2.2仿真结果

(1)在matlab 中的滤波器特性波形如图3.5所示

在matlab 中正弦信号x1=sin(6*pi*t)和噪声信号x2=cos(60*pi*t)波形如图3.6所示:

在matlab 中正弦加噪信号x3=sin(6*pi*t)+cos(60*pi*t)和滤波后y1=sin(6*pi*t)波形如图3.7所示:

图3.5matlab 滤波器特性

图3.6matlab 正弦信号和噪声信号波形

图3.7matlab 正弦加噪信号和滤波后波形

在matlab 中幅度为2频率为50HZ 方波和滤波后的波形如图3.8所示:

在CCS 中正弦加噪信号与滤波后波形如图3.9

所示:

在CCS 中正弦加噪信号频谱特性如图3.10

所示:

在CCS 中正弦加噪信号滤波后频谱特性如图3.11

所示:

图3.8matlab 方波和滤波后的波形

图3.9在CCS 中正弦加噪信号与滤波后波形

图3.10CCS 中正弦加噪信号频谱特性

图3.11CCS 中正弦加噪信号滤波后频谱特性

在CCS 中方波信号和滤波后波形如图3.12

所示:

在CCS 中方波信号频谱特性如图3.13

所示:

在CCS 中方波信号滤波后频谱特性如图3.14

所示:

(2)仿真结果分析

输入为方波,输出波形为正弦波。输入加噪的正弦波,输出为低频的平滑正弦波。说明滤波器的滤波效果符合要求。但比较CCS 和matlab 中各自设计滤波器的输出波形,可以看出,在matlab 中设计的滤波器滤波效果不如CCS 中的圆滑,出来图形效果也不是很好。

图3.12CCS 中方波信号和滤波后波形

图3.13CCS 中方波信号频谱特性

图3.14CCS 中方波信号滤波后频谱特性

4总结

通过这次课设,我认识到了CCS基本使用和编程方法。我也熟悉了CCS的工作环境,可以很熟练的对CCS进行常规的操作,快速进行程序编辑和仿真。本文次课设通过一个设计实例,利用CCSB实现FIR数字滤波器设计,从仿真结果可以看出可以达到技术指标要求,而且方法简单、快捷,大大减轻了工作量。在实际应用中,只需按要求修改滤波器参数,并对程序作较少的改动,即可实现不同截止频率的FIR滤波器,实用性较强。完成任务后才发现这次训练的内容并不算难。首先要做的工作就是把设计条件写入到matlab中,其次就是对条件进行分析,主要是得出一些参数。最后就是对程序经行仿真,然后将数据倒入CCS中验证。以上的内容全都要通过程序的编写来完成。当然,经过了课程设计,我也发现了自己的很多不足。但是通过自己的动手动脑,既增加了知识,又给了我专业知识以及专业技能上的提升,我也会更加努力,认真学习,争取在以后的课程中做得更好!在课设的过程中我们都遇到了很多的难题,请教老师都给了细心地指导,帮助我们解决了很多的问题。老师还教我们意识到自己动手对自己的成长和发展过程中的重要性,还敦促我们多上网查找问题的解决方法,使我们的在网上获取信息的能力得到了增长,再此特别感谢老师对我们的认真指导和教诲。

参考文献

[1]王金龙.DSP设计与实验教程.机械工业出版社,2007

[2]赵健,李毅.数字信号处理学习辅导.北京:清华大学出版社出版,2006

[3]丛玉良.数字信号处理原理及其MATLAB实现.北京:电子工业出版社,2005

[4]陈生谭,郭宝龙等.信号与系统.西安:西安电子科技大学出版社,2001

[5]张卫宁.《DSP原理及应用教程》.科学出版社北京:2008.7

[6]戴明桢.《TMS320C54x DSP结构原理及应用》.北京航空航天大学出版社2007.8

附录

Matlab源程序:

N=15;

wc=0.6*pi;%截止频率在通带和阻带边界频率的中点

n=0:N-1;

alpha=(N-1)/2;%滤波器的相位延迟

m=n-alpha+eps;%eps为matlab系统精度hd=sin(wc*m)./(pi*m);%理想滤波器脉冲响应win=hanning(N);%采用汉宁窗

h=hd.*win';%在时域乘积对应于频域的卷积

b=h;

figure(1)

[H,w]=freqz(b,512,1000);%采用1000hz的采样频率绘出该滤波器的幅度和相频响应

subplot(3,2,1),plot(w/pi,20*log10(abs(H)))

xlabel('Normalized Frequency(×pi rad/sample)');ylabel('振幅/dB');

grid on;

subplot(3,2,2),plot(w/pi,180/pi*unwrap(angle(H)))

xlabel('Normalized Frequency(×pi rad/sample)');ylabel('相位/^0');

grid on;

f1=3;f2=20;

dt=0.02;t=0:dt:3;

x=sin(2*pi*f1*t)+cos(2*pi*f2*t);%输入时域信号

y=fftfilt(b,x);%给出滤波器的输出

T=0:0.02:2;

A=2;P=50;

x1=A*square(P*T,50);%输入时域信号

y1=fftfilt(b,x1);%给出滤波器的输出subplot(3,2,3),plot(t,x),title('输入信号')%绘输入信号

subplot(3,2,4),plot(t,y)

hold on;plot([11]*(N-1)/2*dt,ylim,'r')%绘出延迟到的时刻

xlabel('时间/s'),title('输出信号');

axis([03-1.51.5])

subplot(3,2,5),plot(T,x1),title('输入信号')%绘输入信号

axis([T(1)T(end)-(A+1)(A+1)])

subplot(3,2,6),plot(T,y1)%绘出延迟到的时刻

xlabel('时间/s'),title('输出信号');

axis([T(1)T(end)-(A+1)(A+1)])

CCS汇编源程序:

.title"fir.asm"

.mmregs

.global_main

;PA0:.set0

;PA1:.set1

Hn:.usect"Hn",16

BUF:.usect"BUF",16

Xn:.usect"Xn",200

Yn:.usect"Yn",215

.data

HDATA:.word34*32768/10000,-18*32768/10000,-108*32768/10000, 227*32768/10000

.word165*32768/10000,-997*32768/10000,596*32768/10000, 5082*32768/10000

.word5082*32768/10000,596*32768/10000,-977*32768/10000, 165*32768/10000

.word227*32768/10000,-108*32768/10000,-18*32768/10000, 34*32768/10000

.text

_main:SSBX FRCT

STM#Hn,AR5;AR5指向冲激响应

RPT#15

MVPD HDATA,*AR5+

STM#BUF,AR4;AR4指向缓冲区间

RPTZ A,#15

STL A,*AR4+

STM#Xn,AR3;AR3指向输入

STM#Yn,AR2;AR4指向输出

STM#(Hn+15),AR5;

STM#(BUF+15),AR4

STM-1,AR0

LD#BUF,DP

MVDD*AR3+,*AR4;向缓冲去送数

STM#215,BRC

RPTB#TABLE

STM#16,BK

RPTZ A,#15

MAC*AR4+0%,*AR5+0%,A

STH A,*AR2+

TABLE:MVDD*AR3+,*AR4+0%

.end

中断向量文件:

.title"vectors.asm"

.ref_main

.sect".vectors"

B_main

.end

链接命令文件:

vectors.obj

fir.obj

-o fir.out

-m fir.map

MEMORY

{

PAGE0:EPROM:org=0E000H len=1000H

VECS:org=0FF80H len=0080H PAGE1:SARAM:org=0060H len=0040H

DARAM:org=00101H len=1380H }

FIR数字滤波器设计函数

FIR 数字滤波器设计函数 1. fir1 功能:基于窗函数的FIR 数字滤波器设计——标准频率响应。 格式:b=fir1(n,Wn) b=fir1(n,Wn,'ftype') b=fir1(n,Wn,Window) b=fir1(n,Wn,'ftype',Window) 说明:fir1函数以经典方法实现加窗线性相位FIR 滤波器设计,它可设计出标准的低通、带通、高通和带阻滤波器。 b=fir1(n,Wn)可得到n 阶低通FIR 滤波器,滤波器系数包含在b 中,这可表示成: n z n b z b b z b --++???++=)1()2()1()(1 这是一个截止频率为Wn 的Hamming(汉明)加窗线性相位滤波器,0≤Wn ≤1,Wn=1相应于0.5fs 。 当Wn=[W1 W2]时,fir1函数可得到带通滤波器,其通带为W1<ω< W2。 b=fir1(n,Wn,'ftype')可设计高通和带阻滤波器,由ftype 决定: ·当ftype=high 时,设计高通FIR 滤波器; ·当ftype=stop 时,设计带阻FIR 滤波器。 在设计高通和带阻滤波器时,fir1函数总是使用阶为偶数的结构,因此当输入的阶次为奇数时,fir1函数会自动加1。这是因为对奇数阶的滤波器,其在Nyquist 频率处的频率响应为零,因此不适合于构成高通和带阻滤波器。 b=fir1(n,Wn,Window)则利用列矢量Window 中指定的窗函数进行滤波器设计,Window 长度为n+1。如果不指定Window 参数,则fir1函数采用Hamming 窗。 Blackman 布莱克曼窗 Boxcar 矩形窗 Hamming 海明窗 Hann 汉宁窗 Kaiser 凯瑟窗 Triang 三角窗 b=fir1(n,Wn,'ftype',Window)可利用ftype 和Window 参数,设计各种加窗的滤波器。 由fir1函数设计的FIR 滤波器的群延迟为n/2。 例如: n=32;wn=1/4;window=boxcar(n+1) b=fir1(n,wn,window)

FIR数字滤波器设计与使用

实验报告 课程名称:数字信号处理指导老师:刘英成绩:_________________实验名称: FIR数字滤波器设计与使用同组学生姓名:__________ 一、实验目的和要求 设计和应用FIR低通滤波器。掌握FIR数字滤波器的窗函数设计法,了解设计参数(窗型、窗长)的影响。 二、实验内容和步骤 编写MATLAB程序,完成以下工作。 2-1 设计两个FIR低通滤波器,截止频率 C =0.5。 (1)用矩形窗,窗长N=41。得出第一个滤波器的单位抽样响应序列h 1(n)。记下h 1 (n) 的各个抽样值,显示h 1 (n)的图形(用stem(.))。求出该滤波器的频率响应(的N 个抽样)H 1(k),显示|H 1 (k)|的图形(用plot(.))。 (2)用汉明窗,窗长N=41。得出第二个滤波器的单位抽样响应序列h 2(n)。记下h 2 (n) 的各个抽样值,显示h 2(n)的图形。求出滤波器的频率响应H 2 (k),显示|H 2 (k)|的 图形。 (3)由图形,比较h 1(n)与h 2 (n)的差异,|H 1 (k)|与|H 2 (k)|的差异。 2-2 产生长度为200点、均值为零的随机信号序列x(n)(用rand(1,200)0.5)。显示x(n)。 求出并显示其幅度谱|X(k)|,观察特征。 2-3 滤波 (1)将x(n)作为输入,经过第一个滤波器后的输出序列记为y 1(n),其幅度谱记为|Y 1 (k)|。 显示|X(k)|与|Y 1 (k)|,讨论滤波前后信号的频谱特征。 (2)将x(n)作为输入,经过第二个滤波器后的输出序列记为y 2(n),其幅度谱记为|Y 2 (k)|。 比较|Y 1(k)|与|Y 2 (k)|的图形,讨论不同的窗函数设计出的滤波器的滤波效果。 2-4 设计第三个FIR低通滤波器,截止频率 C =0.5。用矩形窗,窗长N=127。用它对x(n)进行滤波。显示输出信号y

FIR数字滤波器设计与软件实现(精)讲解学习

实验二:FIR 数字滤波器设计与软件实现 一、实验指导 1.实验目的 (1掌握用窗函数法设计 FIR 数字滤波器的原理和方法。 (2掌握用等波纹最佳逼近法设计 FIR 数字滤波器的原理和方法。 (3掌握 FIR 滤波器的快速卷积实现原理。 (4学会调用 MA TLAB 函数设计与实现 FIR 滤波器。 2. 实验内容及步骤 (1认真复习第七章中用窗函数法和等波纹最佳逼近法设计 FIR 数字滤波器的原理; (2调用信号产生函数 xtg 产生具有加性噪声的信号 xt ,并自动显示 xt 及其频谱,如图 1所示;

图 1 具有加性噪声的信号 x(t及其频谱如图 (3请设计低通滤波器,从高频噪声中提取 xt 中的单频调幅信号,要求信号幅频失真小于 0.1dB ,将噪声频谱衰减 60dB 。先观察 xt 的频谱,确定滤波器指标参数。 (4根据滤波器指标选择合适的窗函数,计算窗函数的长度 N ,调用 MATLAB 函数 fir1设计一个 FIR 低通滤波器。并编写程序,调用 MATLAB 快速卷积函数 fftfilt 实现对 xt 的滤波。绘图显示滤波器的频响特性曲线、滤波器输出信号的幅频特性图和时域波形图。 (5 重复 (3 , 滤波器指标不变, 但改用等波纹最佳逼近法, 调用MA TLAB 函数 remezord 和 remez 设计 FIR 数字滤波器。并比较两种设计方法设计的滤波器阶数。 提示:○ 1MA TLAB 函数 fir1的功能及其调用格式请查阅教材; ○ 2采样频率 Fs=1000Hz,采样周期 T=1/Fs;

○ 3根据图 1(b和实验要求,可选择滤波器指标参数:通带截止频率 fp=120Hz,阻带截 至频率 fs=150Hz, 换算成数字频率, 通带截止频率 p 20.24 p f ωπ =T=π, 通带最大衰为 0.1dB , 阻带截至频率 s 20.3 s f ωπ =T=π,阻带最小衰为 60dB 。 3、实验程序框图如图 2所示,供读者参考。 图 2 实验程序框图 4.信号产生函数 xtg 程序清单(见教材 二、滤波器参数及实验程序清单 1、滤波器参数选取 根据实验指导的提示③选择滤波器指标参数: 通带截止频率 fp=120Hz,阻带截至频率 fs=150Hz。代入采样频率 Fs=1000Hz,换算成 数字频率,通带截止频率 p 20.24 p f

FIR数字滤波器设计及MATLAB使用要点

数字信号处理课程设计 《数字信号处理》 课程设计报告 FIR数字滤波器设计及MATLAB实现 专业:通信工程 班级:通信1101班 组次:第9组 姓名及学号: 姓名及学号:

目录 一、设计目的 (3) 二、设计任务 (3) 三、设计原理 (3) 3.1窗函数法 (3) 3.2频率采样法 (4) 3.3最优化设计 (5) 3.3.1等波纹切比雪夫逼近准则 (5) 3.3.2仿真函数 (6) 四、设计过程 (7) 五、收获与体会 (13) 参考文献 (13)

FIR数字滤波器设计及MATLAB实现 一、设计目的 FIR滤波器:有限长单位冲激响应滤波器,是数字信号处理系统中最基 本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性, 同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR 滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。滤波器设 计是根据给定滤波器的频率特性,求得满足该特性的传输函数。 二、设计任务 FIR滤波器设计的任务是选择有限长度的() H e满足一定 h n,使传输函数()jw 的幅度特性和线性相位要求。由于FIR滤波器很容易实现严格的线性相位,所以FIR 数字滤波器设计的核心思想是求出有限的脉冲响应来逼近给定的频率响应。 设计过程一般包括以下三个基本问题: (1)根据实际要求确定数字滤波器性能指标; (2)用一个因果稳定的系统函数去逼近这个理想性能指标; (3)用一个有限精度的运算去实现这个传输函数。 三、设计原理 FIR滤波器设计的任务是选择有限长度的() H e满足一定 h n,使传输函数()jw 的幅度特性和线性相位要求。由于FIR滤波器很容易实现严格的线性相位,所以FIR数字滤波器设计的核心思想是求出有限的脉冲响应来逼近给定的频率响应。 设计过程一般包括以下三个基本问题: (1)根据实际要求确定数字滤波器性能指标; (2)用一个因果稳定的系统函数去逼近这个理想性能指标; (3)用一个有限精度的运算去实现这个传输函数。 3.1窗函数法 设计FIR数字滤波器的最简单的方法是窗函数法,通常也称之为傅立叶级数法。FIR数字滤波器的设计首先给出要求的理想滤波器的频率响应()jw H e,设计 d

FIR数字滤波器设计与实现

FIR 数字滤波器设计与实现 一.摘要:数字滤波器是一种具有频率选择性的离散线性系统,在信号数字处理中有着广泛的应 用。其中FIR 滤波器是一种常用的滤波器,它在保证幅度特性满足技术要求的同时,很容易做到严格的线性相位特性,在语音分析、图像处理、雷达监测等对信号相位要求高的领域有着广泛的应用,能实现IIR 滤波器不能实现的许多功能。 二.关键词:FIR 窗函数系统函数MATLAB 三.内容提要: 数字滤波器的功能就是把输入序列通过一定的运算变换成输出序列,因此数字滤波器的结构系 统中就必须包括一定数量和性能的运算器件和运算单元,而运算器件和运算单元的配置必须由数字滤波器的结构特点和性能特点来决定,因此在进行FIR 数字滤波器的设计之前,有必要介绍和总结FIR 数字滤波器的基本结构和相关特性(包括频响曲线(幅度和相位),单位冲激响应等),在介绍完其基本结构和相关特性后,就进行FIR 数字滤波器的设计和实现。 (一)FIR 滤波器的基本结构 在讨论任何一种滤波器时,都要着重分析其系统函数,FIR 滤波器的系统函数为: n N n z n h z H ∑-==1 0)()(。从该系统函数可看出,FIR 滤波器有以下特点: 1)系统的单位冲激响应h(n)在有限个n 值处不为零; 2)系统函数H(z)在|z|>0处收敛,极点全部在z=0处(稳定系统); 3)结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包 含有反馈的递归部分。 1.FIR 滤波器实现的基本结构有: 1) 横截型(卷积型、直接型) a.一般FIR 滤波器的横截型(直接型、卷积型)结构: 若给定差分方程为: 。则可以直接由差分方程得出FIR 滤波器结构如 下图所示: 这就是FIR 滤波器的横截型结构,又称直接型或卷积型结构。 b .线性相位FIR 滤波器的横截型结构

FIR数字滤波器设计与软件实现

实验二:FIR数字滤波器设计与软件实现 一、实验指导 1.实验目的 (1)掌握用窗函数法设计FIR数字滤波器的原理和方法。 (2)掌握用等波纹最佳逼近法设计FIR数字滤波器的原理和方法。(3)掌握FIR滤波器的快速卷积实现原理。 (4)学会调用MATLAB函数设计与实现FIR滤波器。 2.实验内容及步骤 (1)认真复习第七章中用窗函数法和等波纹最佳逼近法设计FIR数字滤波器的原理; (2)调用信号产生函数xtg产生具有加性噪声的信号xt,并自动显示xt及其频谱,如图1所示; 图1 具有加性噪声的信号x(t)及其频谱如图 (3)请设计低通滤波器,从高频噪声中提取xt中的单频调幅信号,要求信号幅频失真小于0.1dB,将噪声频谱衰减60dB。先观察xt的频谱,确定滤波器指标参数。

(4)根据滤波器指标选择合适的窗函数,计算窗函数的长度N,调用MATLAB函数fir1设计一个FIR低通滤波器。并编写程序,调用MATLAB快速卷积函数fftfilt实现对xt的滤波。绘图显示滤波器的频响特性曲线、滤波器输出信号的幅频特性图和时域波形图。(4)重复(3),滤波器指标不变,但改用等波纹最佳逼近法,调用MATLAB函数remezord和remez设计FIR数字滤波器。并比较两种设计方法设计的滤波器阶数。 提示:○1MATLAB函数fir1的功能及其调用格式请查阅教材; ○2采样频率Fs=1000Hz,采样周期T=1/Fs; ○3根据图1(b)和实验要求,可选择滤波器指标参数:通带截止频率fp=120Hz,阻带截至频率fs=150Hz,换算成数字频率,通带截止 频率 p 20.24 p f ωπ =T=π,通带最大衰为0.1dB,阻带截至频率 s 20.3 s f ωπ =T=π,阻带最小衰为60dB。 ○4实验程序框图如图2所示,供读者参考。

FIR数字滤波器课程设计报告

吉林建筑大学 电气与电子信息工程学院 数字信号处理课程设计报告 设计题目:FIR数字滤波器的设计 专业班级: 学生姓名: 学号: 指导教师: 设计时间:

目录 一、设计目的 (3) 二、设计内容 (3) 三、设计原理 (3) 3.1 数字低通滤波器的设计原理 (3) 3.1.1 数字滤波器的定义和分类 (3) 3.1.2 数字滤波器的优点 (3) 3.1.3 FIR滤波器基本原理 (4) 3.2变换方法的原理 (7) 四、设计步骤 (8) 五、数字低通滤波器MATLAB编程及幅频特性曲线 (9) 5.1 MATLAB语言编程 (9) 5.2 幅频特性曲线 (10) 六、总结 (11) 七、参考文献 (13)

一、设计目的 课程设计是理论学习的延伸,是掌握所学知识的一种重要手段,对于贯彻理论联系实际、提高学习质量、塑造自身能力等于有特殊作用。本次课程设计一方面通过MATLAB 仿真设计内容,使我们加深对理论知识的理解,同时增强其逻辑思维能力,另一方面对课堂所学理论知识作一个总结和补充 二、设计内容 (1)设计一线性相位FIR 数字低通滤波器,截止频率 ,过渡带宽度 , 阻带衰减dB A s 30>。 (2)设计一线性相位FIR 数字低通滤波器,截止频率 ,过渡带宽度 ,阻带衰减dB A s 50>。 三、设计原理 3.1数字低通滤波器的设计原理 3.1.1 数字滤波器的定义和分类 数字滤波器是指完成信号滤波处理功能的,用有限精度算法实现的离散时间线性非时变系统,其输入是一组数字量,其输出是经过变换的另一组数字量。因此,数字滤波器本身既可以是用数字硬件装配成的一台完成给定运算的专用的数字计算机,也可以将所需要的运算编成程序,让通用计算机来执行。 从数字滤波器的单位冲击响应来看,可以分为两大类:有限冲击响应(FIR)数字滤波器和无限冲击响应(IIR)数字滤波器。滤波器按功能上分可以分为低通滤波器(LPF)、高通滤波器(HPF)、带通滤波器(BPF)、带阻滤波器(BSF) [4]。 3.1.2 数字滤波器的优点 相对于模拟滤波器,数字滤波器没有漂移,能够处理低频信号,频率响应特性可做成非常接近于理想的特性,且精度可以达到很高,容易集成等,这些优势决定了数字滤波器的应用将会越来越广泛。同时DSP 处理器(Digital Signal Processor)的出现和FPGA(FieldProgrammable Gate Array)的迅速发展也促进了数字滤波器的发展,并为数字滤波器的硬件实现提供了更多的选择。 数字滤波器具有以下显著优点: 精度高:模拟电路中元件精度很难达到10-3,以上,而数字系统17位字长就可以达到10-5精度。因此在一些精度要求很高的滤波系统中,就必须采用数字滤0.2c ωπ=0.4ωπ?<0.2c ωπ=0.4ωπ?<

线性相位FIR数字滤波器设计

一、设计目的 1.掌握窗函数法设计FIR滤波器的原理和方法,观察用几种常用窗函数设计的 FIR数字滤波器技术指标; 2.掌握FIR滤波器的线性相位特性; 3.了解各种窗函数对滤波特性的影响。 二、设计原理 如果所希望的滤波器的理想频率响应函数为H d(e j J,则其对应的单位脉冲 1 响应为h d(n)=——f H (e恋)e j^dB,用窗函数W N(n)将h d(n)截断,并进行加权处 2兀7 理,得到实际滤波器的单位脉冲响应h(n)=h d(n)w N(n),其频率响应函数为 N _! H (e j ^ h(n)e」n。如果要求线性相位特性,贝U h(n)还必须满足 nM h(n)= h(N-1- n)。可根据具体情况选择h(n)的长度及对称性。 可以调用MATLAB工具箱函数firl实现本实验所要求的线性相位FIR-DF 的设计,调用一维快速傅立叶变换函数fft来计算滤波器的频率响应函数。 fir1是用窗函数法设计线性相位FIRDF hn=fir1(N, wc, ‘ ftype ' , window) fir1实现线性相位FIR滤波器的标准窗函数法设计。 hn=fir1(N,wc)可得到6 dB截止频率为wc的N阶(单位脉冲响应h(n)长度为 N+1)FIR低通滤波器,默认(缺省参数windows)选用hammiing窗。其单位脉冲响应 h(n)满足线性相位条件:h(n)=h(N-1-n) 其中wc为对n归一化的数字频率,OW wc< 1。 当wc= [wc1, wc2]时,得到的是带通滤波器。 hn=fir1(N,wc, ' ftype ') 当ftype=high时,设计高通FIR 当ftype=stop时,设计带阻FIR滤波器。 应当注意,在设计高通和带阻滤波器时,阶数N只能取偶数(h(n)长度N+1 为奇数)。不过,当用户将N设置为奇数时,fir1会自动对N加1。 hn=fir1(N,wc,window)可以指定窗函数向量window。如果缺省window参数,则 fir1默认为hamming窗。可用的其他窗函数有Boxcar, Hanning, Bartlett, Blackman, Kaiser和Chebwin 窗。例如:

基于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数字滤波器设计的综述

FIR数字滤波器设计方法的综述 摘要:在数字信号处理中,数字滤波器是一种被广泛使用的信号处理部件,可改变信号中所含频率分量的相对比例或滤除某些频率分量,使其达到所需的效果,具有举足轻重的作用。在数字信号处理系统中,FIR(有限冲激响应)数字滤波器是一类结构简单的最基本的原件,具有严格的相频特性,能保证信号在传输过程中不会有明显的失真,是相当稳定的系统,其确保线性相位的功能进一步使它得到了广泛的应用。本综述分析了FIR数字滤波器的特征和设计的基本原理,得到了满足系统要求的数字滤波器的设计方法。 关键词:数字信号处理,FIR数字滤波器,设计方法

1引言 1.1背景 现在几乎在所有的工程技术领域中都会涉及到信号的处理问题,其信号表现形式有电、磁、机械以及热、光、声等。数字滤波技术可以在放大信号的同时去除噪声和干扰,而在模拟信号号和噪声同时被放大,数字信号还可以不带误差地被存储和恢复、发送和接收、处理和操纵。许多复杂的系统可以用高精度、大信噪比和可重构的数字技术来实现。目前,数字信号处理已经发展成为一项成熟的技术,并且在许多应用领域逐步代替了传统的模拟信号处理系统,如通讯、故障检测、语音、图像、自动化仪器、航空航天、生物医学工程、雷达等。 数字信号处理中一个非常重要且应用普遍的技术就是数字滤波。所谓数字滤波,是指其输入、输出均为数字信号,通过一定的运算关系改变输入信号所含的频率成分的相对比例或滤除某些频率成分,达到提取和加强信号中的有用成份,消弱干扰成份的目的。数字滤波作为数字信号处理的重要组成部分有着十分广泛的应用前景,可作为应用系统对信号的前置处

理。数字滤波器无论是在理论研究上还是在如通讯、雷达、图象处理、数字音频等实际应用上都有着很好的技术前景和巨大的实用价值。 1.2现状与前沿 在近代电信设备和各类控制系统中,滤波器应用极为广泛。在所有的电子部件中,使用最多,技术最为复杂的即为滤波器。滤波器的优劣直接决定产品的优劣,所以,对滤波器的研究和生产历来为各国所重视。 目前,国外有许多院校和科研机构在研究基于FPGA的DSP应用,比较突出的有Denmark 大学的研究小组正在从事FPGA实现数字滤波器的研究。而我国在DSP技术起步较早,产品的研究开发成绩斐然,基本上与国外同步发展。 随着电子工业的发展,对滤波器的性能要求越来越高。我国电子产品要想实现大规模集成,滤波器集成化仍然是个重要课题。总之,滤波器的发展始终是顺应电子系统的发展趋势的。如何进一步实现滤波器的小型化、集成化、高效化将是今后很长一段时间不变的研究和发展主题。 2 FIR数字滤波器的原理 2.1 FIR数字滤波器的结构特点 如果滤波器的输人和输出都是离散时间信号,则该滤波器的冲激响应也必然是离散的,这种滤波器称之为数字滤波器。该滤波器通过对时域中离散的采样数据作差分运算实现滤波。与IIR滤波器相比,FIR(有限长单位冲激响应)的实现是非递归的,总是稳定的。FIR数 字滤波器的特征是冲激响应只能延续一定时间并且很容易实现严格的线性相位,使信号经过处理后不产生相位失真、舍入误差小、稳定等优点,能够设计具有优良特性的多带通滤波器、微分器和希尔伯特变换器。FIR数字滤波器有以下几个特点: (1)系统的单位冲激响应h(n)在有限个值处不为零; (2)系统函数H(z)在处收敛,在处只有零点,有限z平面只有零点,而全部极点都在z=0处; (3)结构上主要是非递归结构。

FIR数字滤波器的设计与实现

FIR 滤波器的设计 一.摘 要:数字滤波器是一种具有频率选择性的离散线性系统,在信号数字处理中有 着广泛的应用。其中FIR 滤波器是一种常用的滤波器,它在保证幅度特性满足技术要求的同时,很容易做到严格的线性相位特性,在语音分析、图像处理、雷达监测等对信号相位要求高的领域有着广泛的应用,能实现IIR 滤波器不能实现的许多功能。 二.关键词:FIR 窗函数 系统函数 MATLAB 三.引言: 数字滤波器的功能就是把输入序列通过一定的运算变换成输出序列,因此数字滤波器的结构系统中就必须包括一定数量和性能的运算器件和运算单元,而运算器件和运算单元的配置必须由数字滤波器的结构特点和性能特点来决定,因此在进行FIR 数字滤波器的设计之前,有必要介绍和总结FIR 数字滤波器的基本结构和相关特性(包括频响曲线(幅度和相位),单位冲激响应等),在介绍完其基本结构和相关特性后,就进行FIR 数字滤波器的设计和实现。 (1).FIR 滤波器的基本结构 在讨论任何一种滤波器时,都要着重分析其系统函数,FIR 滤波器的系统函数为: n N n z n h z H ∑-== 1 )()( 。从该系统函数可看出,FIR 滤波器有以下特点: 1)系统的单位冲激响应h(n)在有限个n 值处不为零; 2)系统函数H(z)在|z|>0处收敛,极点全部在z=0处(稳定系统); 3)结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包含有反馈的递归部分。 1.FIR 滤波器实现的基本结构有: 1) 横截型(卷积型、直接型) a.一般FIR 滤波器的横截型(直接型、卷积型)结构: 若给定差分方程为: 。 则可以直接由差分方程得出FIR 滤波器 结构如下图所示: 这就是FIR 滤波器的横截型结构,又称直接型或卷积型结构。 b .线性相位FIR 滤波器的横截型结构 若h(n)呈现对称特性,即此FIR 滤波器具有线性相位,则可以简化成横截型结构,下面分情况讨论: ①N 为奇数时线性相位FIR 滤波器实现结构如图所示:

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

实验4 基于MATLAB 的FIR 数字滤波器设计 实验目的:加深对数字滤波器的常用指标和设计过程的理解。 实验原理:低通滤波器的常用指标: P P P for H Ω≤Ω+≤Ω≤-,1)(1δδ πδ≤Ω≤Ω≤ΩS S for H ,)( 通带边缘频率P Ω,阻带边缘频率S Ω ,通带起伏 P δ, 通带峰值起伏] )[1(log 2010dB p p δα--=, 阻带起伏s δ,最小阻带衰减])[(log 2010dB s S δα-=。 数字滤波器有IIR 和FIR 两种类型,它们的特点和设计方法不同。 在MATLAB 中,可以用b=fir1(N,Wn,’ftype’,taper) 等函数辅助设计FIR 数字滤波器。N 代表滤波器阶数;Wn 代表滤波器的截止频率(归一化频率),当设计带通和带阻滤波器时,Wn 为双元素相量;ftype 代表滤波器类型,如’high ’高通,’stop ’带阻等;taper 为窗函数类型,默认为海明窗,窗系数需要实现用窗函数blackman, hamming,hanning chebwin, kaiser 产生。 S P P S Passband Stopband Transition band Fig 1 Typical magnitude specification for a digital LPF

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

解首先由过渡带宽和阻带衰减来决定凯塞窗的N和 π2.0 = Ω - Ω = ?Ω p s , ,

完美版—FIR数字滤波器的设计

1引言 数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。德州仪器、Freescale等半导体厂商在这一领域拥有很强的实力。 数字信号处理的算法需要利用计算机或专用处理设备如数字信号处理器(DSP)和专用集成电路(ASIC)等。数字信号处理技术及设备具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等突出优点,这些都是模拟信号处理技术与设备所无法比拟的。数字信号处理的目的是对真实世界的连续模拟信号进行测量或滤波。因此在进行数字信号处理之前需要将信号从模拟域转换到数字域,这通常通过模数转换器实现。而数字信号处理的输出经常也要变换到模拟域,这是通过数模转换器实现的。 数字信号处理的核心算法是离散傅立叶变换(DFT),是DFT使信号在数字域和频域都实现了离散化,从而可以用通用计算机处理离散信号。而使数字信号处理从理论走向实用的是快速傅立叶变换(FFT),FFT的出现大大减少了DFT的运算量,使实时的数字信号处理成为可能、极大促进了该学科的发展。 DSP(digital signal processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或1的数字信号。再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。 1.1DSP微处理器芯片的主要特点: (1)在一个指令周期内可完成一次乘法和一次加法; (2)程序和数据空间分开,可以同时访问指令和数据; (3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问; (4)具有低开销或无开销循环及跳转的硬件支持; (5)快速的中断处理和硬件I/O支持; (6)具有在单周期内操作的多个硬件地址产生器; (7)可以并行执行多个操作;

FIR数字滤波器设计及软件实现

实验五:FIR数字滤波器设计及软件实现 一、实验目的: (1)掌握用窗函数法设计FIR数字滤波器的原理和方法。 (2)掌握用等波纹最佳逼近法设计FIR数字滤波器的原理和方法。 (3)掌握FIR滤波器的快速卷积实现原理。 (4)学会调用MATLAB函数设计与实现FIR滤波器。 二、实验内容及步骤: (1)认真复习第七章中用窗函数法和等波纹最佳逼近法设计FIR数字滤波器的原理; (2)调用信号产生函数xtg产生具有加性噪声的信号xt,并自动显示xt及其频谱,如图1所示; 图1 具有加性噪声的信号x(t)及其频谱如图 (3)请设计低通滤波器,从高频噪声中提取xt中的单频调幅信号,要求信号幅频失真小于0.1dB,将噪声频谱衰减60dB。先观察xt的频谱,确定滤波器指标参数。 (4)根据滤波器指标选择合适的窗函数,计算窗函数的长度N,调用MATLAB 函数fir1设计一个FIR低通滤波器。并编写程序,调用MATLAB快速卷积函数fftfilt实现对xt的滤波。绘图显示滤波器的频响特性曲线、滤波器输出信号的幅频特性图和时域波形图。 (4)重复(3),滤波器指标不变,但改用等波纹最佳逼近法,调用MATLAB 函数remezord和remez设计FIR数字滤波器。并比较两种设计方法设计的滤波器阶数。 友情提示: ○1MATLAB函数fir1和fftfilt的功能及其调用格式请查阅本课本;

○ 2采样频率Fs=1000Hz ,采样周期T=1/Fs ; ○ 3根据图10.6.1(b)和实验要求,可选择滤波器指标参数:通带截止频率fp=120Hz ,阻带截至频率fs=150Hz ,换算成数字频率,通带截止频率p 20.24p f ωπ=T =π,通带最大衰为0.1dB ,阻带截至频率s 20.3s f ωπ=T =π,阻带最小衰为60dB 。] ○ 4实验程序框图如图2所示。 图2 实验程序框图 三、实验程序: 1、信号产生函数xtg 程序清单: %xt=xtg(N) 产生一个长度为N,有加性高频噪声的单频调幅信号xt,采样频率Fs=1000Hz %载波频率fc=Fs/10=100Hz,调制正弦波频率f0=fc/10=10Hz. function xt=xtg N=1000;Fs=1000;T=1/Fs;Tp=N*T; t=0:T:(N-1)*T; fc=Fs/10;f0=fc/10; %载波频率fc=Fs/10,单频调制信号频率为f0=Fc/10;

fir数字滤波器设计及软件实现

如对您有帮助,请购买打赏,谢谢您! 实验二 FIR 数字滤波器设计与软件实现 1.实验目的 (1)掌握用窗函数法设计FIR 数字滤波器的原理和方法。 (2)掌握用等波纹最佳逼近法设计FIR 数字滤波器的原理和方法。 (3)掌握FIR 滤波器的快速卷积实现原理。 (4)学会调用MATLAB 函数设计与实现FIR 滤波器。 2. 两种设计FIR 滤波器的方法比较 窗函数法简单方便,易于实现。但存在以下缺点:滤波器边界频率不易精确控制。窗函数法总使通带和阻带波纹幅度相等,不能分别控制通带和阻带波纹幅度。所设计的滤波器在阻带边界频率附近的衰减最小,距阻带边界频率越远,衰减越大。,所以如果在阻带边界频率附近的衰减刚好达到设计指标要求,则阻带中其他频段的衰减就有很大富余量,存在较大的资源浪费。 等波纹最佳逼近法是一种优化设计方法,克服了窗函数法的缺点,使最大误差最小化,并在整个逼近频段上均匀分布。用等波纹最佳逼近法设计的FIR 数字滤波器的幅频响应在通带和阻带都是等波纹的,而且可以分别控制通带和阻带波纹幅度。与窗函数法相比,由于这种设计法使最大误差均匀分布,所以设计的滤波器性能价格比最高。阶数相同时,这种设计方法使滤波器的最大逼近误差最小,即通带最大衰减最小,阻带最小衰减最大。指标相同时,这种设计法使滤波器阶数最低。 3. 滤波器参数及实验程序清单 (1) 滤波器参数选取 根据加噪信号频谱图和实验要求,可选择一低通滤波器进行滤波,确定滤波器指标参数:通带截止频率Hz f p 130=,阻带截至频率Hz f s 150=,换算成数字频率,通带截止频率ππω26.02==T f p p ,通带最大衰减为dB p 1.0=α,阻带截至频率π πω3.02==T f s s ,阻带最小衰减为dB s 60=α。 (2) 实验程序清单 图1 程序流程图 信号产生函数xtg 程序清单 function xt=xtg %产生一个长度为N,有加性高频噪声的单频调幅信号xt,采样频率Fs=1000Hz %载波频率fc=Fs/10=100Hz,调制正弦波频率f0=fc/10=10Hz. N=1600; Fs=1000;T=1/Fs;Tp=N*T; t=0:T:(N-1)*T; fc=Fs/10;f0=fc/10; %载波频率fc=Fs/10,单频调制信号频率为f0=Fc/10; mt=cos(2*pi*f0*t); %产生单频正弦波调制信号mt ,频率为f0 ct=cos(2*pi*fc*t); %产生载波正弦波信号ct ,频率为fc xt=mt.*ct; %相乘产生单频调制信号xt nt=2*rand(1,N)-1; %产生随机噪声nt %=======设计高通滤波器hn,用于滤除噪声nt 中的低频成分,生成高通噪声======= fp=150; fs=200;Rp=0.1;As=70; % 滤波器指标

手把手教你设计FIR数字滤波器

手把手教你设计FIR 数字滤波器 1. 滤波器的时域、频域、s 域以及离散化 首先,我们要搞清楚一个概念就是滤波器,其实所谓的滤波器就是一个传递函数,它可是通过改变不同频段上信号的幅值来实现滤波,在知道这一点的前提下,下面的讲述就容易了很多。 这里我们假设滤波器的时域传递函数(连续)s 域为()H s ,时域为()h t ;原始信号s 域为()X s ,时域为()x t ;滤波器的输出s 域为()Y s ,时域为()y t ,如图1所示。(如果分不清楚s 域和时域的童鞋,我觉得你就不要反省了,这个领域不适合你!)我们知道传递函数之间的关系是相乘,而时域的关系是卷积。那么我们就有了下面的两个关系式。 ()()()Y s H s X s = (1) ()()*()y t h t x t =(其中的‘*’表示卷积) (2) 图1 滤波器的传递函数 当然,我们知道在数字滤波器中,当然不可能存在连续函数的,所以我们要对连续函数进行离散化,其实就是一个采样的过程,假设采样频率为S f ,这里我们就需要提到一个定理,就是香农采样定理(采样频率一定要大于传递函数截止频率的两倍,否则就会发生高次谐波的混迭,如果这个道理你不懂的话,建议你去恶补一下信号与系统,这里我只解释一点,便于理解,采样就是以时间间隔为S T 的脉冲采样,那么传递函数的频域就变成了周期为S f 的周期函数,当然如果不理解,也不耽误对下面讲解的理解),所以信号就离散成了()S x nT 、()S h nT 、()S y nT ,其中S T 为采样时间间隔,为了方便下面内容的讲述,这里我们做一个频率的归一化,我们取1S T =,那么采样频率就变成了1S f =,就有了下面的离散时域表示方法。 ()()()k y n h k x n k +∞=-∞= -∑ (3) 值得指出的是再这样种1S T =的归一化过程中,我们认为 2S f 为传递函数系统的最

实验5FIR数字滤波器设计与软件实现汇总

信息院14电信(师范) 实验五:FIR数字滤波器设计与软件实现 一、实验指导 1.实验目的 (1)掌握用窗函数法设计FIR数字滤波器的原理和方法。 (2)掌握用等波纹最佳逼近法设计FIR数字滤波器的原理和方法。 (3)掌握FIR滤波器的快速卷积实现原理。 (4)学会调用MATLAB函数设计与实现FIR滤波器。 2.实验内容及步骤 (1)认真复习第七章中用窗函数法和等波纹最佳逼近法设计FIR数字滤波器的原理; (2)调用信号产生函数xtg产生具有加性噪声的信号xt,并自动显示xt及其频谱,如图1所示; 图1 具有加性噪声的信号x(t)及其频谱如图 程序代码:(信号产生函数xtg程序清单) function xt=xtg(N) %êμ?é??D?o?x(t)2úéú,2¢??ê?D?o?μ?·ù?μì?D??ú?? %xt=xtg(N) 2úéúò???3¤?è?aN,óD?óD????μ??éùμ?μ¥?μμ÷·ùD?o?xt,2é?ù?μ?êFs=10 00Hz

%??2¨?μ?êfc=Fs/10=100Hz,μ÷???y?ò2¨?μ?êf0=fc/10=10Hz. N=1000;Fs=1000;T=1/Fs;Tp=N*T; t=0:T:(N-1)*T; fc=Fs/10;f0=fc/10; %??2¨?μ?êfc=Fs/10£?μ¥?μμ÷??D?o??μ?ê?af0=F c/10; mt=cos(2*pi*f0*t); %2úéúμ¥?μ?y?ò2¨μ÷??D?o?mt£??μ?ê?af0 ct=cos(2*pi*fc*t); %2úéú??2¨?y?ò2¨D?o?ct£??μ?ê?afc xt=mt.*ct; %?à3?2úéúμ¥?μμ÷??D?o?xt nt=2*rand(1,N)-1; %2úéú???ú??éùnt %=======éè????í¨??2¨?÷hn,ó?óú??3y??éùnt?Dμ?μí?μ3é·?,éú3é??í¨ ??éù======= fp=150; fs=200;Rp=0.1;As=70; % ??2¨?÷??±ê fb=[fp,fs];m=[0,1]; % ????remezordoˉêy?ùDè2?êyf,m,dev dev=[10^(-As/20),(10^(Rp/20)-1)/(10^(Rp/20)+1)]; [n,fo,mo,W]=remezord(fb,m,dev,Fs); % è·?¨remezoˉêy?ùDè2?êy hn=remez(n,fo,mo,W); % μ÷ó?remezoˉêy??DDéè??,ó?óú??3y??éùnt?Dμ?μí?μ3é·? yt=filter(hn,1,10*nt); %??3y???ú??éù?Dμí?μ3é·?£?éú3é??í¨ ??éùyt %=========================================================== ===== xt=xt+yt; %??éù?óD?o? fst=fft(xt,N);k=0:N-1;f=k/Tp; subplot(3,1,1);plot(t,xt);grid;xlabel('t/s');ylabel('x(t)'); axis([0,Tp/5,min(xt),max(xt)]);title('(a) D?o??ó??éù2¨D?') subplot(3,1,2);plot(f,abs(fst)/max(abs(fst)));grid;title('(b) D?o??ó??éùμ??μ?×') axis([0,Fs/2,0,1.2]);xlabel('f/Hz');ylabel('·ù?è')输出波形: (3)请设计低通滤波器,从高频噪声中提取xt中的单频调幅信号,要求信号幅

FIR数字低通滤波器设计

第1章 绪论 1.1设计的作用、目的 课程设计是理论学习的延伸,是掌握所学知识的一种重要手段,对于贯彻理论联系实际、提高学习质量、塑造自身能力等于有特殊作用。本次课程设计一方面通过MATLAB 仿真设计内容,使我们加深对理论知识的理解,同时增强其逻辑思维能力,另一方面对课堂所学理论知识作一个总结和补充。 1.2设计任务及要求 通过课程设计各环节的实践,应使学生达到如下要求: 1.掌握双线性变换法及脉冲响应不变法设计IIR 数字滤波器以及窗函数法 设计FIR 数字滤波器的原理、具体方法及计算机编程。 2.观察双线性变换法、脉冲响应不变法及窗函数法设计的滤波器的频域特性,了解各种方法的特点。 3.用MATLAB 画出三种方法设计数字滤波器的幅频特性曲线,记带宽和衰减量,检查结果是否满足要求。 1.3设计内容 设计题目:FIR 数字滤波器的设计 设计内容: (1)设计一线性相位FIR 数字低通滤波器,截止频率π2.0=Ωf ,过渡带宽度 π4.0≤?Ω,阻带衰减dB A s 30>。 (2)设计一线性相位FIR 数字低通滤波器,截止频率π2.0=Ωf ,过渡带宽度π4.0≤?Ω,阻带衰减dB A s 50>。

第2章FIR 数字低通滤波器的原理 2.1 数字低通滤波器的设计原理 FIR 数字滤波器传统的设计方法有窗函数法、频率抽样法和等波纹逼近法。用窗函数设计FIR 数字滤波器就是用有限长的脉冲相应逼近序列,其基本设计思想为:首先选定一个理想的选频滤波器,然后截取它的脉冲响应得到线性相位。 滤波器(filter ),是一种用来消除干扰杂讯的器件,将输入或输出经过过滤而得到纯净的直流电。对特定频率的频点或该频点以外的频率进行有效滤除的电路,就是滤波器,其功能就是得到一个特定频率或消除一个特定频率。就是允许某一部分频率的信号顺利的通过,而另外一部分频率的信号则受到较大的抑制,它实质上是一个选频电路。 1.滤波器的概念 滤波器是对输入信号起滤波的作用的装置。当输入、输出是离散信号,滤波器的冲激响应是单位抽样响应()n h 时,这样的滤波器称作数字滤波器(DF )。DF 是由差分方程描述的一类特殊的离散时间系统。 2.数字滤波器的系统函数与差分方程: 系统函数 (2-1) 差分方程 对上式进行 Z 反变换,即得: (2-2) 3.数字滤波器结构的表示 数字滤波器分FIR 数字滤波器和IIR 数字低通滤波器。其中FIR 低通滤波器分直接型和级联型,IIR 分直接型、级联型和并联型。 方框图法、信号流图法 ∑∑==-+-= N k M k k k k n x b k n y a n y 1 )()()(∑∑=-=--= = N k k M k k z a z b z X z Y z H k k 1 1) ()()(

相关文档
相关文档 最新文档