为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

IIR滤波器在TMS320C54X DSP上的实现 --毕业论文

2017-10-23 26页 doc 72KB 64阅读

用户头像

is_594905

暂无简介

举报
IIR滤波器在TMS320C54X DSP上的实现 --毕业论文IIR滤波器在TMS320C54X DSP上的实现 --毕业论文 【标题】IIR滤波器在TMS320C54X DSP上的实现 【作者】刘 丽 【关键词】数字信号处理 IIR滤波器 DSP 设计 实现 【指导老师】谭 勇 【专业】应用电子技术 【正文】 1.绪论 1.1引言 随着信息时代和数字世界的到来,数字信号处理已成为如今一门极其重要的学科和技术领域。数字信号处理在通信,语音,图像,自动控制,雷达,军事,航空航天,医疗和家用电器等众多领域得到了广泛的应用。数字信号处理(DSP)包括两重含义:数字信号处理技...
IIR滤波器在TMS320C54X DSP上的实现 --毕业论文
IIR滤波器在TMS320C54X DSP上的实现 --毕业论文 【标题】IIR滤波器在TMS320C54X DSP上的实现 【作者】刘 丽 【关键词】数字信号处理 IIR滤波器 DSP 实现 【指导老师】谭 勇 【专业】应用电子技术 【正文】 1.绪论 1.1引言 随着信息时代和数字世界的到来,数字信号处理已成为如今一门极其重要的学科和技术领域。数字信号处理在通信,语音,图像,自动控制,雷达,军事,航空航天,医疗和家用电器等众多领域得到了广泛的应用。数字信号处理(DSP)包括两重含义:数字信号处理技术(Digital Signal Processing)和数字信号处理器(Digital Signal Processor)。数字信号处理(DSP)是利用计算机或专用处理设备,以数值计算的方法,对信号进行采集、滤波、增强、压缩、估值和识别等加工处理,借以达到提取信息和便于应用的目的,其应用范围涉及几乎所有的工程技术领域。在数字信号处理的应用中,数字滤波器很重要而且得到了广泛的应用。按照数字滤波器的特性,它可以被分为线性与非线性,因果与非因果,无限长冲击响应(IIR)与有限冲击响应(FIR)等等。其中,线性时不变的数字滤波器是最基本的类型;而由于数字系统已经对延时器加以利用,因此有一定程度的非因果性,由此获得传统的非因果滤波器。IIR滤波器的特性是具有无限持续时间冲激响应,这种滤波器一般需要用递归模型来实现,因而有时也称之为递归滤波器,而FIR滤波器的冲激响应只能延续一定时间,在工程实际中可以采用递归的方式实现,也可以采用非递归的方式实现,但其结构主要还是非递归结构,没有输入输出反馈,并且FIR滤波器很容易获得严格的线性相位特性,避免被处理信号产生非相位失真,而线性相位体现在时域中仅仅是 在时间上的延迟,这个特点在图像信号处理,数据传输等波形传递系统中非常重要,且不会发生阻塞现象,能避免强信号淹没弱信号,因此特别适合信号强弱悬殊的情况。但FIR的设计往往阶数较高,不经济,比较麻烦,而由于IIR有输入输出反馈,因此,它有阶数低,经济,实现容易等特点,本文着重介绍IIR低通数字滤波器的设计及实现。 1.2 课题背景及研究意义 1.2.1课题背景 60年代,快速傅立叶变换法的提出使得数字信号处理理论快速发展起来。80年代,数字信号处理器的产生又大大提高了数字信号处理实时实现和应用的可能, 彻底改变了信号处理的面貌。如今, 数字信号处理在通信与信息系统、信号与信息系统、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。在数字信号处理应用中, 数字滤波器十分重要并已获得广泛应用。本文主要介绍数字滤波器的设计方法及其在定点DSP 上的实现。 1.2.2 研究意义 理论意义:本课题主要研究IIR数字滤波器在TMS320C54X DSP处理器上的实现,其理论意义在于通过该课题,理解数字滤波器的概念、性能参数、组成结构、设计步骤、实现方法、应用领域,理解DSP处理器的应用、硬件结构、编程方法,理解数字信号处理理论是如何应用在实际应用中的。 现实意义:通过对本课题的研究, 掌握IIR数字滤波器的理论设计方法, 学会滤波器结构和参数对滤波器性能指标的影响机制。掌握在Maltlab、CCS开发环境中通过编程设计和实现滤波器的方法与步骤,有利于更好地把握IIR数字滤波器在 DSP处理器上的实现方法,提高学习数字信号处理和应用DSP的兴趣和水平。 1.3 本文主要研究内容 本课题将在理解数字滤波器基本理论和IIR数字滤波器的基本设计与实现方法的基础上,在Matlab中用巴特沃斯、切比雪夫、椭圆型函数分别设计和比较了特定幅频指标的IIR低通滤波器,并应用C语言在CCS开发环境中实现该滤波器,同时分析滤波器结构和参数对滤波器性能指标的影响。 2.DSP系统及其开发工具CCS 2.1 DSP系统概述 2.1.1 DSP系统的构成 图2-1所示为一个典型的DSP系统框图。它的基本部件包括抗混叠滤波器(Anti-aliasing Filter)、模/数(A/D)转换器(Analog-to-Digital Converter,ADC)、DSP、数,模(D/A)转换器(Digital-to-Analog Converter, DAC)。图中的输入信号可以有各种各样的形式,它可以是电信号、声音信号、化学信号、连续信号、数字信号、强信号、弱信号等。 输入 输出 图2-1 典型的数字信号处理系统框图 一般地说,首先通过传感器将各种信号转化为一定幅值的电信号。再通过抗混叠滤波器将输入的模拟信号进行带限滤波和采样,将信号中高出Nyquist频率的频率成份滤掉,然后通过A/D转换将模拟信号变换成DSP可以处理的并行或串行的数字比特流。根据Nyquist采样定理,对低通模拟信号,为保持信息的不丢失,采样频率至少必须是输入带限信号最高频率的两倍。DSP芯片的输入是A/D转换后得到的以采样形式表示的数字信号,DSP芯片对输入的数字信号进行某种形式的处理。如进 行一系列的乘法累加操作(MAC)。数字处理是DSP的关键,这与其它系统(如电话交换系统)有很大的不同,在交换系统中,处理器的作用是进行路由选择,它并不对输入数据进行修改。因此,虽然两者都是实时系统,但两者的实时约束条件却有很大的不同。最后,经过处理的信号再经数/模(D/A)转换为模拟信号之后由抗镜像滤波器完成模拟波形的重现,得到连续的模拟波形。 需要指出的是,上面给出的DSP系统是一个典型的DSP系统模型,所以,并不是所有的DSP系统都要包括模型中的所有部分。如频谱分析中输出的不是连续波形而是离散的频谱;语音、图象识别系统中,输出端并不是联系的波形而是识别结果,如数字、文字等;在很多场合、输入信号本身可能就已经是数字信号了,因此根本不需要A/D转换。 2.1.2 DSP的特点 DSP芯片,也称数字信号处理器,是一种具有特殊结构的微处理器。DSP芯片的内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的DSP指令,可以用来快速地实现各种数字信号处理算法。根据数字信号处理的要求, DSP 芯片一般具有如下的一些主要特点: ? 在一个指令周期内可完成一次乘法和一次加法。 ? 程序和数据空间分开,可以同时访问指令和数据。 ? 片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问。 ? 具有低开销或无开销循环及跳转的硬件支持。 ? 快速的中断处理和硬件 I/O 支持。 ? 具有在单周期内操作的多个硬件地址产生器。 ? 可以并行执行多个操作。 ? 支持流水线操作,使取值、译码和执行等操作可以重叠执行。 2.1.3 TI TMS320C54X芯片 美国德州仪器公司(TI,Instruments)成功地推出了一系列DSP芯片产品。TMS320系列是包括定点、浮点和多处理器在内的DSP,其结构非常适合于实时信号处理。 第二代DSP芯片的典型代表是TMS32020系列、TMS320C25/26/28系列。TMS320C3X是TI的第三代DSP,包括TMS320C30/3/32系列,它也是第一代浮点DSP芯片。第四代DSP芯片的典型代表是TMS320C40/44系列。第五代DSP芯片TMS320C5X/54X是继TMS320C1X和TMS320C2X之后的第三代定点DSP处理器。第六代的TMS320C62X/67X等是目前速度最快的DSP芯片。本小节主要介绍TMS320C54xX系列芯片。 TMS320C54x系列DSP芯片是使用静态CMOS技术制造的。此芯片具有以下功能单元: ? 总线 C54x共有八条总线分别是:PB:程序读取总线;CB:数据读取总线1;DB:数据读取总线2;EB:数据写入总线;PAB:程序读取地址总线;CAB:数据读取地址总线1;DAB:数据读取地址总线2;EAB:数据写入地址总线。 ? 中央处理器(CPU) CPU由以下几个部件组成: 先进的多总线结构: 包括三个独立的数据总线和一个程序总线; 40位的算术逻辑单元: 包括一个40位移位器和两个独立的40位累加器; 17*17bit的并行乘法器同一个专用的加法器相配合: 用来执行不经流水线的单周。 指数译码器: 可以在单周期内对40bit累加器进行指数运算; 两个地址发生器: 包括8个辅助寄存器和两个辅助寄存器算术运算单元; 程序控制器: 对指令进行解码、管理流水线和程序流程。 ? 片上存储器 C54x共有192K字的寻址能力(64K字的程序区,64K字的数据区,和64K字的I/O区)。如果其运算能力用MIPS来度量,每秒能执行一百万条指令的数量。 ? 片上其它资源 C54x系列中不同产品具有不同的片上外设配置。这些外设有:软件可编程的等待状态发生器;可编程的库转换;片上锁相环时钟发生器(包括一个内部振荡器或一个外部时钟源);一个16比特定时器;通用输入输出管脚;同步串行口;异步串行口。 TMS320C54x系列DSP芯片除了上述功能单元外,它还具有以下主要特点: 采用改进哈佛结构,对程序内存和数据内存使用分离的总线。这样可以同时取指令和操作数,提高了运行效率和通用性。先进的CPU利用其专用的硬件逻辑和高度并行性提高了芯片的处理性能。采用5V或3V静态CMOS技术可以降低其功耗。高度专门的指令结构提供了快速运算和优化的高阶语言操作。 单指令循环和块指令循环功能:块内存移动指令给我们提供了更好的程序和数据管理。32位操作数指令:拥有两个或三个操作数读取能力,可以并行存储和读取算术。条件存储指令:从中断快速返回的指令,拥有多种片上外设和内存配置。40位算术运算器(ALU):17*17bit单周期并行乘法器;六级流水线操作提高程序执行效率;支持比特倒置寻址方式和循环寻址方式。 2.2 CCS概述 CC(Code Composer)/CCS(Code Composer Studio)是一种集成开发环境(IDE,Integrated Development Environment),是针对TMS320调试器接口的交互式方法。CCS目前有多个不同时期的版本,C2000CC(针对C2X)、C3000CC(针对C3X)、CCS5000(针对C54X)、CCS6000(针对C6X)等4个不同型号。本小节重点对C5000 CCS做详细介绍。 CCS提供了配置、创建、 调试 、跟踪和分析程序的工具,它便于实时嵌入式信号处理程序的编制和测试,能够加快和增强程序员的开发进程,提高工作效率。 CCS 提供了基本的代码生成工具,它们具有一系列的调试、分析能力。CCS 支持如图2-2所示的开发周期的所有阶段。 图2-2 CCS开发周期 CCS是TI公司推出的一个集成性DSP软件开发工具。在一个开放式的插件(Plug-In)结构下,CCS 内部集成了以下软件工具: ? CCS 代码生成工具:参见2.2.1。 ? CCS 集成开发环境(IDE):参见2.2.2。 ? DSP/BIOS 插件程序和API:参见2.2.3。 ? RTDX 插件、主机接口和API:参见2.2.4。 2.2.1 代码生成工具 代码生成工具奠定了CCS 所提供的开发环境基础。下图2-3 是一个典型的软件开发流程图,大多数的DSP软件开发流程都和C程序的开发流程相似,只是DSP开发的一些外围器件的功能得到了一定的增强和提高。 图2-3 软件开发流程 图2-3描述的工具如下: ? C 编译器(C compiler)将C语言代码编译成为汇编语言代码。 ? 汇编器(assembler) 把汇编语言源文件翻译成机器语言目标文件,机器语言为公用目标格式(COFF),其细节参见TMS320C54x汇编语言工具用户指南。 ? 连接器(linker) 把多个目标文件组合成单个可执行目标模块。它一边创建可执行模块,一边完成重定位以及决定外部参考。连接器的输入是可重定位的目标文件和目标库文件,有关连接器的细节参见TMS320C54x 最优化C 编译器用户指南和汇编语言工具用户指南。 ? 归档器(archiver)允许你把一组文件收集到一个归档文件中。归档器也允许你通过删除、替换、提取或添加文件来调整库,其细节参见TMS320C54x 汇编语言工具用户指南。 ? 助记符到代数汇编语言转换公用程序( Memoric-to-algebraic Translator Utility)把含有助记符指令的汇编语言源文件转换成含有代数指令的汇编语言源文件,其细节参见TMS320C54x汇编语言工具用户指南。 ? 你可以利用建库程序(library_build utility)建立满足你自己要求的“运行支持库”,其细节参见TMS320C54x 最优化C 编译器用户指南。 ? 运行支持库(run_time_support libraries) 包括C 编译器所支持的ANSI 标准运行支持函数、编译器公用程序函数、浮点运算函数和C 编译器支持的I/O 函数,其细节参见TMS320C54x 最优化C 编译器用户指南。 ? 十六进制转换公用程序(hex conversion utility) 它把COFF 目标文件转换成TI-Tagged 、ASCII-hex 、 Intel 、 Motorola-S 、或Tektronix 等目标格式,可以把转换好的文件下载到EPROM 编程器中,其细节参见TMS320C54x 汇编语言工具用户指南。 ? 交叉引用列表器(Cross-reference lister)它用目标文件产生参照列表文件,可显示符号及其定义,以及符号所在的源文件,其细节参见TMS320C54x 汇编语言工具用户指南。 ? 绝对列表器(absolute lister)输入目标文件,输出.abs 文件,通过汇编.abs 文件可产生含有绝对地址的列表文件。如果没有绝对列表器,这些操作将需要冗长乏味的手工操作才能完成。 2.2.2 CCS 集成开发环境 CCS集成开发环境(IDE)允许创建、编辑、编译和调试DSP目标程序。 2.2.2.1 编辑源程序 CCS允许编辑C语言源程序和汇编语言源程序,你还可以在C语句后面显示汇编指令的方式来查看C源程序。 集成编辑环境支持下述功能: ? 用彩色加亮关键字、注释和字符串。 ? 以圆括弧或大括弧标记C程序块,查找匹配块或下一个圆括弧或大括弧。 ? 在一个或多个文件中查找和替代字符串,能够实现快速搜索。 ? 可以对多个操作进行撤消操作或者重新操作。 ? 获得“上下文相关”的帮助。 ? 定制个性化的键盘命令。 2.2.2.2 创建应用程序 应用程序通过工程文件来创建。工程文件中包括C源程序、汇编源程序、目标文件、库文件、连接命令文件和包含文件。编译汇编和连接文件时,可以分别指定它们的选项。在CCS中,可以选择完全编译或增量编译,可以编译单个文件,也可以扫描出工程文件的全部包含文件从属树,也可以利用传统的makefiles文件编译。 2.2.2.3 调试应用程序 CCS提供下列调试功能: ? 设置可选择步数的断点; ? 在断点处自动更新窗口; ? 查看变量; ? 观察和编辑存储器和寄存器; ? 观察调用堆栈; ? 对流向目标系统或从目标系统流出的数据采用探针工具观察、并收集存储器映象; ? 绘制选定对象的信号曲线; ? 估算执行统计数据; ? 观察反汇编指令和C指令。 CCS还提供GEL语言,它允许开发者向CCS菜单中添加功能。 2.2.3 DSP/BIOS 插件 在软件开发周期的分析阶段,当调试依赖于时间的程序时,传统调试方法效率低下。DSP/BIOS插件支持实时分析,它们可用于探测、跟踪和监视具有实时性要求的应用程序。 DSP/BIOS API 具有下列实时分析功能: ? 程序跟踪(Program tracing)显示写入目标系统日志(target log)的事件,反映程序执行过程中的动态控制流。 ? 性能监视(Performance monitoring)跟踪反映目标系统资源利用情况的统计表,诸如处理器负荷和线程时序等。 ? 文件流(File streaming)把常驻目标系统的I/O对象捆绑成主机文档。 DSP/BIOS 也提供基于优先权的调度函数,它支持函数和多优先权线程的周期性执行。 2.2.4 硬件仿真和实时数据交换 TI DSP提供在片仿真支持,它使得CCS能够控制程序的执行和实时监视程序运行。增强型的JTAG连接提供了对在片仿真的支持,它是一种可与任意DSP系统相连的低干扰式的连接方法。仿真接口提供主机一侧的JTAG连接,如TI XSD510。为方便起见,评估板上提供了一个在板JTAG仿真接口。 在板仿真硬件提供多种功能: ? DSP的启动、停止或复位功能; ? 向DSP下载代码或数据; ? 检测DSP的寄存器或存储器; ? 设置数据断点; ? 包括周期的精确计算在内的多种计数能力; ? 主机和DSP之间的实时数据交换(RTDX)。 CCS提供在片能力的嵌入式支持;另外,RTDX通过主机和DSP 的APIs提供主机和DSP之间的双向实时数据交换,它能够使开发者实时连续地观察到DSP应用的实际工作方式。在目标系统应用程序运行时,RTDX也允许开发者在主机和DSP设备之 间传送数据,而且这些数据可以在使用自动OLE的客户机上实时显示和分析,从而缩短研发时间。RTDX由目标系统和主机两部分组成。小的RTDX软件库需要依靠目标DSP才能运行。开发者通过调用RTDX软件库的APIs函数将数据输入或输出目标系统的DSP,库函数通过在片仿真硬件和增强型JTAG接口将数据输入或输出主操作平台,数据在DSP应用程序运行时实时传送给主机。 2.2.5 CCS小结 CCS是继“一体化的DSP解决方案”后,TI公司为巩固自己在DSP业界的地位而在开发工具方面的一次重拳出击。CCS的集成开发环境使得代码开发过程从编辑、编译、到调试及代码性能测试都集成在一个环境下进行,而且各项功能都有了一定程度的提升,简化了开发过程,并降低了代码开发的难度。 更为重要的是,CCS下的DSP/BIOS和RTD,所提供的实时分析功能为目标系统提供了一个实时窗口,使得设计者可以对正在运行的系统进行实时分析。这使得用户能够在产品的设计阶段和开发阶段就发现一些与实时运行有关的问题,而如果没有实时分析功能,同样的问题可能需要数周的时间才能发现,甚至根本无法发现。可以说,实时分析功能所带来的DSP调试手段的变革是CCS对DSP发展的一个重要贡献。 3.IIR滤波器基本理论 3.1数字滤波器概述 从广义上讲,任何对某些频率(相对于其他频率来说)进行修正的系统称为滤波器。严格地讲,对输入信号通过一定的处理得到输出信号,这个处理通常是提取信号中某频率范围内的信号成分,把这种处理的过程称为滤波。实现滤波处理的运算电路或设备称为滤波器。 数字滤波器(digital filter)是由数字乘法器、加法器和延时单元组成的一种装置。其功能是对输入离散信号的数字代码进行运算处理,以达到改变信号频谱的目的。由于电子计算机技术和大规模集成电路的发展,数字滤波器已可用计算机软件实现,也可用大规模集成数字硬件实时实现。数字滤波器是一个离散时间系统(按预定的算法,将输入离散时间信号转换为所要求的输出离散时间信号的特定功能装置)。应用数字滤波器处理模拟信号时,首先须对输入模拟信号进行限带、抽样和模数转换。数字滤波器输入信号的抽样率应大于被处理信号带宽的两倍,其频率响应具有以抽样频率为间隔的周期重复特性,且以折叠频率即1/2抽样频率点呈镜像对称。为得到模拟信号,数字滤波器处理的输出数字信号须经数模转换。数字滤波器具有高精度、高可靠性、便于集成等优点。数字滤波器在语言信号处理、图像信号处理、医学生物信号处理以及其他应用领域都得到了广泛应用。 按照不同的分类方法,数字滤波器有许多种类,总体上分两大类:一类称为经典滤波器;另一类是所谓的现代滤波器,例如维纳滤波器、卡尔曼滤波器、自适应滤波器等,这些滤波器可按照随机信号内部的一些统计分布规律,从干扰中最佳地提取信号。从功能上分类,数字滤波器分低通、高通、带通和带阻等滤波器;从实现的网络结构或者单位抽样响应分类,为无限冲激响应数字滤波器(Infinite Impulse Response Digital Filter,简称IIR数字滤波器)和有限冲激响应数字滤波器(Finite Impulse Response Digital Filter,简称FIR数字滤波器)。 数字滤波器是具有一定传输选择特性的数字信号处理装置。一离散时间系统的输出 是输入 的三点移动平均值,即为: (3. 1) 对上式进行Z变换,可得: (3. 2) 则系统的频率响应: (3. 3) 画出幅频特性如图3-1所示。 图3-1 式3.3的幅频特性 由图3-1得,该系统频响具有低通滤波器特性。上述的简单数字滤波所处理的是离散信号(输入输出均为序列)。数字滤波器也可以对连续时间信号进行处理,但是连续信号要通过A/D进行离散化,经数字滤波后,可再经D/A转换得到所需要的连续信号。数字滤波器是一离散时间系统,可以用差分方程,单位抽样响应 、系统函数 或频率响应 来描述。按照离散系统的时域特性,数字滤波器可分为无限冲激响应(IIR)有限冲激响应(FIR)数字滤波器两类,前者是指其单位抽样响应 为无限长序列,后者 则是有限长序列。由前述,一般离散系统可表示为N阶差分方程: (3. 4) 其系统函数可表示为: (3. 5) 当 全为0时, 为多项式,即 (3. 6) 所以,单位抽样响应 应为 则 有M+1项,为有限长,即FIR数字滤波器,上式也可写成一般情况下的差分方程形式,即 (3. 7) 上式表明:这种滤波器的输出只与现时刻的输入以及过去时刻的输入有关,而与过去的输出没有直接的关系,通常用非递归的结构形式来实现。而当式(3.6) 不全为0,并且分母至少存在一个根不为分子所抵消时, 是有理分式,则 为无限长,即IIR数字滤波器。 数字滤波器根据系统实现的结构不同,分为递归与非递归两种。两者结构上的主要区别是:递归结构有反馈支路,非递归结构则没有。数字滤波器与模拟滤波器相似, 根据幅频响应的特性也可分为低通、高通、带通、带阻等类型,但与模拟滤波器不同,数字滤波器是一离散系统,其幅频特性| |是以 为周期的周期函数,因此,数字低通、高通、带通、带阻等幅频特性都是指数字角频率在 的频率范围而言的。 数字滤波器设计一般包括三个基本步骤: (1)给出技术指标; (2)由技术指标确定数字滤波器的系统函数 ,并实现频率特性的要求; (3)通过算法实现 。 图3-2为一低通滤波器的技术指标示例,图中的虚线是满足给定技术指标要求的系统幅频特性。在通带内,频响的幅度逼近1,允许误差为1> ;阻带内幅度逼近零,允许误差范围 ,在通带截止频率 和阻带截止频率 之间为过渡带。 图3-2 对模拟低通滤波器描述方式 从零频到 称为通带, 到无穷大称为阻带, 到 称为过渡带。参数 是通带中允许的衰耗值波动边界。当| | 下降到| |的0.707(半功率点)时, ,所以, 最多取3dB。参数A是阻带最小衰耗,一般在30dB,80dB之间。所设计的低通滤波器,只要滤波器相对域零频的幅值衰耗曲线落在图中的空白处,该滤波器的性能就算合格了。 3.2 IIR滤波器的结构 无限长冲激响应数字滤波器的主要结构类型有下述几种: 3.2.1 直接型 (1)直接?型 直接由 IIR数字滤波器的差分方程所得的网络结构。一个 N阶 IIR DF可用N 阶差分方程描述: (3.8) 图3-3 直接I型结构 上述结构缺点: ? 需要2N个延迟器( ),太多; ? 系数 、 对滤波器性能的控制不直接,调整不方便,对极点、零点的控制难,一个 、 的改变会影响系统所有零点或极点的分布; ? 对字长变化敏感(对 、 的准确度要求严格); ? 容易不稳定,阶数高时,上述影响更大。 (2) 正准型(直接?型) 上面直接型结构中的两部分可分别看作是两个独立的网络 和 串接构成总的传递函数: (3. 9) 由传递函数的不变性(系统是线性的),得: (3.10) 图3-4 直接I型的变形 由图3-4得,两条延时链中对应的延时单元内容完全相同,可合并,得到直接II型结构,也称为正准型。 图3-5 直接 II 型结构 优点:延迟线减少一半,变为 N 个,可节省寄存器或存储单元。 缺点:其它缺点同直接I型。 通常在实际中很少采用上述两种结构实现高阶系统,而是把高阶变成一系列不同组合的低阶系统(一、二阶)来实现。 3.2.2级联型(串联) 一个N阶传递函数可用它的零、极点表示,即把它的分子、分母都表达为因子形式: (3.11) 由于系数 、 都是实数,极、零点只有实根和共轭复根,所以有 : (3.12) 、 ——实根 、 ——复根 且 将共轭因子合并为实系数二阶因子,单实根因子看作二阶因子的一个特例,则: (3.13) 、 ——为实系数。 用若干二阶网络级联构成滤波器,二阶子网络称为二阶级,可用正准型结构实现。 图3-6 级联型结构 优点: ? 简化实现,用一个二阶级联,通过变换系数就可实现整个系统; ? 极、零点可单独控制、调整,调整 、 只单独调整了第i对零点,调整 、 则单独调整了第i对极点; ? 各二阶零、极点的搭配可互换位置,优化组合以减小运算误差; ? 可流水线操作。 缺点: ? 二阶节电平难控制,电平大易导致溢出,电平小则使信噪比减小。 3.2.3并联型 将传递函数展开成部分分式之和,可用并联方式构成滤波器。 将上式中的共轭复根成对地合并为二阶实系数的部分分式,得: 上式表明,可用一个常数 ,L个一阶网络,M个二阶网络并联组成滤波器 ,结构如下图: 图3-7 并联型结构 特点: ? 系统实现简单,只需一个二阶节系统通过改变输入系数即可完成; ? 极点位置可单独调整; ? 运算速度快(可并行进行); ? 各二阶网络的误差互不影响,总的误差小,对字长要求低。 缺点: ? 不能直接调整零点,因多个二阶节的零点并不是整个系统函数的零点,当需要准确的传输零点时,级联型最合适。 4.IIR低通滤波器的设计及实现 4.1 数字滤波器的设计步骤 数字滤波器根据其冲激响应函数的时域特性,可分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。IIR滤波器的特征是具有无限持续时间冲激响应。这种滤波器一般需要用递归模型来实现,因而有时也称之为递归滤波器。而FIR滤波器的冲激响应只能延续一定时间,在工程实际中可以采用递归的方式实现,也可以采用非递归的方式实现。数字滤波器的设计办法有多种,如双线性变换法、窗函数设计法、插值逼近法和Chebyshev逼近法等等。随着MATLAB软件尤其是MATLAB的信号处理工具箱的不断完善,使数字滤波器的计算机辅助设计有了可能,而且还可以使设计达到最优化。 (1)确定指标 在设计一个滤波器之前, 首先根据工程实际的需要确定滤波器的技术指标。在很多实际应用中,数字滤波器常常被用来实现选频操作。因此,指标的形式一般在频域中给出幅度和相位响应。幅度指标主要以两种方式给出。第一种是绝对指标,它提供对幅度响应函数的要求,一般应用于FIR滤波器的设计。第二种指标是相对指标,它以分贝值的形式给出要求,在工程实际中,这种指标最受欢迎。对于相位响应指标形式,通常希望系统在通频带中仍有线性相位。运用线性相位响应指标进行滤波器设计具有如下优点:?只包含实数算法,不涉及复数运算;?不存在延迟失真,只有固定数量的延迟;?长度为N的滤波器(阶数为N-1),计算量为N/2数 量级。因此,本文中滤波器的设计就以线性相位IIR滤波器的设计为例。 (2)逼近 确定了技术指标后,就可以建立一个目标的数字滤波器模型。通常采用理想的数字滤波器模型。之后,利用数字滤波器的设计办法,设计出一个实际滤波器模型来逼近给定的目标。 (3)性能分析和计算机仿真 上两步的结果是得到以差分或系统函数或冲激响应描述的滤波器。根据这个描述就可以分析其频率特性和相位特性,以验证设计结果是否满足指标要求;或者利用计算机仿真实现设计的滤波器,再分析滤波结果来判断。 4.2基于Matlab的IIR低通滤波器设计 在设计之初一般选用巴特沃斯型。因为这种滤波器通带阻带内特性最为平坦,截止特性和相位特性都不错,对构成滤波器的器件要求也不严格,易于得到符合设计值的特性;切比雪夫型通带内有等波纹起伏,截止特性特别好,但相位特性和群延时特性不太好。如果对衰减特性要求较高,但相位要求不严的情况下可选取切比雪夫型滤波器。通带、阻带都具有“等波纹”特性的滤波器称为椭圆函数滤波器或考尔滤波器,该滤波器选择性好。不管用哪种方法,为了在matlab中进行设计。都要先了解matlab的函数使用方法。 IIR数字滤波器的设计步骤可用图4-21所示的流程图来表示。 这个图也清楚地表明了5类20个信号处理工具箱函数的作用。下面以巴特沃斯滤波器设计函数为例,介绍此流程中相关函数的功能和用法。其他类型的滤波器设计函数用法可类推。 图4-21 IIR数字滤波器设计步骤流程图 (1) 求最小阶数N的函数buttord [N,wc]=buttord(wp,ws,Rp,Rs,‘s’) 根据滤波器指标wp,ws,Rp,Rs,求出巴特沃斯模拟滤波器的阶数N及频率参数wc,此处wp,ws,及wc均以弧度/秒为单位。 去掉最后变元s后,它就用于数字滤波器。 [N,wc]=buttord(wp,ws,Rp,Rs) 求出巴特沃斯数字滤波器的阶数N及频率参数wc,此处wp,ws 及wc均在[0,1]区间归一化,以 弧度为单位。对带通或带阻滤波器,wp,ws都是两元变量。如 带通滤波器: wp=[.2 .7], ws=[.1 .8] 带阻滤波器: wp=[.1 .8], ws=[.2 .7] (2) 模拟低通滤波器原型设计函数buttap [z,p,k]=buttap(N) 得到[z,p,k]后,很容易求出滤波器系数B,A。 (3) 模拟频率变换函数lp2lp [Bt,At]=lp2lp(B,A,wo) 把单位截止频率的模拟低通滤波器系数B,A变成另一截止频率wo[弧度/秒]的低通滤波器系数Bt,At。 (4) 模拟数字变换函数—双线性变换函数bilinear或脉冲响应不变法函数impinvar [Bd,Ad]=bilinear(B,A,Fs) 把模拟滤波器系数B,A变为近似等价的数字滤波器系数Bd,Ad。 (5) 把(2)、(3)、(4)合为一步的数字滤波器设计函数butter(N,wc,’ftype’) [B,A]=butter(N,wc) 设计低通或带通数字滤波器系数B,A。 根据本文设计指标分别以巴特沃斯型、切比雪夫?型、切比雪夫?型、椭圆型在Matlab中设计IIR低通滤波器,观察并分析其结果。 4.2.1巴特沃斯型 在Matlab中用巴特沃斯型设计IIR低通滤波器的曲线结果为: 4-22巴特沃斯型滤波器的幅频曲线 4-23巴特沃斯型滤波器的相频曲线 所得数据结果: N =15 wc = 0.4038 b = 0.0000 0.0002 0.0013 0.0057 0.0172 0.0379 0.0631 0.0811 0.0811 0.0631 0.0379 0.0172 0.0057 0.0013 0.0002 0.0000 a = 1.0000 -2.8818 5.7550 -7.7730 8.2419 -6.8372 4.6171 -2.5257 1.1296 -0.4084 0.1183 -0.0268 0.0046 -0.0006 0.0000 -0.0000 4.2.2 切比雪夫型 (1)切比雪夫?型 在Matlab中用切比雪夫?型设计IIR低通滤波器的曲线结果为: 4-24切比雪夫?型滤波器的幅频曲线 4-25切比雪夫?型滤波器的相频曲线 所得数据结果: N = 7 wc = 0.3750 b = 0.0008 0.0054 0.0163 0.0272 0.0272 0.0163 0.0054 0.0008 a = 1.0000 -3.4814 6.5751 -7.9804 6.6168 -3.7109 1.3053 -0.2251 (2)切比雪夫?型 在Matlab中用切比雪夫?型设计IIR低通滤波器的曲线结果为: 4-26切比雪夫?型滤波器幅频曲线 4-27切比雪夫?型滤波器相频曲线 所得数据结果为: N = 7 wc = 0.5000 b = 0.8666 2.5128 4.8988 6.5740 6.5740 4.8988 2.5128 0.8666 a = 1.0000 2.7183 5.1423 6.6627 6.4630 4.6533 2.3138 0.7510 4.2.3椭圆型 在Matlab中用椭圆型设计IIR低通滤波器的曲线结果为: 4-28 椭圆型滤波器的幅频曲线 4-29 椭圆型滤波器相频曲线 所得数据结果为: N =5 wc = 0.3750 b =0.0476 0.0618 0.1042 0.1042 0.0618 0.0476 a =1.0000 -1.9885 2.6833 -2.0231 0.9772 -0.2219 4.2.4 结果分析 由上述程序结果可得:巴特沃斯滤波器的频率特性在通带和阻带内都随频率单调变化,即幅度随频率的增加而成线性变化。因此,如果在通带边缘满足设计指标 (通带截止频率),那么在通带内肯定会有富裕量,超出所要求的 ,而且所设计的滤波器阶数较高,不经济,更有效的办法是将要求指标均匀地分布在通带内,或均匀分布在通带和阻带内,从而设计出阶数较低的滤波器。这种均匀分布的办法可通过选择具有等波纹特性的逼近函数来完成。如切比雪夫的幅度特性在一个频带中(通带或阻带)具有这种等波纹特性;若在通带内是等波纹变化的,而在阻带内是单调变化的,称切比雪夫?型;若在通带内是单调变化的,而在阻带内是等波纹变化的,称切比雪夫?型。还有一种通带、阻带都具有“等波纹”幅度特性的滤波器称为椭圆函数滤波器或考尔滤波器,这种滤波器由于通带和阻带内都是等波纹变化的,接近理想的矩形幅度特性,所以它的选择性比较好,而且相对于其它类型来说椭圆型滤波器的阶数更低,更经济。因此,本文选用椭圆型函数来设计低通IIR数字滤波器。得到的系统函数如下: (4. 1) 注意:由于本文通带波纹参数较小,因此,椭圆型和切比雪夫?型滤波器的通带部分看似单调变化,事实上是等波纹变化。 4.3 IIR数字滤波器在DSP上的实现 4.3.1 IIR滤波器在DSP上的实现步骤和条件 IIR数字滤波器在DSP上的设计过程如下: (1) 根据指标确定滤波器的类型,设计出滤波器的参数; (2) 根据DSP的特点(字长、精度等)对参数进行取舍、量化,然后进行仿真; (3) 根据仿真结果对滤波器的结构、参数再次进行调整,直到满足要求为止; (4) 在DSP上用汇编或C语言实现滤波器功能。 DSP芯片有定点DSP和浮点DSP。一个算法,既可用汇编语言编程实现,也可用高级语言(C,C++)实现。而一个IIR数字滤波器是否可以在DSP上实现,最终要看此算法是否满足两个条件:执行时间和精度。一个算法的精度再高,如果做不到实时,也没有实用价值;相反,如果执行时间很快,但精度满足不了要求,也就 无从实现滤波功能。IIR数字滤波器在DSP上的实现思路,应该是在满足上面两个条件的前提下,找到尽可能简易的实现方法。 4.3.2 IIR数字滤波器在TMS320C54x DSP上的实现过程 本文设计的低通IIR数字滤波器的指标如下: 采样频率Fs=8kHz 通带截止频率Wp=3/8(rad/s) 阻带截止频率Ws=0.5(rad/s) 通带波纹参数Rp=20*log10(1+devl)/(1-devl)(dB) devl=0.02 阻带波纹参数Rs=40(dB) 采用椭圆模型设计该滤波器时阶数为6阶,在MATLAB7.0环境下得到的b系数和a系数如下所示: b =0.0476 0.0618 0.1042 0.1042 0.0618 0.0476 a =1.0000 -1.9885 2.6833 -2.0231 0.9772 -0.2219 从理论上说,可以用高阶IIR数字滤波器实现更好的滤波效果。但由于DSP本身有限字长和精度的因素,加上IIR滤波器在结构上存在反馈回路,是递归型的,再者高阶滤波器参数的动态范围很大。这样一来造成两个后果:结果溢出和误差增大,从而导致算法无法在DSP上正确实现。 解决此问题的有效方法是把高阶IIR数字滤波器简化成几个2阶滤波器来设计,即采用级联结构。因此系统函数为: (4. 2) 例如上述6阶IIR数字滤波器采用级联的结构后变成3个2阶滤波器级联的形式。其结构形式如下图: 图4-31 直接?型单元级联实现六阶滤波器 按设计要求,用C语言在CCS环境下实现其功能,4.4节图4-41、4-42分别为输入和滤波后的波形,设计指标的信号截止频率为3kHz(归一化频率为0.375)。从图中可以看出,滤波效果满足设计要求。 图4-32 C语言程序流程图 在DSP上实现的程序流程如图4-32,程序见附录C。该程序给出了一个用二阶单元级联实现通用IIR滤波器的C程序,该程序每个单元使用了下面两个方程: (4. 3) (4. 4) 对每个n或抽样间隔,程序的循环部分执行了3次(级联单元的级数)。对于第一个级联单元, 是一个新采集的输入抽样,但对其他级联单元,输入 就是前一级的输出 。 在实现中,我们应该注意以下问题: (1)IIR数字滤波器是针对采样率固定的系统设计的,更改系统或系统采样率改变时应重新设计。 (2)用到的数据存储单元,程序开始时应对这些单元进行初始化。如果要进行连续滤波,应保存上一次滤波的结果。 (3)IIR数字滤波器的滤波结果会引起相位的延迟,故对相位严格要求的场合,需加强网络进行较正,或选用FIR滤波器实现滤波功能。 4.4 结果与分析 采用如下测试信号:频率分别为300Hz和4500Hz的两个幅度不同的正弦波的合成信号,采样频率为10000Hz,即 (4.5) 采用上节设计的截止频率为0.375的低通滤波器,其滤波器系数为: b = 0.0000 0.0002 0.0013 0.0057 0.0172 0.0379 0.0631 0.0811 0.0811 0.0631 0.0379 0.0172 0.0057 0.0013 0.0002 0.0000 a = 1.0000 -2.8818 5.7550 -7.7730 8.2419 -6.8372 4.6171 -2.5257 1.1296 -0.4084 0.1183 -0.0268 0.0046 -0.0006 0.0000 -0.0000 应用C语言在CCS环境中进行滤波,结果如下: 输入混杂信号如图4-41,滤波后的信号如图4-42,并对它们分别进行频谱分析得图4-43,4-44。 图4-41. 混杂信号 图4-42. 滤波后的信号 图4-42是图4-41经滤波后的图形,明显可见,4500Hz频率(归一化频率为0.45)的信号被滤除,剩下300Hz的信号。为了更好的观察滤波器是否达到了设计指标,下面分别对混杂信号4-41和滤波后的信号4-42进行频谱分析。 图4-43. 混杂信号的频谱分析 图4-44. 滤波后的信号的频谱分析 由图4-43和图4-44看出,小于3000Hz(归一化频率0.375)的信号通过了滤波器,大于 3000Hz的信号被衰减滤除,该滤波器达到了本文设计指标,起到了滤波的良好作用。 5.总结 IIR数字滤波器以它优越的性能,在电力、通信和测控等领域得到广泛应用。本文针对TI公司的TMS320c54x DSP,叙述了IIR数字滤波器的理论设计及在DSP上的实现过程。 在信号滤波系统中,有时因为模拟滤波器阶数太高,硬件占用空间太大为某些仪器的实现设置了障碍;对于一些窄带情况,如本文设计的一个要求截止频率为3KHz 的低通滤波器用模拟手段往往很难实现。在这些情况下,数字滤波器将会是一个很好的解决办法。MATLAB 信号处理工具箱的出现更为数字滤波器的设计和实现开辟了一片广阔的天地。工具箱提供了丰富而简便的设计、实现FIR 和IIR 的方法,使原来繁琐的程序设计简化成函数的调用,特别是滤波器的表达方式和滤波器之间的相互转换显得十分简便。数字滤波技术正逐步显示其重要的地位。根据基于Matlab的设计思路,可以很方便设计出符合要求的滤波器。该方法具有很强的实用性,对FIR滤波器的设计及滤波器在嵌入式系统中的实现也有很好的参考价值。通过本文IIR低通数字滤波器的设计和实现表明,设计方法简单、方便、实现灵活,满足设计指标要求。 IIR 数字滤波器在很多领域中有着广阔的应用。与FIR 数字滤波器相比,它可以用较低的阶数获得高选择性,所用存储单元少,经济而效率高,在相同门级规模和相同时钟速度下可以提供更好的带外衰减特性,所以,在实时数字信号处理和控制中,它具有很广泛的应用前景。
/
本文档为【IIR滤波器在TMS320C54X DSP上的实现 --毕业论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索