您的当前位置:首页正文

基于DSP的IIR数字滤波器的设计

2024-01-24 来源:榕意旅游网


学校代码 学号

题 目

本科实训论文

基于DSP的IIR数字滤波器设计

院 系 电子信息工程系 专业名称 电子信息科学与技术 年 级 学生姓名 指导教师

基于DSP的IIR滤波器设计

摘 要

在现代通信系统中,由于信号中经常混有各种复杂成分,所以很多信号分析都是基于滤波器而进行的,而数字滤波器是通过数值运算实现滤波,具有处理精度高、稳定、灵活、不存在阻抗匹配问题,可以实现模拟滤波器无法实现的特殊滤波功能。在基于DSP设计一个24阶带通IIR滤波器过程中,首先在matlab中产生一个模拟信号,其次在MATLAB中设计实现了IIR数字滤波器,最后将IIR数字滤波器移植到TI C5402 DSP芯片上。 关键字:IIR数字滤波器,DSP芯片 ,MATLAB

-

DESIGN OF IIR DIGITAL FILTER BASED ON DSP

ABSTRACT

In the modern communication system, because often mixed with various signal complex composition, so many signal analysis is based on the filter, and digital filter is through the numerical computation realize filtering, has the processing precision, stability, flexible, does not exist impedance matching problem, can simulate the filter can't achieve special filter function. Based on DSP in design a 24 order bandpass filter IIR process, first in matlab produce a simulation signal and secondly in matlab design and realize the IIR digital filters, finally will IIR digital filters transplanted to TI C5402 DSP chip.

Keywords:IIR Filter,DSP , MATLAB

-

目录

摘 要 ....................................................................................................................................................I ABSTRACT .........................................................................................................................................II 目录................................................................................................................................................... III 1 绪论 ................................................................................................................................................. 1

1.1选题背景 ................................................................................................................................. 1 1.2选题意义 ................................................................................................................................. 1 2 数字滤波器基本原理......................................................................................................................... 2

2.1 数字滤波器的基本概念 ........................................................................................................... 2

2.1.1 数字滤波器的概念 ......................................................................................................... 2 2.1.2数字滤波器的分类.......................................................................................................... 2 2.1.3数字滤波器的性能指标................................................................................................... 4 2.2 数字滤波器的原理 .................................................................................................................. 4

2.2.1 数字滤波器的基本结构 .................................................................................................. 4 2.2.2 IIR滤波器的基本结构 .................................................................................................... 5 2.3滤波器设计概述 ....................................................................................................................... 6 3. DSP芯片概述 ................................................................................................................................ 8

3.1DSP定义 .................................................................................................................................. 8 3.2 DSP原理 ................................................................................................................................. 8 3.3 DSP的特点.............................................................................................................................. 8 3.4 DSP的应用.............................................................................................................................. 8 4 数字滤波器的实现 ...........................................................................................................................11

4.1在matlab中产生模拟叠加信号 ................................................................................................11 4.2 IIR滤波器在matlab中的三种设计方案................................................................................... 12

4.2.1 巴特沃斯滤波器 .......................................................................................................... 12 4.2.2 切比雪夫滤波器 .......................................................................................................... 12 4.2.3 椭圆滤波器 ................................................................................................................. 13 4.2.4 三种滤波器的比较 ....................................................................................................... 14

-

4.3 IIR带通滤波器的在DSP上的移植 ......................................................................................... 14

4.3.1编程的思想 .................................................................................................................. 14 4.3.2移植结果...................................................................................................................... 15 4.4 CCS中实现的结果与matlab中实现结果对比.......................................................................... 15 5. 总结 .............................................................................................................................................. 17 致谢................................................................................................................................................... 18 参考文献............................................................................................................................................ 19 附录ⅠIIR在MATLAB中实现IIR数字滤波器的程序 ......................................................................... 20 附录II IIR在CCS中实现IIR数字滤波器的程序 ................................................................................ 25

-

1 绪论

1.1选题背景

数字信号处理(DigitalSignal Processing,简称DSP)是一门涉及许多科学而又广泛应

用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速发展。在过去的二十多年时间里,数字信号处理已经在通信领域得到极为广泛的应用

数字信号处理是利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们需要的信号形式。

随着集成电路技术的发展,各种新型的大规模和超大规模集成电路不断涌现,集成电路技术与计算机技术结合在一起,使得数字信号处理系统的功能越来越强。DSP技术就是基于VLSI技术和计算机技术发展起来的一门重要技术。

目前DSP芯片的价格越来越低,性能价格比日益提高,具有巨大的应用潜力。经过十几年的发展,DSP器件在高速度、可编程、小型化、低功耗等方面都有了长足的发展,单片DSP芯片最快每秒可完成16亿次(1600MIPS,每秒1600M次指令)的运算,生产DSP器件的公司也不断壮大,目前,市场占有率前四名依次为:Texas Instruments、Lucent、AnalogDevice、Motorola。DSP器件应用面从起初的局限于军工,航空航天等军事领域,扩展到今天的诸多电子行业及消费类电子产品中 1.2选题意义

在数字信号处理中,滤波占有极其重要的地位。数字滤波是语音和图象处理、模式识别、谱分析等应用中的一个基本的处理技术。用可编程DSP芯片实现数字滤波可通过修改滤波器的参数十分方便地改变滤波器的特性。因此,我们有必要对滤波器的设计方法进行研究,理解其工作原理,优化设计方法,设计开发稳定性好的滤波器系统。通过本课题的研究,掌握滤波器的设计技术,为通信、信号处理等领域实用化数字滤波器设计提供技术准备。本科题的研究,将为今后设计以DSP为核心部件的嵌入式系统集成提供技术准备,这不仅具有重要的理论意义,同时还具有重要的实际意义。

2 数字滤波器基本原理

2.1 数字滤波器的基本概念 2.1.1 数字滤波器的概念

滤波器是指用来对输入信号进行滤波的硬件和软件。数字滤波器是对数字信号实现滤波的线性时不变系统。数字滤波器可以理解为是一个计算程序或算法,将代表输入信号的数字时间序列转化为代表输出信号的数字时间序列,并在转化过程中,使信号按预定的形式变化。数字滤波实质上是一种运算过程,实现对信号的运算处理。数字滤波器和模拟滤波器相比,因为信号的形式和实现滤波的方法不同,数字滤波器具有比模拟滤波器精度高、稳定、体积小、重量轻、灵活、不要求阻抗匹配等优点。输入数字信号(数字序列)通过特定的运算转变为输出的数字序列,因此,数字滤波器本质上是一个完成特定运算的数字计算过程,也可以理解为是一台计算机。描述离散系统输出与输入关系的卷积和差分方程只是给数字信号滤波器提供运算规则,使其按照这个规则完成对输入数据的处理。

时域离散系统的频域特性:

Y(ej)X(ej)H(ej) (式1-1)

其中Y(ej)、X(ej)分别是数字滤波器的输出序列和输入序列的频域特性(或称为频谱特性), H(ej)是数字滤波器的单位取样响应的频谱,又称为数字滤波器的频域响应。输入序列的频谱X(ej)经过滤波后X(ej)H(ej),因此,只要按照输入信号频谱的特点和处理信号的目的, 适当选择H(ej),使得滤波后的X(ej)H(ej)满足设计的要求,这就是数字滤波器的滤波原理。 2.1.2数字滤波器的分类

按照不同的分类方法,数字滤波器有许多种类,但总起来可以分成两大类:经典滤波器和现代滤波器。经典滤波器的特点是其输入信号中有用的频率成分和希望滤除的频率成分占有不同的频带,通过一个合适的选频滤波器滤除干扰,得到纯净信号,达到滤波的目的。但是,如果信号和干扰的频谱相互重叠,则经典滤波器不能有效地滤除干扰,最大限度地恢复

信号,这时就需要现代滤波器,例如维纳滤波器、卡尔曼滤波器、自适应滤波器等最佳滤波器。现代滤波器是根据随机信号的一些统计特性,在某种最佳准则下,最大限度地抑制干扰,同时最大限度地回复信号,从而达到最佳滤波的目的。

经典数字滤波器从滤波特性上分类,可以分为:低通滤波器、高通滤波器、带通滤波器、带阻滤波器。

c带通带阻Ha(jΩ)Ha(jΩ)0低通Ω0高通ΩHa(jΩ)Ha(jΩ)图1-1Ω 各种理想滤波器的幅频特性0Ω

数字滤波器根据其冲激响应函数的时域特性,可分为两种,即无限长冲激响应(IIR)数字滤波器和有限长冲激响应(FIR)数字滤波器。IIR 数字滤波器的特征是,具有无限持续时间冲激响应,需要用递归模型来实现,

其差分方程为:

NNiy(n)ai0x(ni)bi1iy(ni) (式1-2)

系统函数为:

MH(z)r0brZNr (式1-3)

i1ak1Zk设计IIR滤波器的任务就是寻求一个物理上可实现的系统函数H(z),使其频率响应H(z)满足所希望得到的频域指标,即符合给定的通带截止频率、阻带截止频率、通带衰减系数和阻带衰减系数。

2.1.3数字滤波器的性能指标

数字滤波器具有比模拟滤波器更高的精度,甚至能够实现后者在理论上也无法达到的性能。例如,对于数字滤波器来说很容易就能够做到一个1000Hz 的低通滤波器允许 999Hz信号通过并且完全阻止1001Hz的信号,模拟滤波器无法区分如此接近的信号。 数字滤波器相比模拟滤波器有更高的信噪比。这主要是因为数字滤波器是以数字器件执行运算,从而避免了模拟电路中噪声(如电阻热噪声)的影响。数字滤波器中主要的噪声源是在数字系统之前的模拟电路引入的电路噪声以及在数字系统输入端的模数转换过程中产生的量化噪声。这些噪声在数字系统的运算中可能会被放大,因此在设计数字滤波器时需要采用合适的结构,以降低输入噪声对系统性能的影响。

数字滤波器还具有模拟滤波器不能比拟的可靠性。组成模拟滤波器的电子元件的电路特性会随着时间、温度、电压的变化而漂移,而数字电路就没有这种问题。只要在数字电路的工作环境下,数字滤波器就能够稳定可靠的工作。

由于奈奎斯特采样定理,数字滤波器的处理能力受到系统采样频率的限制。如果输入信号的频率分量包含超过滤波器1/2采样频率的分量时,数字滤波器因为数字系统的“混叠”而不能正常工作。如果超出1/2采样频率的频率分量不占主要地位,通常的解决办法是在模数转换电路之前放置一个低通滤波器(即抗混叠滤波器)将超过的高频成分滤除。否则就必须用模拟滤波器实现要求的功能。

2.2 数字滤波器的原理 2.2.1 数字滤波器的基本结构

作为线形时不变系统的数字滤波器可以用系统函数来表示,而实现一个系统函数表达式所表示的系统可以用两种方法:一种方法是采用计算机软件实现;另一种方法是用加法器、乘法器、和延迟器等元件设计出专用的数字硬件系统,即硬件实现。不论软件实现还是硬件实现,在滤波器设计过程中,由同一系统函数可以构成很多不同的运算结构。对于无限精度的系数和变量,不同结构可能是等效的,与其输入和输出特性无关;但是在系数和变量精度

是有限的情况下,不同运算结构的性能就有很大的差异。因此,有必要对离散时间系统的结构有一基本认识。

2.2.2 IIR滤波器的基本结构

一个数字滤波器可以用系统函数表示为:

MH(z)K0Nbzkkk1kY(z)X(z)

1azk (式2-1)

由这样的系统函数可以得到表示系统输入与输出关系的常系数线形差分程为:

NMky(n)

ak0y(nk)bk0kx(nk) (式2-2)

可见数字滤波器的功能就是把输入序列x(n)通过一定的运算变换成输出序列y(n)。不同的运算处理方法决定了滤波器实现结构的不同。无限冲激响应滤波器的单位抽样响应h(n)是无限长的,其差分方程如(2-2)式所示,是递归式的,即结构上存在着输出信号到输入信号的反馈,其系统函数具有(2-1)式的形式,因此在z平面的有限区间(0<︱z︱<∞)有极点存在。

前面已经说明,对于一个给定的线形时不变系统的系统函数,有着各种不同的等效差分方程或网络结构。由于乘法是一种耗时运算,而每个延迟单元都要有一个存储寄存器,因此采用最少常熟乘法器和最少延迟支路的网络结构是通常的选择,以便提高运算速度和减少存储器。然而,当需要考虑有限寄存器长度的影响时,往往也采用并非最少乘法器和延迟单元的结构。

IIR滤波器实现的基本结构有: (1)IIR滤波器的直接型结构;

优点:延迟线减少一半,变为N个,可节省寄存器或存储单元; 缺点:其它缺点同直接I型。

通常在实际中很少采用上述两种结构实现高阶系统,而是把高阶变成一系列不同组合的低阶系统(一、二阶)来实现。 (2)IIR滤波器的级联型结构;

特点:系统实现简单,只需一个二阶节系统通过改变输入系数即可完成;极点位置可单

独调整;运算速度快(可并行进行);各二阶网络的误差互不影响,总的误差小,对字长要求低。

缺点:不能直接调整零点,因多个二阶节的零点并不是整个系统函数的零点,当需要准确的传输零点时,级联型最合适。 (3)IIR滤波器的并联型结构。

优点:简化实现,用一个二阶节,通过变换系数就可实现整个系统;极、零点可单独控制、调整,调整α1i、α2i只单独调整了第i对零点,调整β1i、β2i则单独调整了第i对极点;各二阶节零、极点的搭配可互换位置,优化组合以减小运算误差;可流水线操作。 缺点:二阶电平难控制,电平大易导致溢出,电平小则使信噪比减小。

图a、直接型 图b、并联型

图c、串联型

图2.1 IIR滤波器的基本结构

2.3滤波器设计概述

模拟滤波器的理论和设计方法已发展得相当成熟,且有一些典型的模拟滤波器供我们选择,如巴特沃斯(Butterworth)滤波器、切比雪夫(Chebyshev)滤波器、椭圆(Cauer)滤波器、贝塞尔(Bessel)滤波器等,这些典型的滤波器各有特点。用MATLAB进行典型的数字滤波器的

设计,一般步骤如下:

(1)按一定规则将给出的数字滤波器的技术指标转换成模拟低通滤波器的技术指标; (2)根据转换后的技术指标使用滤波器阶数选择函数,确定最小阶数N和固有频率Wn,根据选用的模拟低通滤波器的类型可分别用函数:buttord、eheb1ord、chebZord、ellipord等;

(3)运用最小阶数N产生模拟滤波器原型,模拟低通滤波器的创建函数有:buttap、eheb1ap、ehebZap、ellipap、besselap等;

(4)运用固有频率Wn把模拟低通滤波器原型转换成模拟低通、高通、带通、带阻滤波器,可分别用函数lpZlp、lpZhp、lpZbp、lpZbs;

(5)运用冲激响应不变法或双线性变换法把模拟滤波器转换成数字滤波器, 分别用函数impinvar和bilillear来实现。

3. DSP芯片概述

现代信息社会的一个重要标志是数字化,数字移动电话,数字广播电视,数码相机,mp3播放器等各种数字化产品越来越多地出现在日常生活中,而这些产品的推出得益于数字信号处理理论和技术的发展与成熟。 3.1DSP定义

DSP有两种含义:第一种是 Digital Signal Processing 数字信号处理,是指数字信号处理的理论和算法,例如滤波,变换,卷积和频谱分析等; 第二种Digital Signal Processor 数字信号处理器, 是指实现数字信号处理算法的微处理器芯片,它为数字信号的实时处理提供一个平台。 3.2 DSP原理

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

3.3 DSP的特点 (1) 哈佛(Havard)结构

早期的微处理器内部大多采用冯·诺依曼(Von-Neumann)结构.其片内程序空间和数据空间是合在一起的,取指令和取操作数都是通过一条总线分时进行的。当高速运算时。不但不能同时取指令和取操作数,而且还会造成传输通道上的瓶颈现象。

DSP内部采用的是程序空司和数据空间分开的哈佛(Havard)结构,允许同时取指令(来自程序存储器)和取操作数(来自数据存储器)。而且,还允许在程序空间和数据空间之间相互传送数据,即改进的哈佛结构。

(2)多总线结构

许多DSP芯片内部都采用多总线结构,这样可以保证在一个机器周期内可以多次访问程序空间和数据空间。

TMS320C54x内部有P、C、D、E等4条总线(每条总线又包括地址总线和数据总线),可以在一个机器周期内从程序存储器取1条指今、从数据 存储器读2个操作数和向数据存储器写1个操作数,大大提高了DSP的运行速度。对于DSP来说,内部总线是个十分重要的资源,总线越多,可以完成的功能就越复杂。 (3) 流水线结构

DSP执行一条指令,需要通过取指、译码、取操作和执行等几个阶段。在DSP中,采用流水线结构,在程序运行过程中这几个阶段是重叠的。这样,在执行本条指今的同时,还依次完成了后面3条指今的取操作数、译码和取指,将指今周期降低到最小值。利用这种流水线结构,加上执行重复操作,就能保证数字信号处理中用得最多的乘法累加运算可以在单个指令周期内完成。 (4)多处理单元

DSP内部一般都包括有多个处理单元,如算术逻辑运算单元(ALU)、辅助寄存器运算单元(ARAU)、累加器(ACC)以及硬件乘法器(MUL)等。 它们可以在一个指令周期内同时进行运算 例如,当执行一次乘法和累加的同时,辅助寄存器单元已经完成了下一 个地址的寻址工作,为下一次乘法和累加运算做好了充分的准备。因此, DSP在进行连续的乘加运算时,每一次乘加运算都是单周期的。DSP的这种多处理单元结构,特别适用于FIR和IIR滤波器。许多DSP的多处理单元结构还可以将一些特殊的算法。例如FFT的位码倒置寻址和取模运算等,在芯片内部用硬件实现以提高运行速度。 (5)特殊的DSP指令

为了更好地满足数字信号处理应用的需要,在DSP的指令系统中,设计了一些特殊的DSP指令。

TMS320C25中的MAD(乘法、累加和数据移动)指令,具有执行LT、DMOV、MPY和APAC等4条指令的功能。

TMS320C54x中的FIRS和LM5指令,则专门用于系数对称的F1R滤波器和LMS算法。 (6)指令周期短

早期的DSP的指令周期约400ns,随着集成电路工艺的发展,DSP广泛采用亚微米CMOS

制造工艺,其运行速度越来越快。TMS320C54x运行速度可达100MIPS,TMS320C6203的时钟为300MHZ,运行速度达到2400MIPS (7)运算精度高

早期DSP的字长为8位,后来逐步提高到16位、24位、32位,为了防止运算过程中溢出,有的累加器达到40位。一批浮点DSP,例如TMS320C3x、TMS320C4x、ADSP21020等,则提供了更大的动态范围。 (8)硬件配置强

新一代DSP的接口功能愈来愈强,片内具有串行口、主机接口(HPI)、DMA控制器、软件控制的等待状态产生器、锁相环时钟产生器。实现在片仿真符合IEEE 1149.1标准的测试访问口,更易于完成系统设计。许多DSP芯片都可以工作在省电方式,使系统功耗降低。 3.4 DSP的应用

DSP技术广泛应用于科教、医疗、通信、军事、工业等诸多领域,而且DSP技术应用具备以下优势

(1)强大的图像处理、运算和控制能力,适应智能和融合应用时代需求

能高效地进行视频处理,能同时完成信号处理和控制任务,适应智能应用需求;其融合性架构可实现:多格式音频、视频、语言和图像处理;多模式基带和分组处理;控制处理和实时安全性。

(2)同时具备较高的性能/价格比、性能/功耗比、性能/面积比

人们在新处理器设定性能目标时,注重的不仅是DSP的时钟频率和处理能力,还包括处理器必须提供的其它方面,如性能价格比、性能功耗比、性能面积比。新的CMOS深亚微米工艺尺度、更深的流水线、多内核、每个核心更多的计算单元,以及充分利用信号处理加速引擎增强它们在性价比和性能功耗比方面的优势。

(3)软件开发的可升级性和可扩展性

前代和后代DSP产品具有软件和开发环境的兼容性,以节省设计升级的时间和成本。 (4)芯片具备高品质,能保证系统高可靠性稳定运行

DSP芯片质量可靠、温度范围宽、抗干扰能力强等,可适应各种环境条件苛刻的应用。 (5)世界级的开发工具和大量的本地第三方合作伙伴

除了自己设计制造完善的软硬件开发工具,还应支持第三方合作伙伴,设计出适合本地

的开发工具和系统方案。

4 数字滤波器的实现

4.1在matlab中产生模拟叠加信号

输入的两个信号1000HZ和4000HZ的幅度频谱图和时域波形图,如图4.1

图4.1 1000HZ和4000Hz时域波形图

两输入信号的叠加波形图,如图4.2

图4.2 1000HZ和4000HZ信号叠加图

4.2 IIR滤波器在matlab中的三种设计方案 4.2.1 巴特沃斯滤波器

巴特沃斯滤波器[3](Butterworth 滤波器)

特点:具有通带内最大平坦的振幅特性,且随f↗,幅频特性单调↘。 其幅度平方函数:

A(2)H(j)2a1j1jc2N (4-1)

N为滤波器阶数,本文中滤波器为24阶带通滤波器,其通频带为3KHZ图4.3(a) 巴特沃斯幅频特性和相频特性图 图4.3(b) 巴特沃斯滤波前后对比图

4.2.2 切比雪夫滤波器

巴特奥兹低通滤波器的幅频特性随Ω的增加而单调下降,当N较小时,阻带幅频特性下降较慢,要想使其幅频特性接近理想低通滤波器,就必须增加滤波器的阶数,这就将导致模拟滤波器使用的原件增多,线路趋于复杂。切比雪夫滤波器[4]的阻带衰减特性则有所改善。

特点:误差值在规定的频段上等幅变化。

本文中滤波器为24阶带通滤波器,其通频带为3KHZ特性和相频特性图,切比雪夫滤波前后对比图,如图4.2

图4.4 (a) 切比雪夫幅频特性和相频特性 图4.4(b) 切比雪夫滤波前后对比图

4.2.3 椭圆滤波器

特点:幅值响应在通带和阻带内都是等波纹的,对于给定的阶数和给定的波纹要求,椭圆滤波器能获得较其它滤波器为窄的过渡带宽,就这点而言,椭圆滤波器[5]是最优的。

本文中滤波器为24阶带通滤波器,其通频带为3KHZ图4.5(a) 椭圆滤波器的幅频特性和相频特性 图4.5(b) 椭圆滤波器滤波前后对比图

4.2.4 三种滤波器的比较

根据三种滤波器的波形图可以看出,切比雪夫的滤波范围最接近3KHZ到7KHZ,而且波形稳定,滤波效果显著。所以在CCS中实现仿真时,使用切比雪夫的系数比较好。

4.3 IIR带通滤波器的在DSP上的移植 4.3.1编程的思想

mn编程的主要思想是根据差分方程式4-1:yn假设为2阶,则差分方程为:

bxniayni

iii0i1y(n)=b0x(n)+b1x(n-1)+b2x(n-2)+a1y(n-1)+a2y(n-2) (式4-2) 首先确定是多少阶的滤波器,然后给滤波器系数AN,BN分配内存空间和输入、输出的内存空间。最后经过中断向量表和辅助寄存器进行块循环。 程序流程图4.6

图4.6 程序流程图

4.3.2移植结果

在CCS中运行程序,得到结果,如图4.7

图4.7 CCS中切比雪夫滤波前后图形

4.4 CCS中实现的结果与matlab中实现结果对比

在matlab中切比雪夫滤波器的信号叠加输入、输出波形,如图4.8

图4.8 MATLAB中切比雪夫滤波前后图形

图4.9 CCS中切比雪夫滤波前后图形

通过CCS中实现的结果与matlab图对比,可以看出移植是成功的,在CCS中基本实现了matlab中函数的功能。

5. 总结

DSP是当今的热门技术,我们也是在这个大的背景之下选择完成此次课题的。相较于复杂的系统,本文只是介绍了一些最基本的DSP结构,以及使用基本的思想与方法实现简单的目的。IIR滤波器是一种较为简单的电子设备,而且在数字电路中具有极其广泛的应用,通过此次实训,同时深入了解了数字电路中两个使用极其广泛的器件。在未来,DSP会朝着更小,更快,更节能的方向发展,但是万变不离其中,一切发展也都要基于这些基本的结构与原理,而我们则是掌握了这些最基础的理论知识与实际操作。

本文由于时间问题和论文篇幅的问题,不能对MATLAB和CCS两个软件在设计滤波器过程中的每一步实现有一个详细的阐述和探究。

致谢

这次课题的完成离不开赵老师不辞辛苦的帮助和耐心细致的教导。由于此前学习上的疏漏,我在此次实训前DSP的理解几乎为零。而通过此次实训,我学会了一些DSP设计的基本方法,以及赵老师教会了我很多程序方面的知识,让我对之前学习的知识有了实践上的应用,以及对以后的动手能力有了一定的积攒,同时也提高了与他人协同工作的能力。总之,在此次实训中,赵老师老师一丝不苟的作风,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。在此谨向赵老师致以最诚挚的谢意意和崇高的敬意。

参考文献

[1] 俞一彪.DSP技术与应用基础.北京大学出版社,2009年:4.

[2] 刘艳萍.DSP技术原理及应用教程.北京航空航天大学出版社,2004年:31.

[3] 叶榆,贺国权.基于Pspice的八阶巴特沃斯低通滤波器设计与优化[J].山西电子技术,2006.(3):61~63

[4] 谢子常,徐水明.数字切比雪夫滤波器的设计及MATLAB仿真[J].福建电脑,2004.(5):31~32

[5] 王田.Celestino A Corral.杨士中.椭圆函数滤波器边带特性优化方法[J].电路与系统学

报,2005.10(5):2~4

附录ⅠIIR在MATLAB中实现IIR数字滤波器的程序

1000Hz时域波形产生程序:

f2=1000; N=512; fs=16000; t=(0:N-1)/fs;

x2=sin(2*pi*f2*t); plot(t,x2,'-')

4000Hz时域波形产生程序:

f1=4000; N=512; fs=16000; t=(0:N-1)/fs;

x1=sin(2*pi*f1*t); plot(t,x1,'-')

两信号叠加时域波形产生 :

f1=4000; f2=1000; fs=16000; N=512;

t=(0:N-1)/fs;

x1=sin(2*pi*f1*t); x2=sin(2*pi*f2*t); x=x1+x2; plot(t,x,'-') xlabel('Hz'); ylabel('振幅');

巴特沃斯滤波器:

fs=[3000 7000]; fp=[2800 7200]; rp=0.38 rs=60; Fs=16000; wp=fp*2/Fs; ws=fs*2/Fs;

[n,wn]=buttord(wp,ws,rp,rs); n

[B,A]=butter(n,wn); B A

[h,f]=freqz(B,A,512,Fs); axis([0 8000 -300 50]); plot(f,20*log10(abs(h))); grid xlabel('Hz'); ylabel('振幅');

椭圆滤波器: Fs=16000;

wp=[3000 7000]*2/Fs; ws=[2800 7200]*2/Fs; rp=0.38; rs=60; Nn=512;

[n,wn]=ellipord(wp,ws,rp,rs); n

[B,A]=ellip(n,rp,rs,wn); B A

[h,f]=freqz(B,A,Nn,Fs); axis([0 8000 -200 30]); plot(f,abs(h)); grid xlabel('Hz');

ylabel('振幅');

切比雪夫滤波器的幅频特性、相频特性程序及CCS硬件实现中所需要的系数

>> Fs=16000; fp=[2900 7100]; fs=[3000 7000]; Wp=fp*2/Fs; Ws=fs*2/Fs; Rp=0.8; Rs=20;

[n,Wn]=cheb2ord(Wp,Ws,Rp,Rs); n

[B,A]=cheby2(n,Rp,Wn); B A

round(B*2^8) round(A*2^8)

[H,w]=freqz(B,A,1024,Fs); subplot(2,1,1); plot(w,abs(H))

title('IIR带通切比雪夫2滤波器幅频响应'); set(gcf,'color','white'); xlabel('Frequency(Hz)'); ylabel('幅频响应'); grid;

subplot(2,1,2); plot(w,angle(H))

title('IIR带通切比雪夫2波器相频响应'); set(gcf,'color','white'); xlabel('Frequency(Hz)');

ylabel('相频响应'); grid;

fid=fopen('chebyshev2b.dat','wt'); fprintf(fid,'%g\\n',B); fclose(fid);

fid=fopen('chebyshev2a.dat','wt'); fprintf(fid,'%g\\n',A); fclose(fid);

fid=fopen('chebyshev2b.txt','wt'); fprintf(fid,'%g\\n',B); fclose(fid);

fid=fopen('chebyshev2a.txt','wt'); fprintf(fid,'%g\\n',A); fclose(fid); n =12

B = Columns 1 through 14

0.8039 3.0581 2.1642 -2.8029 2.6843 12.1254 16.2411 15.4204 -26.2296 -6.1045 31.6979 -6.1045

Columns 15 through 25

-26.2296 15.4204 16.2411 -14.1544 -3.9706 12.1254 2.1642 3.0581 0.8039 A = Columns 1 through 14

1.0000 3.9545 3.4706 -2.3858 3.0287 14.5347 15.7364 18.6528 -25.2966 -9.2959 31.4703 -2.8483 Columns 15 through 25

-26.5905 12.3294 16.5552 -12.4688 -5.3229 10.1279 1.2512 2.3613 0.6462

-3.9706 2.6843 -1.9528 2.5437 -14.1544 -2.8029 -15.5509 -2.8712

ans =Columns 1 through 12

206 783 554 -718 687 3104 -1016 -3624 4158 3948 -6715 -1563

Columns 13 through 25

8115 -1563 -6715 3948 4158 -3624 -1016 3104 687 -718 554 783 206

ans = Columns 1 through 12

256 1012 888 -3981 4029 4775 Columns 13 through 25

8056 -729 -1363 2593 651

-611 -6476 -6807 -735 775 -2380

3156 320 3721 -500 4238 -3192 604 165

附录II IIR在CCS中实现IIR数字滤波器的程序

CCS硬件实现程序:

N BN AN

.title .mmregs .global start .def ;.copy ;.copy

start,_c_int00

\"iirin.inc\" ;输入信号x(n)

\"diirdata.inc\" ;滤波器系数Bn.An \"diir.asm\"

.data .set 24

.usect \"BN\ .usect \"AN\

\"INBUF\

\"OUTPUT\

INBUF .usect OUTPUT .usect

table: .sect \"table \" .word .word .word .word .word .word .word .word

206 783 554 -718 687 3104 -1016 -3624

.word 4158 .word 3948 .word -6715 .word -1563 .word .word .word .word .word .word .word .word

8115 -1563 -6715 3948

4158 -3624 -1016 3104

.word 687 .word -718 .word 554 .word 783

.word

.word .word .word .word .word .word .word

206

1012 888

-611 775 3721 -500

-3981

.word 4029 .word 4775 .word -6476 .word -2380 .word .word .word .word .word .word .word .word .word .word .word .word .word

8056 -729 -6807 3156 4238 -3192 -1363

2593 651 -735 320

604 165

INPUT: .sect \"INPUT \" .word 0

.word 2832*2048/10000 .word 1448*2048/10000 .word -156*2048/10000 .word 2048*2048/10000 .word 3940*2048/10000 .word 1448*2048/10000 .word -1264*2048/10000 .word 0

.word 1264*2048/10000 .word -1448*2048/10000 .word -3940*2048/10000 .word -2048*2048/10000 .word 156*2048/10000 .word -1448*2048/10000

.word -2832*2048/10000 .word 0

.word 2832*2048/10000 .word 1448*2048/10000 .word -156*2048/10000 .word 2048*2048/10000 .word 3940*2048/10000 .word 1448*2048/10000 .word -1264*2048/10000 .word 0

.word 1264*2048/10000 .word -1448*2048/10000 .word -3940*2048/10000 .word -2048*2048/10000 .word 156*2048/10000 .word -1448*2048/10000 .word -2832*2048/10000 .word 0

.word 2832*2048/10000 .word 1448*2048/10000 .word -156*2048/10000 .word 2048*2048/10000 .word 3940*2048/10000 .word 1448*2048/10000 .word -1264*2048/10000 .word 0

.word 1264*2048/10000 .word -1448*2048/10000 .word -3940*2048/10000 .word -2048*2048/10000 .word 156*2048/10000 .word -1448*2048/10000 .word -2832*2048/10000 .word 0

.word 2832*2048/10000 .word 1448*2048/10000 .word -156*2048/10000 .word 2048*2048/10000 .word 3940*2048/10000 .word 1448*2048/10000 .word -1264*2048/10000 .word 0

.word 1264*2048/10000 .word -1448*2048/10000

.word -3940*2048/10000 .word -2048*2048/10000 .word 156*2048/10000 .word -1448*2048/10000 .word -2832*2048/10000 .word 0

.word 2832*2048/10000 .word 1448*2048/10000 .word -156*2048/10000 .word 2048*2048/10000 .word 3940*2048/10000 .word 1448*2048/10000 .word -1264*2048/10000 .word 0

.word 1264*2048/10000 .word -1448*2048/10000 .word -3940*2048/10000 .word -2048*2048/10000 .word 156*2048/10000 .word -1448*2048/10000 .word -2832*2048/10000 .word 0

.word 2832*2048/10000 .word 1448*2048/10000 .word -156*2048/10000 .word 2048*2048/10000 .word 3940*2048/10000 .word 1448*2048/10000 .word -1264*2048/10000 .word 0

.word 1264*2048/10000 .word -1448*2048/10000 .word -3940*2048/10000 .word -2048*2048/10000 .word 156*2048/10000 .word -1448*2048/10000 .word -2832*2048/10000 .word 0

.word 2832*2048/10000 .word 1448*2048/10000 .word -156*2048/10000 .word 2048*2048/10000 .word 3940*2048/10000 .word 1448*2048/10000

.word -1264*2048/10000 .word 0

.word 1264*2048/10000 .word -1448*2048/10000 .word -3940*2048/10000 .word -2048*2048/10000 .word 156*2048/10000 .word -1448*2048/10000 .word -2832*2048/10000 .word 0

.word 2832*2048/10000 .word 1448*2048/10000 .word -156*2048/10000 .word 2048*2048/10000 .word 3940*2048/10000 .word 1448*2048/10000 .word -1264*2048/10000 .word 0

.word 1264*2048/10000 .word -1448*2048/10000 .word -3940*2048/10000 .word -2048*2048/10000 .word 156*2048/10000 .word -1448*2048/10000 .word -2832*2048/10000 .word 0

.word 2832*2048/10000 .word 1448*2048/10000 .word -156*2048/10000 .word 2048*2048/10000 .word 3940*2048/10000 .word 1448*2048/10000 .word -1264*2048/10000 .word 0

.word 1264*2048/10000 .word -1448*2048/10000 .word -3940*2048/10000 .word -2048*2048/10000 .word 156*2048/10000 .word -1448*2048/10000 .word -2832*2048/10000 .word 0

.word 2832*2048/10000 .word 1448*2048/10000

.word -156*2048/10000 .word 2048*2048/10000 .word 3940*2048/10000 .word 1448*2048/10000 .word -1264*2048/10000 .word 0

.word 1264*2048/10000 .word -1448*2048/10000 .word -3940*2048/10000 .word -2048*2048/10000 .word 156*2048/10000 .word -1448*2048/10000 .word -2832*2048/10000 .word 0

.word 2832*2048/10000 .word 1448*2048/10000 .word -156*2048/10000 .word 2048*2048/10000 .word 3940*2048/10000 .word 1448*2048/10000 .word -1264*2048/10000 .word 0

.word 1264*2048/10000 .word -1448*2048/10000 .word -3940*2048/10000 .word -2048*2048/10000 .word 156*2048/10000 .word -1448*2048/10000 .word -2832*2048/10000 .word 0

.word 2832*2048/10000 .word 1448*2048/10000 .word -156*2048/10000 .word 2048*2048/10000 .word 3940*2048/10000 .word 1448*2048/10000 .word -1264*2048/10000 .word 0

.word 1264*2048/10000 .word -1448*2048/10000 .word -3940*2048/10000 .word -2048*2048/10000 .word 156*2048/10000 .word -1448*2048/10000

.word -2832*2048/10000 .word 0

.word 2832*2048/10000 .word 1448*2048/10000 .word -156*2048/10000 .word 2048*2048/10000 .word 3940*2048/10000 .word 1448*2048/10000 .word -1264*2048/10000 .word 0

.word 1264*2048/10000 .word -1448*2048/10000 .word -3940*2048/10000 .word -2048*2048/10000 .word 156*2048/10000 .word -1448*2048/10000 .word -2832*2048/10000 .word 0

.word 2832*2048/10000 .word 1448*2048/10000 .word -156*2048/10000 .word 2048*2048/10000 .word 3940*2048/10000 .word 1448*2048/10000 .word -1264*2048/10000 .word 0

.word 1264*2048/10000 .word -1448*2048/10000 .word -3940*2048/10000 .word -2048*2048/10000 .word 156*2048/10000 .word -1448*2048/10000 .word -2832*2048/10000 .word 0

.word 2832*2048/10000 .word 1448*2048/10000 .word -156*2048/10000 .word 2048*2048/10000 .word 3940*2048/10000 .word 1448*2048/10000 .word -1264*2048/10000 .word 0

.word 1264*2048/10000 .word -1448*2048/10000

.word -3940*2048/10000 .word -2048*2048/10000 .word 156*2048/10000 .word -1448*2048/10000 .word -2832*2048/10000 .word 0

.word 2832*2048/10000 .word 1448*2048/10000 .word -156*2048/10000 .word 2048*2048/10000 .word 3940*2048/10000 .word 1448*2048/10000 .word -1264*2048/10000 .word 0

.word 1264*2048/10000 .word -1448*2048/10000 .word -3940*2048/10000 .word -2048*2048/10000 .word 156*2048/10000 .word -1448*2048/10000 .word -2832*2048/10000

.text

.asg AR0,INDEX_P

.asg AR2,XN_P .asg AR3,ACOFF_P .asg AR4,YN_P .asg AR5,BCOFF_P

_c_int00: b start

nop nop

NMI rete nop

nop

nop

SINT17 .space 4*16 SINT18 .space 4*16 SINT19 .space 4*16 SINT20 .space 4*16 SINT21 .space 4*16 SINT22 .space 4*16

SINT23 .space 4*16 SINT24 SINT25 SINT26 SINT27

.space 4*16 .space 4*16 .space 4*16 .space 4*16

SINT28 .space 4*16 SINT29 .space 4*16 SINT30 .space 4*16 INT0 rsbx intm

rete nop nop

INT1 rsbx intm rete

nop nop

INT2 rsbx intm rete nop TINT: RINT0:

nop rete nop nop rete nop nop nop rete nop nop nop rete nop nop nop rete nop nop nop rete nop

XINT0: RINT1:

XINT1:

INT3:

nop nop

start: SSBX FRCT;置1,乘法器输出左移一位以消去多余的符号位

SSBX SSBX STM RPT MVPD STM RPT MVPD STM RPTZ STM RPT MVPD STM STM

OVM ;置1,发生溢出时,目的累加器置成正的最大值或负的最小值 SXM ;符号位扩展

#BN+N,AR1 ;AR1指向BN的最后一个数 #N ;循环N+1次

#table,*AR1- ;将table从程序存储器转移到数据 #AN+N-1,AR1 #N-1

#table+N+1,*AR1- #OUTPUT,AR1 A,#255 #INBUF,AR1 #255

#INPUT,*AR1+ #OUTPUT,YN_P #INBUF,XN_P #N-1,INDEX_P #255,BRC LOOP-1

STL A,*AR1+

STM

STM RPTB

IIR: SUB A,A STM #BN,BCOFF_P

STM #AN,ACOFF_P RPT #N-1 ;计算前向通道 MAC *XN_P+,*BCOFF_P+,A MAC *XN_P, *BCOFF_P,A MAR *XN_P-0 RPT #N-1 MAC STH

;将AR2指针指向x(n-N) ;计算反馈通道

LOOP: EEND

*YN_P+,*ACOFF_P+,A

A,*YN_P-0 ;;保存y(n)

B EEND .end

因篇幅问题不能全部显示,请点此查看更多更全内容