基于DSPFIR数字滤波器的设计_第1页
基于DSPFIR数字滤波器的设计_第2页
基于DSPFIR数字滤波器的设计_第3页
基于DSPFIR数字滤波器的设计_第4页
基于DSPFIR数字滤波器的设计_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于基于 dspfirdspfir 数字滤波器的设计数字滤波器的设计 摘要摘要 数字滤波器是数字信号处理中最重要的组成部分之一,数字滤波器是由数字乘法 器、加法器和延时单元组成的一种算法或装置,可作为应用系统对信号的前期处理。 用 dsp 芯片实现的数字滤波器具有稳定性好、精确度高、灵活性强及不受外界影响等 特性。因此基于 dsp 实现的数字滤波器广泛应用于语音图像处理、数字通信、频谱分 析、模式识别、自动控制等领域,具有广阔的发展空间。 本文主要研究了数字滤波器的基本理论,并对有限冲击响应数字滤波器 fir 的设 计和实现进行了分析和研究,尤其是在 matlab 环境下 fir 数字滤波器的

2、设计,主要是 窗函数法及利用 matlab 的滤波器设计工具的设计方法,并用 matlab 语言编写了可以 选择滤波器四种类型及七种窗函数的仿真程序,进行了具体的仿真分析。 研究了 ti 公司的 16 位定点 dsp 芯片 tms320c55x 的硬件和软件结构特性,编写了 dsp 的 fir 滤波算法,在实验箱上进行了调试仿真;探讨了利用 dsp 快速设计 fir 数字 滤波器的方法,主要是在 matlab 中调试仿真 dsp 程序来寻找系数的快速传递法。最后, 以 tms320c55x 为主芯片设计了一个高性能的 fir 数字滤波器系统,主要是时钟信号产 生电路、芯片电源供电电路、模数转换

3、和数模转换芯片与 c55x 连接电路、外挂程序存 贮器 flash 电路、扩展 ram 存贮器等基本外围电路的设计。 关键词关键词: :数字信号处理器;数字滤波器;fir;matlab;tms320c55x thedesignandanalysisoffirdigitalfilterbasedon dsp abstract adigitalfilter,whichisoneofthemostimportantpartsofdigitalsignalprocessing,isanalgorithm oradevicemadeofdigitalontime- multiplier,adderand

4、delayofelements.itcanbeusedtobethepretreatmentofsignalbyapplicationpro gram.thefirdigitalfilterbasedondsphasmanyfeatures,suchasuninfluenced,highaccuracy,goo dstabilityandhighlyflexible.thedigitalfilteriswidelyusedinfieldsofspeechimageprocessing,digit alcommunication,spectrumanalysis,patternrecogniti

5、onandautomaticcontrol,etc.itwillhasbroads pacefordevelopment. inthispaper,themainlytaskisresearchingthebasictheoriesofthedigitalfilter,andanalyzingthe designingandrealizationofthefiniteimpulseresponsedigitalfilter(fir),especiallythemethodwhi chrealizedundermatlabenvironment,thewindowfunctionsisprima

6、rilyintroduced,themethodo fusingthedigitalfilterdesigntoolsinmatlabisalsoapplied.italsocompilesaprocedurewithmat lablanguagewhichcanselectfoursortsofdigitalfilterandsevenkindsofwindowfunctions. then,thispaperresearchesthestructureandpropertyofthe16bitfixed- pointdspchiptms320c55x,andwritesthefirfilt

7、erprogramwhichisdebuggedandsimulatedbye xperiments.thedesignofthefirfilterusingdspisdiscussed,whichfocusonthemethodofcoefficie nttransmissionoverpassingdebuggingthedspprograminmatlab.finally,adigitalfiltersystem withpreferablecapabilityisdesignedbasedonthec55x,itsconsistsofthedesignofhardwareinterfa

8、ce,w hichincludingtheclock- generatingcircuit,thechippowersupplycircuit,thea/dandd/achipconnectinginterface,theflas hchipconnectinginterface,extendedramconnectinginterfaceandsoon. keywords:dsp;digitalsignalfilter;fir;matlab 引引言言 在许多数字信号处理系统中,fir 滤波器是最常用的组件之一,它完成信号预 调、频带选择和滤波等功能。f 工 r 滤波器在截止频率的边沿陡峭性能

9、虽然不及 11r 滤 波器,但是,考虑到 fir 滤波器严格的线性相位特性和不像 iir 滤波器存在稳定性的 问题,fir 滤波器能够在数字信号处理领域得到广泛的应用。 数字滤波器(digitalfilter,简称为 df)是指用来对输入信号进行滤波的硬 件和软件。所谓数字滤波器,是指输入、输出均为数字信号,通过一定运算关系改变 输入信号所含频率成分的器件。数字滤波器和模拟滤波器相比,因为信号的形式和实 现滤波的方法不同,数字滤波器具有比模拟滤波器精度高、稳定、体积小、重量轻、 灵活、不要求阻抗匹配等优点。 随着信息时代的到来,数字信号处理已成为当今一门极其重要的学科和技术领域。 数字信号在通

10、信、语音、图像、自动控制、雷达、航空航天、医疗和家用电器等众多 领域得到了广泛的应用。在数字信号处理中数字滤波占有极其重要的地位,与模拟滤 波相比,数字滤波具有很多突出优点,比如精确度高、稳定、灵活、不要求阻抗匹配、 容易实现线性相位、还可以避免模拟滤波器无法克服的电压漂移、温度漂移和噪声偏 移等问题。 数字滤波器又分为无限冲激响应滤波器(iir)和有限冲激响应滤波器(fir)。fir 滤 波器具有不含反馈环路、结构简单以及可以实现的严格线性相位等优点,因而在对相 位要求比较严格的条件下,采用 f1r 数字滤波器。同时,由于在许多场合下,需要对 信号进行实时处理,因而对于单片机的性能要求也越来

11、越高。由于 dsp 控制器具有许 多独特的结构,例如采用多组总线结构实现并行处理,独立的累加器和乘法器以及丰 富的寻址方式,采用 dsp 控制器就可以提高数字信号处理运算的能力,可以对数字信 号做到实时处理。而普通的单片机例如 mcs-51 难以满足这一要求。用可编程 dsp 芯片 实现数字滤波的又一优势是:通过修改滤波器的参数十分方便的改变滤波器的特性。有 限长单位冲激响应(fir)数字滤波器,与传统的通过硬件电路实现的模拟滤波器相比 有以下优点: (1)简化了硬件电路的设计,提高了硬件电路的集成度和可靠性。 (2)对干扰信号的抑制能力有了明显提高,这对系统的控制精度和稳定性的提高起到了 促

12、进作用。 (3)数字滤波器的参数调节比起模拟滤波器来更加方便、灵活。 (4)数字滤波器可以实现数据的并行处理,提高了系统运行速度。 第一章绪论第一章绪论 1.1 数字滤波器的优越性 世纪是数字化的时代,随着越来越多的电子产品将数字信号处理() 作为技术核心,已经成为推动数字化进程的动力。作为数字化最重要的技术之 一,无论在其应用的深度还是广度,正在以前所未有的速度向前发展。数字信 号处理器,也称芯片,是针对数字信号处理需要而设计的一种具有特殊结构的 微处理器,它是现代电子技术、计算机技术和数字信号处理技术相结合的产物。随着 信息处理技术的飞速发展,数字信号处理技术逐渐发展成为一门主流技术,它在

13、电子 信息、通信、软件无线电、自动控制、仪表技术、信息家电等高科技领域得到了越来 越广泛的应用。数字信号处理由于运算速度快,具有可编程特性和接口灵活的特点, 使得它在许多电子产品的研制、开发和应用中,发挥着重要的作用。采用芯片 来实现数字信号处理系统是当前发展的趋势。 近年来,技术在我国也得到了迅速的发展,不论是在科学技术研究,还是 在产品的开发等方面,其应用越来越广泛,并取得了丰硕的成果。在数字信号处理中, 数字滤波占有极其重要的地位。数字滤波是语音和图象处理、模式识别、谱分析等应 用中的一个基本处理算法。在许多信号处理应用中用数字滤波器替代模拟滤波器具有 许多优势。数字滤波器容易实现不同的

14、幅度和相位频率特性指标,克服了与模拟滤波 器器件性能相关的电压漂移、温度漂移和噪声问题。用芯片实现数字滤波除了 具有稳定性好、精确度高、不受环境影响外,还具有灵活性好的特点。用可编程 芯片实现数字滤波可通过修改滤波器的参数十分方便的改变滤波器的特性。几 乎每一科学和工程领域例如声学、物理学、信、数据通信、控制系统和雷达等都涉及 信号。在许多应用中都希望根据期望的指标把一个信号的频谱加以修改、整形或运算。 这些过程都可能包含衰减一个频率范围,阻止或隔离一些频率成分,用数字滤波器来 实现这些功能是方便、有效、可行的。 1.2 国内外研究进展 自 20 世纪 70 年代末 80 年代初 dsp 芯片

15、诞生以来 dsp 芯片得到了飞速的发展。在 20 多年时间里 dsp 芯片已经在信号处理、通信、自动控制、仪表技术、信息家电等许 多领域得到广泛的应用。1978 年 ami 公司生产出世界上第一片 dsp 芯片 s2811。1979 年美国 intel 公司发布的商用可编程器 2920 是 dsp 芯片的一个重要里程碑。1980 年日 本 nec 公司推出的 pd7720 是第一个具有乘法器的商用 dsp 芯片。在这之后,最成功 的 dsp 芯片当数美国德州仪器公司(texasinstruments,简称 ti)的一系列产品,其 dsp 市场份额占全世界份额近的 50%。目前 dsp 芯片的价

16、格越来越低,性能价格比日益 提高,具有巨大的应用潜力。经过 20 年的发展,dsp 器件在高速度,可编程,小型化, 低功耗等方面都有了长足的发展,单片 dsp 芯片最快每秒可完成 16 亿次(1600mips)的 运算,生产 dsp 器件的公司也不断壮大。 在国内外的研究中,设计 fir 滤波器所涉及的乘法运算方式有:并行乘法、位串行 乘法和采用分布式算法的乘法。 并行乘法运行速度快,但占用的硬件资源极大。如果滤波器的阶数增加,乘法器 位数也将变大,硬件规模将变得十分庞大。 位串行乘法器的实现方法主要是通过对乘法运算进行分解,用加法器来完成乘法 的功能,也即无乘法操作的乘法器。位串行乘法器使得

17、乘法器的硬件.观模达到了最省, 但是由于是串行运算,使得它的运算周期过长,运算速度与硬件规模综合考虑时不是 最优的。 分布式算法(distributedarithmetic,da)的主要特点是巧妙的利用 rom 查找表将 固定系数的乘累加(multiply-accumulator,mac)运算转化为查表操作,它与传统算法 实现乘累加运算的不同在于执行部分积运算的先后顺序不同。分布式算法在完成乘累 加功能时是通过将各输入数据每一对应位产生的部分积预先进行相加形成相应的部分 积,然后再对各个部分积累加形成最终结果,而传统算法是等到所有乘积已经产生之 后再来相加来完成乘累加运算的。da 算法设计的

18、fir 滤波器的速度可以显著的超过基 于 mac 的设计。 相对于前两种方法,da 算法既可以全并行实现,又可以全串行实现,还可以串并 行结合实现,可以在硬件规模和滤波器速度之间作适当的折中,是数字滤波器的主要 研究课题。 1.3 数字滤波器的实现方法 数字滤波器的实现方法有以下三种: (1)用计算机软件实现 软件实现方法就是在通用的微型计算机上用软件来实现。利用计算机的存储器、 运算器和控制器把滤波所要完成的运算编程程序通过计算机来执行,软件可由使用者 自己编写,也可使用现成的。国内外的研究机构、公司已经推出了不同语言的信号滤 波器处理软件包。但是这种方法速度很慢,难以对信号进行实时处理,虽

19、然可由用快 速傅立叶变换算法累加,来加快计算速度,但要达到实时处理还是要付出很高的代价, 因而该方法多在教学与科研中使用。 (2)采用 dsp(digitalsignalprocessing)处理器来实现 dsp 处理器是专为数字信号处理而设计的,如 ti 公司的 tms320cx 系列,ad 公 司的 adsp21x,adsp210x 系列等。它的主要数字运算单元是一个乘累加器(mac),能 够在一个机器周期内完成一次成累加运算,配有适合于信号处理的指令,具备独特的 循环寻址和倒序寻址能力。这些特点都非常适合数字信号处理中的滤波器设计的有效 实现,并且它速度快,成本低,在过去的 20 多年的

20、时间里,软件可编程的 dsp 器件 几乎统治了商用数字信号处理硬件的市场。 用 dsp 芯片实现数字滤波除了具有稳定性好、精确度高、不受环境影响外,还具 有灵活性好的特点。用可编程 dsp 芯片实现数字滤波可通过修改滤波器的参数十分方 便的改变滤波器的特性。 (3)用 fpga 可编程器件来实现 使用相关开发工具和 vhdl 等硬件开发语言,通过软件编程用硬件实现特定的数 字滤波算法。这一方法由于具有通用性的特点并可以实现算法的并行运算,无论是作 为独立的数字信号处理,还是作为 dsp 芯片的协作处理器都是比较活跃的一个研究领 域4。 通过比较以上三种方法可见:可以采用 matlab 等软件来

21、学习数字滤波器的基本 知识,计算数字滤波器是系数,研究算法的可行性,对数字滤波器进行前期的仿真。 也可以采用 dsp 或 fpga 来实现硬件电路。本文重点研究在利用 dsp 来实现数字滤波 的设计。 第二章第二章 dspdsp 技术技术 2.1 dsp 芯片发展 数字信号处理(digitalsignalprocessing)是利用专用处理器或计算机,以数字的 形式对信号进行采样、变换、滤波、增强、压缩、识别、分析、合成、变换处理,提 取有用的信息,得到符合人们要求的信号形式,进行有效的传输与应用。数字信号处 理器(digitalsignalprocessor,简称 dsp)是一种处理数字信号

22、的专用微处理器,主要 应用于实时快速地实现各种信号的数字处理算法。它在结构上针对数字信号处理的特 点进行了改进和优化,并增加了特殊指令专门用于数字处理,因而处理速度更快,效 率更高。 自 20 世纪 70 年代末 80 年代初 dsp 芯片诞生以来,dsp 芯片得到飞速发展。最初 仅在信号处理领域内应用,近年来随着半导体技术的发展,其高速运算能力使很多复 杂的控制算法和功能得以实现,同时将实时处理能力和控制器的外设功能集于一身, 在控制领域内也得到很好的应用。目前 dsp 芯片的价格越来越低,性能价格比日益提 高,具有巨大的应用潜力。经过十几年的发展,dsp 器件在高速度、可编程、小型化、 低

23、功耗等方面都有了长足的发展,单片 dsp 芯片最快每秒可完成 16 亿次(1600mips, 每秒 1600 兆次指令)的运算,目前,市场占有率最大的是 ti 公司的 tms320 系列 dsp 芯片。 2.2dsp 芯片基本结构 tms320 系列 dsp 芯片的基本结构主要包括:哈佛结构、多总线结构、流水线操作、 专用的硬件乘法器、特殊的 dsp 指令、快速的指令周期。 (1)哈佛结构 哈佛结构主要特点是程序存储器和数据存储器相互独立,每个存储器独立编址、 独立访问,取指令和取操作数可同时进行,程序空间和数据空间之间可相互传送数据; 系统中设置了程序总线和数据总线两条总线,使数据的吞吐率提

24、高一倍。由于程序和 数据存储器在分开的两个空间里,取指令和执行能完全重叠运行,提高了指令执行速 度。 (2)多总线结构 dsp 芯片都采用多总线结构,可同时进行取指令和多个数据存取操作,并由辅助寄 存器自动增减地址进行寻址,使 cpu 在一个机器周期内可多次对程序空间和数据空间 进行访问,大大提高了 dsp 运行速度。tms320c55x 系列内部有 p,c,d,e 等 4 组总线, 每组总线中有地址总线和数据总线,这样在一个机器周期内可以完成如下操作: 1)从程序存储器中取一条指令 2)从数据存储器读两个操作数 3)向数据存储器写一个操作数 (3)流水线操作(pipeline) 流水线操作原

25、理:将指令分成几个子操作,每个子操作由不同的操作阶段完成。 tms320 系列流水线深度从 2 到 6 级不等,tms320c5510 有 6 级的流水线,tms320c6000 系列有 8 级流水线。流水线结构使得取指令、译码、取操作数、执行几个操作可以独 立进行,不同指令的不同阶段在时间上的执行能完全重叠。 (4)专用的硬件乘法器 dsp 芯片都配有专用的硬件乘法一累加器,即用专门的硬件来实现单周期乘法,并 用累加器寄存器来处理多个乘积的累加,可在一个周期内完成一次数据乘加操作,如 矩阵运算、fir 和 iir 滤波、fft 变换等专用信号处理。 (5)特殊的 dsp 指令 为满足数字信号

26、处理的需要,在 dsp 的指令系统中,设计了一些完成特殊功能的 指令用来完成专门的数字信号处理操作。如 tms320c55x 中的 firs 和 lms 指令,专门 用于系数对称的 fir 滤波器和 lms 算法。 为实现 fft、卷积等运算,当前的 dsp 大多在指令系统中设置了循环寻址 (circularaddressing)、位码倒置(bit-reversed)指令和其他特殊指令,使得在进行 这些运算时,寻址、排序及计算速度有了很大的提高。 (6)快速的指令周期 采用哈佛结构、流水线操作、专用的硬件乘法器、特殊指令及集成电路优化设计, 使指令周期可在 20ns 以下。tms320c55x

27、 的运算速度可达 1oomips,即 100 百万条/秒。 2.3dsp 系统构成 下图所示即是一个典型的 dsp 系统。图中输入信号可以是各种形式,如麦克风输 出的语音信号或电话线出来的己调数据信号或数码相机拍摄的图像信号等。 抗混叠 滤波器 a/d 转换 dsp 芯片 d/a 转换 低通滤 波器 输入输出 图 2-1 典型的 dsp 系统框图 其中,输入信号应先经带限滤波和抽样处理,再进行 a/d 变换,将输入信号变换 成数字比特流。根据奈奎斯特抽样定理,为保证信息的不丢失,抽样频率应该不小于 输入信号最高频率的 2 倍,一般取 4 到 6 倍。在本设计中,所使用的抽样频率为 5 倍 的截

28、止频率。 dsp 芯片的输入是经 a/d 变换后得到的以抽样形式表示的数字信号,dsp 芯片对输 入的数字信号进行某种形式的处理,如进行一系列的乘法累加操作(mac)等。数字处理 是该 dsp 系统的关键,这与其他系统有很大的不同。最后,经过处理后的数字样值再 经 d/a 变换转换为模拟信号样值,之后再进行内插和平滑滤波处理就可得到连续的模 拟信号。 上面给出的 dsp 系统只是一个典型模型,并不是所有的 dsp 系统都必须具有模型 中的所有部件,应根据具体要求来变化。 本设计中用到的北京精仪达盛有限公司的 dsp 实验箱的实验板上有 a/d,d/a 转换 芯片,相当于模型系统中的中间三个部件

29、。在不是自行设计 dsp 系统的情况下,可以 先不考虑硬件方面的设计。另外,有些输入信号本身就是数字信号,如 cd(compactdisk),就可以没有模数变换这个过程。 2.4dsp 系统设计过程 在设计 dsp 系统之前,应根据应用要求确定系统的性能指标、信号处理的要求, 对系统进行任务划分;然后用 c 等高级语言或者 matlab,systemview 等开发工具模拟所 选定的对数字信号进行处理的算法,此处的输入数据是实际信号经采集而获得的,常 以计算机文件的形式存储为数据文件。有些算法模拟时所用的输入数据并不一定为实 际采集的信号数据,只要能够验证算法的可行性,输入模拟假设的数据也可以

30、。 然后根据系统运算量大小、对精度要求、系统成本及体积、功耗等要求选择合适 的 dsp 芯片及其他组件;再接着进行硬件设计和调试,即根据选定的原件建立原理图、 制作 pcb 板、器件安装及加电调试;同时,用 dsp 汇编语言或者高级 c 语言或二者相嵌 套法生成可执行程序,用 dsp 仿真器或者软件模拟器调试程序。 最后,将软件加载到硬件系统中运行,用 dsp 仿真器等来测试检查所开发系统的 运行能否符合实时要求,或将软件脱离开发系统直接在应用系统上运行。 2.5tms320c55x 概述 tms320c55x 是 ti 公司在 tms320vc54x 的基础上发展起来的并能与 tms320v

31、c54x 兼 容的一个系列。tms320cssx 通过增加功能单元,增强了 dsp 的运算能力,而且性能更 好,功耗更低,是目前 tms320 家族中最省电的芯片。这些特性使其更适合在数据速率 高,运算量大又要求低功耗的 3g 无线通信中应用。 2.6cpu 结构 c55x 的 cpu 是并行结构,具有强大的运算功能,可在一个指令周期中高速完成多 项算术运算。主要由以下几部分构成: (1)40bit 算术逻辑运算单元 alu:它是 c55x 的大脑,对各种数据进行运算,实现各种 功能。还有处理溢出的功能,也可以进行布尔运算或者把这个 40 位的 alu 看作为两个 16 位的 alu,同时执行

32、两个 16 位的操作。 (2)2 个 40bit 累加器 a,b:累加器 a 和 b 存储来自 alu 或乘法器/加法器单元的输出数 据,也能输出到 alu 或者乘法器/累加器中。每个累加器可以分为低字位(bit1s-bit0)、 高位字(bit31-bit16)和保护位(bit39-bit32)。 (3)桶形移位寄存器:它在 alu 运算以前,对来自数据存贮器的操作数或者累加器进行 定标,或对累加器的值进行算术逻辑移位和归一化处理,或对在累加器的值将要存贮 到存贮器之前进行定标。可对输入数据进行 obit-31bit 的左移和 obit-16bit 的右移。 (4)乘法器/加法器单元:由 1

33、7bitx17bit 的乘法器、40bit 的加法器、带符号/无符号输 入控制、小数控制、零检测器、舍入器(二进制补码)、溢出/饱和逻辑和 16bit 的暂存 器组成。 (5)比较、选择和存贮单元 cssu:完成累加器的高位字和低位字间的最大值比较,并存 贮在数据存贮器中,不改变状态寄存器 sto 中的测试/控制位和传送寄存器 trn 的值。 还可利用优化的片内硬件促进 viterbi 型蝶形运算。 (6)指数编码器:为支持单周期指数运算指令(exp)的专用硬件,累加器中的值以二进制 补码形式在 t 寄存器中存贮,范围为-8bit-31bit。 (7)cpu 状态和控制寄存器:c55x 有三个

34、,状态寄存器 sto、状态寄存器 st1 和处理器工 作方式状态寄存器 pmst,都是存贮器映像寄存器。sto 反映了寻址要求和计算中间运 行状态,stl 反映了寻址要求、计算的初始设置、i/o 及中断控制,pmst 反映了处理器 工作状态。 2.7 总线结构 c55x 有 8 条 16bit 的总线,即: 4 条地址总线(pab,cab,dab,eab):传送执行指令所需地址。 3 条数据总线(cb,db,eb):连接内部各单元,即连接 cpu、程序地址产生逻辑、数 据地址产生逻辑、片内外设和数据存储器。其中 cb,db 传送读自数据存贮器的数,eb 传送写到存贮器的数。 1 条程序总线(p

35、b):从程序存储器装载指令码和立即数。 内部存贮器 c55x 共有 192k 字的寻址空间,分为大小都是 64k 字 3 个独立的可选择空间:程序 存储空间、数据存储空间和 vo 空间,分别用来存放要执行的指令和系数表、指令所用 数据、连接存贮器映像外围设备。在任一个存贮空间中,ram,rom,eprom,eeprom 或存 贮器映像外围设备,都可驻留在片内或片外。 c55x 片内存贮器为随机存储器(ram)和只读存储器(rom),ram 一般映射到数据空间, 但也可组成程序空间;rom 一般构成程序空间,也可部分安排到数据空间。ram 又分为 单寻址 ram(saram)和双寻址 ram(d

36、aram),在同一个周期内,cpu 可以对 daram 进行读 和写操作,但对 saram 只能进行一次读或写操作。c55x 并行结构和内部 ram 的双寻址 能力,使 cpu 在任一给定的机器周期内同时进行包括 1 次取指、2 次操作数和 1 次写操 作数的 4 次存储器操作。 第三章第三章 firfir 数字滤波器的设计原理及数字滤波器的设计原理及 matlabmatlab 的实现的实现 3.1fir数字滤波器的基本网络结构 设单位脉冲响应 h(n)长度为 n,输入信号为 x(n),则 fir 数字滤波器就是要实现下 列差分方程: (3) n-1 m=0 y(n)=h(m)x(n-m) 式

37、(3)就是 fir 数字滤波器的差分方程,fir 网络结构特点就是没有反馈支路, 即没有环路,因此它是无条件的稳定系统,其单位脉冲响应 h(n)是一个有限长序列。 由上面的方程可知,fir 滤波器实际上是一种乘法累加运算,不断地输入样本 x(n),经 延时() ,做乘法累加,再输出滤波结果 y(n)。 1 z 对式(3)进行 z 变换,经整理后可得 fir 滤波器的传递函数 h(z)为 (4) 1 0 ( )( ) n n n h zh n z 由式(4)可以看出,fir 数字滤波器一般网络结构,如下图 3-1 所示。 图 3-1 fir 数字滤波器一般网络结构 3.2fir数字滤波器的设计方

38、法 fir 数字滤波器的设计方法主要有窗函数和频率采样等设计方法,其中窗函数设计 法是最基本的设计方法。在设计 fir 滤波器时,一个最重要的计算就是加窗,其中采 用矩形窗是最直接也是最简便的方法。本文主要采用矩形窗设计方法。 3.2.1 窗函数法设计的基本思想 窗函数的设计思想是选择一种合适的理想频率特性的滤波器,然后截断它的脉冲 得到一个线性相位和因果的滤波器。因此这种方法关键在于选择某种合适的窗函数和 一种理想滤波器。对于给定的滤波器的技术指标,选择滤波器长度具有最窄主瓣宽度 和尽可能小的旁瓣衰减的某个窗函数。现介绍如下。 首先设希望逼近的滤波器频率响应函数为,其单位脉冲响应是。() j

39、w d he( ) d h n (5)()( ) jwjwn dd n hehn e (6) 1 ( )() 2 c c w jwjwn dd w hnheedw 如果能够由已知的求出,经过 z 变换可得到滤波器的系统函数。但() jw d he( ) d h n 通常以理想的滤波器作为,其幅度特性逐段恒定,在边界频率处有不连续点,() jw d he 因而是无限时宽的,且是非因果序列。( ) d h n 然而我们实际设计的滤波器的单位脉冲响应为 h(n),长度为 n,其系数函数 h(z) 为 (7) 1 0 ( )( ) n n n h zh n z 这样用一个有限长的序列 h(n)去代替,

40、肯定会引起误差,表现在频域就是通常所( ) d h n 说的吉布斯效应。这种吉布斯效应是由于将直接截断引起的,因此,也称为截断( ) d h n 效应。如何构造窗函数 w(n),用来减少截断效应,这就需要设计一个能满足技术要求 的 fir 线性相位滤波器。 3.2.2 几种常见的窗函数 采用窗函数设计方法关键在于选择某种合适的窗函数和理想的滤波器。常见的窗 函数有5:矩形窗、三角形窗、汉宁窗、哈明窗、布莱克曼窗、凯塞窗。这六种窗函数 的基本参数如表 1。. 表 1 六种窗函数的基本参数 过渡带宽度 t b 窗函数类型 旁瓣峰值 /db n a 近似值精确度 阻带最小衰减 /db s a 矩形窗

41、-134/n1.8/n-21 三角窗-258/n6.1/n-25 汉宁窗-318/n6.2/n-44 哈明窗-418/n6.6/n-53 布莱克曼窗-5712/n11/n-74 凯塞窗-5710/n-80 表中过渡带和阻带最小衰减是用对应的窗函数设计的 fir 数字滤波器的频率响应 指标。matlab 信号处理工具箱提供了十四种窗函数的产生函数,下面列出上述六种窗 函数的产生函数及调用格式: wn=boxcar(n)%列向量 wn 中返回长度为 n 的矩形窗函数 w(n) wn=bartlett(n)%列向量 wn 中返回长度为 n 的三角窗函数 w(n) wn=banning(n)%列向量

42、wn 中返回长度为 n 的汉宁窗函数 w(n) wn=hamming(n)%列向量 wn 中返回长度为 n 的哈明窗函数 w(n) wn=blackman(n)%列向量 wn 中返回长度为 n 的布莱克曼窗函数 w(n) wn=kaiser(n,beta)%列向量 wn 中返回长度为 n 的凯塞窗函数 w(n) 3.2.3 窗函数的选择原则 第一:具有较低的旁瓣幅度,尤其是第一旁瓣幅度。 第二:旁瓣幅度下降要尽可能大,以利于增加阻带衰减。 第三:主瓣的宽度要尽可能窄,以获得较陡的过渡带。 通常情况下上述三点很难同时满足,当选择主瓣宽度较窄时,虽然得到了较陡的 过渡带,但是通带和阻带明显增加;当

43、选用最小的旁瓣幅度时虽然能得到匀滑幅度响 应和较小的阻带波动,但过渡带又加宽了。因此我们在选择窗函数往往时折中选择。 在保证主瓣宽度达到一定要求的条件下,适当的牺牲主瓣宽度来换取旁瓣匀滑幅度响 应和波动减少。 3.2.4 用窗函数法设计 fir 滤波器的步骤 窗函数设计滤波器的步骤如下: (1)根据对阻带衰减及过渡带的指标要求,选择窗函数的类型,并估计窗口长度 n。先按照阻带衰减选择窗函数类型。原则是保证阻带衰减满足要求的情况下,尽量选 择主瓣窄的窗函数。然后根据过渡带宽度估计窗口长度 n。 (2)构造希望逼近的频率响应函数,即() jw d he (8) (1)/2 ()( ) jwjw n

44、 ddg hehw e 所谓的“标准窗函数法” ,就是选择为线性相位理想滤波器(理想低通、理想() jw d he 高通、理想带通、理想带阻) 。 (3)计算。如果给出待求滤波器的频响函数为,那么单位脉冲响应( ) d h n() jw d he 用下式求出: (9) 1 ( )() 2 jwjwn dd hnheedw 如果较复杂,或者不能用封闭公式表示,则不能用上式求出。我们可以() jw d he( ) d h n 对从 w=0 到 w=2采样 m 点,采样值为() jw d he ,进行 m 点 idft 得到: 2 ( )(),0,1,2,1 k j m dmd hkhekm (10

45、)( )( ) dmdmm hnidft hk 根据频域采样理论,与应满足:( ) dm hn( ) d h n (11)( )( dmdm r hnhnrmr )(n) 因此,如果 m 选得够大,可以保证在窗口内有效地逼近。( ) dm hn( ) d h n 由此可求出单位脉冲响应为( ) d h n (12) sin() ( ) () c d w na hn na 为保证线性相位特性,=(n-1/2)。a (4)加窗即可得到设计结果:h(n)=w(n)。( ) d h n 3.3fir数字滤波器的matlab的实现 matlab 是美国 mathworks 公司自 20 世纪 80 年代

46、中期推出的数学软件,优秀的 数值计算能力和卓越的数据可视化能力使其很快在数学软件中脱颖而出。matlab 语 言是当今国际科学界最具有影响力、最有活力、以及应用最广泛的软件之一。它提供 了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷与 其他程序接口功能;它提供了数字处理工具箱,使数字处理比以前更为简洁方便且效 果更好67。 matlab 集成了一套功能强大的滤波器设计工具 fdatool,它涵盖了信号处理工 具箱中所有滤波器设计方法,利用它可以方便地完成多种滤波器的设计、分析和性能 评估。首先应根据指标参数及对滤波器特性的要求,选择合适的滤波器类型及设计方 法进行设计

47、。本文以采用矩形窗设计低通数字滤波器为例。所设计的滤波器技术指标 为:滤波器阶数为 51,采样频率 fs 为 181khz,滤波器截止频率 fc 为 10kz 的滤波器。 设计的仿真结果如图 2,图 3 所示。 0102030405060708090 -120 -100 -80 -60 -40 -20 0 20 frequency (khz) magnitude (db) magnitude response (db) 图 2 幅频曲线 0102030405060708090 -700 -600 -500 -400 -300 -200 -100 0 frequency (khz) phase

48、(degrees) phase response 图 3 相频曲线 由图 2,图 3 可得:图 2 为本次所设计滤波器的幅频特性曲线,图 3 为本次所设计 滤波器的相频特性曲线。由图可以看出所设计的滤波器具有良好的低通滤波特性,在 通带内具有严格的线性相位。 第四章第四章 firfir 数字滤波器系统硬件设计数字滤波器系统硬件设计 4.1 硬件系统设计 fir 数字滤波器系统功能电路图如下: 串口电源 a/d d/a dsp (c55x) 时序控 制 cpld ramflashjtag 图 4.1 滤波器系统功能框图 其中,dsp 芯片 c55x 主要负责数据处理(滤波算法):a/d,d/a

49、转换任务由芯片 tlc320ad50c 来完成,经转换后的数据由 dsp 芯片进行算法处理,然后再经 d/a 转换输 出;ram 芯片 is61lv6416 用来扩展存储区(数据或程序);flash 芯片 sst39vf040 用来固 化 dsp 程序及上电自举(采用 8bit 并行模式);cpld 用于时序控制;电源芯片 tps73hd318 提供给 c55x 所需的 1.8v 和 3.3v 电压,并用引脚 reset2 对 c55x 进行复位;串 口通信功能由 tlc16550c 与 max232 芯片完成。 4.2时钟电路设计 c55x 有 x1 和 x2 两个时钟管脚,x1 为输出管脚

50、,x2 为输入管脚也称为 clkin。为 dsp 提供时钟有两种引脚连接方式,一种是 xl 悬空,使用外部晶振提供时钟,一种是 利用 dsp 片内为晶振振荡器提供的放大电路器,外接晶振。电路连接如下。这种接法 中,片内振荡器被激活,x2 脚向 dsp 送入一个频率与 2 脚晶体标称值相同的时钟,并 通过外部锁相环控制电路选择适当倍频倍数为 cpu 内部提供系统时钟。 图 4.2 时钟电路 c55x 的支持软件 pll(内部锁相环)控制方式,在 dsp 复位时,它由 clkmd1clkmd3 三 个管脚的电平决定,这三个管脚值也决定了时钟模式寄存器的值。三个管脚与倍频关 系如下表: 表 4.1c

51、lkmd1clkmd3 与倍频关系 clkmd1clkmd2clkmd3 复位值 时钟模 式 000e007hpll*15 0019007hpll*10 0104007hpll*5 1001007hpll*2 110f007hpll*1 1110000hpll*1/2 101f000hpll*1/4 011 保留 4.3电源电路设计 c55x 电源分为内核电源 cvdd 和 i/o 电源 dvdd,内核电源为 1.8v,为包括 cpu、 时钟电路和所有外设的器件的所有内部逻辑提供电流;i/o 电源为 3.3v,为外部接口引 脚提供电压。c55x 的电流消耗主要取决于器件的激活度,内核电源消耗的

52、电流主要取 决于 cpu 的激活度,外设消耗的电流决定于正在工作的外设及其速度,一般与 cpu 相 比,外设消耗的电流是比较小的。时钟电路也需要消耗一部分电流,而且这部分电流 是恒定的,与 cpu 和外设的激活度无关。本设计中采用 ti 公司的芯片 tps73hd318 来 提供电源。该芯片电源输入为 5v,可提供两路输出电压,一路为 3.3v,一路为 1.8v, 每路最大输出电流为 750ma,还提供两个宽度为 200ms 的低电平复位信号,可直接与 c55x 的复位引脚连接。与 c55x 连接图如下: 图 4.3 电源连接电路 4.4模数/数模转换电路设计 模数/数模转换采用芯片 tlc3

53、20ad50c(下面简称 ad50c),该芯片最高采样速率可达 22.05kb/s,通过 dsp 编程设置,可进行 16 位 a/d 和 d/a 的高分辨率、低速信号转换。 该芯片内部 adc 之后有抽样滤波器,dac 之前有插值滤波器,接收和发送可同时进行。 tlc320ad50c 与 c55x 的 mcbsp 串行口直接相连,不需要外围电路不,占用并行总线, 避免了总线冲突。连接图如下: 图 4.4c55x 和 adsoc 的硬件连接 c55x 工作于 spi 方式的从机模式,它的 bfsx,bclkr,bclkx 通过寄存器配置为外部输入; ad50 工作在主机模式(m/s=1),它的

54、sclk 配置为内部产生,这样数据接收/发送帧同步 信号(fs)、移位时钟信号(sclk)均由 ad50c 产生。串行口的接收/发送过程受 ad50c 的 控制。该种连接方式不占并行总线,避免了总线冲突。 4.5flash接口设计 flash 芯片采用使用 sst39vf040,该芯片是 sst 公司的 39 系列多用途闪存,它是 单电压读写操作,有极高的可靠性,功耗较低,具有块区域擦除能力。dsp 的 i/o 端口 8000h 映射为 sst39vf040 的 a15a8 地址的控制信号使能,即当对 i/o 端口 8000h 写数 据的时候,a15a18 分别等于数据的低 4 位,当对外部存

55、储空间操作时,首先向 il0 端 口 8000h 写入数据。在本设计中,使用外部数据空间 8000hffffh,所以写入的是数据 0,实际对应 sst39vf040 数据空间的 ooooh7fffh。这样设置以后,将 dsp 上使用的外 部数据空间映射到了 sst39vf040 的数据空间。接口电路如下图所示。 在编写引导程序之前,要编制一个引导表,内容包括:引导方式标识、预置 swwsr 和 bscr 寄存器的值、程序入口(xpc)、程序入口地址(pc)、用户程序长度、首块存放 目标(xpc)、首块存放目标地址(pc)等。 图 4.5c55x 与 flash 接口电路 flash 控制管脚的

56、逻辑关系如下:(其中, “十”表示逻辑或) ,dsce wrmstrboe/wrmstrbwe/ 4.6外部存贮器接口设计 外扩 ram 芯片采用 is61lv6416,该芯片是一种高速 cmos 静态 ram 存储容量为 64kx16 位,数据存取时间为 10ns,能满足高速运行需要。其工作电压为 3.3v,与 c55x 工作电压一致,无需电平转换。与 c55x 连接图如图 4.6.所示。这是一种优化的 混和程序和数据区外接 ram 的方法,省去了 c55x 的地址线 a15,这种方法可充分利用 外部扩展 ram,不会因内部 ram 和外部 ram 的地址重叠而造成外部 ram 的浪费。 图

57、 4.6c55x 与 ram 连接电路 5fir滤波器的dsp程序实现 使在初期阶段,因 dsp 的性能指标较低,主要用汇编语言来编写高效、专用的程 序代码,后来随着 dsp 运算速度的提高,采用 c 语言编程来降低开发难度、缩短开发 周期,但关键程序段仍结合 dsp 硬件编写 dsp 汇编程序。如今,高效的信号处理工具 matlab 逐渐渗透到 dsp 设计中。利用 matlab 辅助 dsp 程序开发,提高了程序开发效率, 缩短了软件开发周期。 tms320c55x 对数字滤波器算法的实现在指令集和硬件结构上都有考虑。它有 mac 指令,该指令将数据区的两个数相乘,然后再与累加器中的值累加

58、,运算结果仍存在 累加器中为下次操作准备;在硬件上有间接寻址时的循环寻址功能,即将滤波器系数保 存在一个可循环寻址的数据缓冲区,寻址指针由低地址自动增长,当达到缓冲区顶部 时,自动返回低地址重新寻址,这样,配合单指令重复指令 rpt,就可以快速实现卷积 操作。 5.1傅氏级数法的dsp程序实现 在第三章最后算出了滤波器四种类型的系数表达式。可以根据系数表达式采用 c 语言来编程实现滤波算法。下面是 fir 带通滤波器算法程序段: voidfirbpf(doublelpass,doublehpass) intt; for(t=o;tflen;t+) doublem; m=sin(t-(flen-

59、1)/2.0)*hpass*pi)/(t-(flen-1)/2.0)*pi); h(t)=m-sin(t-(flen-1)/z.0)*lpass*pi)/(t-(flen-1)/2.0)*pi); if(t=(flen-1)12) ht=hpass-lpass; 相应的其它三种类型 fir 滤波器算法程序都可以由对应的系数表达式编写出来。 5.2利用汇编程序实现fir滤波器 汇编程序调试首先在 ccs 中建立新的工程 fir.mak,然后将汇编语言源文件(.asm 或.c)文件以及中断向量文件(.asm)、位文件(.cmd)添加到工程中。编译通过后,生成 可执行文件(*.out 文件),下载到

60、 dsp 程序存储器中,这时打开 momery 窗口,可以看到 数据存储器已经被划分 coff_fir,d_data_buffer,in_buffer,out_buffer 等区。编译 并将整个 fir 项目成功地下载到目标系统板后,fir 程序就可以在 evm 板上运行进行调 试(程序见附录 a) 。下图为程序流程图。 主程序 系统初始化 输入缓冲区初始化为零 根据指标生成系数 开放中断 等待中断 中断程序 是否采集到 256 个数据 输入信号值归一化 输入缓冲区值下移一位, 加入最新输入信号 进行乘加运算 返回 是 否 图 5.1 程序流程图 在主程序中,在 flag=0 处设置断点;单击

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论