基于 DSP 的 FIR 滤波器的设计与实现
基于 DSP 的 FIR 滤波器的设计与实现
摘 要
DSP 技术一般指将 DSP 处理器用于完成数字信号处理的方法与技术。目前的 DSP 芯
片以其强大的数据处理功能在通信和其他信号处理领域得到广泛注意并已成为开发应
用的热点技术。许多领域对于数字信号处理器的应用都是围绕美国德州仪器所开发的
DSP 处理器来进行的。DSP 芯片是一种特别适合于进行数字信号处理运算的微处理器。
主要应用是实时快速的实现各种数字信号处理算法,如卷积及各种变换等。其中利用 DSP
来实现数字滤波器就是很重要的一种应用,本文深入研究基于美国德州仪器公司
(TI)TMS320C5410 DSP 芯片的滤波器系统软件实现方法,用窗口设计法实现 FIR 滤波器,
给出了 MATLAB 仿真结果,并在以 TI TMS320C5410 为微处理器的 DSK 上实现,实验结果
表明滤波结果效果良好,达到了预期的性能指标,用时间抽取法实现的 FFT/ IFFT 算法,
介绍了自适应滤波器的基本原理及应用,并对 LMS 算法进行了深入的研究。
关键词:DSP;TMS320C5410;FIR 滤波器;FFT/IFFT;自适应滤波器
1
基于 DSP 的 FIR 滤波器的设计与实现
目 录
1 绪 论..........................................................................................................................................................3
1.1 引言 ............................................................. 3
1.2 课题背景及研究意义 ............................................... 4
1.2.1 课题背景 ....................................................4
1.2.2 研究意义 ....................................................4
1.3 国内外相关领域的研究 ............................................. 5
1.4 主要研究内容 ..................................................... 6
2
3
DSP 及其开发环境 ....................................................... 7
2.1.1 DSP 系统的构成 .............................................. 7
2.1.3 DSP 系统硬件电路图 .......................................... 8
TI DSP 介绍 .......................................................9
CCS 开发环境 .....................................................10
2.3.1 CCS 集成开发环境 ........................................... 11
2.2
2.3
3.2
FIR 滤波器的设计 ...................................................... 13
FIR 滤波器的基本理论 .............................................13
3.1
3.1.1 FIR 滤波器的特点 ........................................... 13
FIR 滤波器的常规设计方法 .........................................14
3.2.1 窗函数法 ...................................................14
3.2.3 Chebyshev 逼近法 ........................................... 16
FIR 滤波器的 MATLAB 实现 ..........................................17
3.3.1 带通滤波器的 MATLAB 实现 .....................................17
3.3.2 低通滤波器的 MATLAB 实现 ....................................19
3.3
4
FIR 滤波器的应用及其 DSP 实现 .......................................... 21
FFT/IFFT 算法程序及应用 ..........................................21
4.1
4.1.1 FFT 设计方法 ............................................... 21
4.2
4.1.2 FFT 算法的实现 ............................................. 22
4.1.3 FFT 算法的仿真和测试结果 ................................... 24
FIR 滤波器的 DSP 的实现 ...........................................25
4.2.1 FIR 滤波器的实现方法 ....................................... 25
4.2.2 FIR 滤波器的软件设计及其调试 ............................... 26
参考文献.......................................................................................................................................................31
附录 A MATLAB 程序 ................................................... 32
附录 B FFT 的 DSP 实现程序 ............................................ 35
2
基于 DSP 的 FIR 滤波器的设计与实现
1 绪 论
1.1 引言
随着信息时代和数字世界的到来,数字信号处理已成为如今一门极其重要的学科和
技术领域。数字信号处理在通信、语音、图像、自动控制、雷达、军事、航空航天、医
疗和家用电器等众多领域得到了广泛的应用。数字信号处理(DSP)包括两重含义:数
字信号处理技术(Digital Signal Processing)和数字信号处理器(Digital Signal
Processor)。数字信号处理(DSP)是利用计算机或专用处理设备,以数值计算的方法、
对信号进行采集、滤波、增强、压缩、估值和识别等加工处理,借以达到提取信息和便
于应用的目的,其应用范围涉及几乎所有的工程技术领域。
在数字信号处理的应用中,数字滤波器很重要而且得到了广泛的应用。按照数字滤
波器的特性,它可以被分为线性与非线性、因果与非因果、无限长冲击响应(IIR)与
有限长冲击响应(FIR)等等。其中,线性时不变的数字滤波器是最基本的类型;而由
于数字系统可以对延时器加以利用,因此可以引入一定程度的非因果性,获得比传统的
因果滤波器更灵活强大的特性;IIR 滤波器的特征是具有无限持续时间冲激响应,这种
滤波器一般需要用递归模型来实现,因而有时也称之为递归滤波器,而FIR滤波器的冲
激响应只能延续一定时间,在工程实际中可以采用递归的方式实现,也可以采用非递归
的方式实现,但其结构主要还是是非递归结构,没有输出到输入的反馈,并且FIR滤波
器很容易获得严格的线性相位特性,避免被处理信号产生相位失真,而线性相位体现在
时域中仅仅是h(n)在时间上的延迟,这个特点在图像信号处理、数据传输等波形传递系
统中是非常重要的,且不会发生阻塞现象,能避免强信号淹没弱信号,因此特别适合信
号强弱相差悬殊的情况。相对于IIR滤波器,FIR滤波器有着易于实现和系统绝对稳定的
优势,因此得到广泛的应用;对于时变系统滤波器的研究则导致了以卡尔曼滤波为代表
的自适应滤波理论的产生。自适应滤波即利用前一时刻已获得的滤波器参数等结果,自
动地调节(更新)现时刻的滤波器参数,以适应信号和噪声未知的统计特性,或者随时
间变化的统计特性,从而实现最优滤波。几种主要的自适应滤波器为:最小均方(LMS)
自适应滤波器、递推最小二乘(RLS)自适应滤波器、格型自适应滤波器、无限冲击响
应(IIR)自适应滤波器。而自适应去噪电路是信号处理领域一个简单应用,一个被噪
声污染的信号借助于相关噪声可以把信号提取出来,而噪声不断变化,为了得到较清晰
3
的语音信号必须采用自适应去噪技术,随噪声变化进行自适应滤波.滤波器自动调整它
基于 DSP 的 FIR 滤波器的设计与实现
们的系数。
目前FIR滤波器的实现方法大致可分为三种:利用单片通用数字滤波器集成电路、
DSP器件和可编程逻辑器件实现。单片通用数字滤波器使用方便,但由于字长和阶数的
规格较少,不能完全满足实际需要,使用以串行运算为主导的通用DSP芯片实现要简单,
是一种实时、快速、特别适合于实现各种数字信号处理运算的微处理器,借助于通用数
字计算机按滤波器的设计算法编出程序进行数字滤波计算。由于它具有丰富的硬件资
源、改进的哈佛结构、高速数据处理能力和强大的指令系统而在通信、航空、航天、雷
达、工业控制、网络及家用电器等各个领域得到广泛应用 ]2[ 。
1.2 课题背景及研究意义
1.2.1 课题背景
数字信号处理就是用数字信号处理器(DSP)来实现各种算法,由于具有精度高、灵
活性强等优点,已广泛应用在数字图像处理、数字通信、数字音响、声纳、雷达等领域。
数字滤波技术又是进行数字信号处理的最基本手段之一,它是对数字输人信号进行运
算,产数字输出信号,以改善信号品质,提取有用信息,或者把组合在一起的多个信号
分量分离开来为目的。
在信号处理领域中,对于信号处理的实时性、快速性的要求越来越高,因此在许多
信息处理过程中,如对信号的过滤、检测、预测等,都要广泛地用到滤波器。其中数字
滤波器具有稳定性高、精度高、设计灵活、实现方便等许多突出的优点,避免了模拟滤
波器所无法克服的电压漂移、温度漂移和噪声等问题,因而随着数字技术的发展,用数
字技术实现滤波器的功能越来越受到人们的注意和广泛的应用。而有限冲激响应(FIR)
滤波器能在设计任意幅频特性的同时保证严格的线性相位特性,在示否音、数据传输中
应用非常广泛 ]3[ 。
1.2.2 研究意义
用可编程 DSP 芯片实现数字滤波可通过修改滤波器的参数十分方便地改变滤波器
的特性。因此,我们有必要对滤波器的设计方法进行研究,理解其工作原理,优化设计
方法,设计开发稳定性好的滤波器系统。我们将通过 DSP 设计平台,实现较为重要的
FIR 和自适应滤波器系统。从而通过本课题的研究,掌握滤波器的设计技术,为通信、
信号处理等领域实用化数字滤波器设计提供技术准备。本科题的研究,将为今后设计以
DSP 为核心部件的嵌入式系统集成提供技术准备,这不仅具有重要的理论意义,同时还
具有重要的实际意义。
4
基于 DSP 的 FIR 滤波器的设计与实现
1.3 国内外相关领域的研究
20 世纪 60 年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运
而生,并得到了迅猛的发展。当时还没有 DSP,数字信号处理只能依靠 MPU 来完成。
但 MPU(微处理器)的速度无法满足高速实时的要求。因此数字信号处理技术多是停
留在理论上,得不到广泛的应用,但这为 DSP 的诞生打下了基础。
70 年代至 80 年代初是 DSP 发展的第二阶段。70 年代初,有人提出了 DSP 的理论
和算法基础。但是直到 1978,世界上第一个世界上第一枚 DSP 才诞生,它是由 1978AMI
公司发布的 S2811。1979 年美国 Intel 公司发布的商用可编程器件 2920 是 DSP 芯片的一
个主要里程碑;1980 年 NEC 公司推出的 PD7720 是第一个具有乘法器的商用 DSP 芯片。
美国德州仪器公司 Texas Instruments 也于 1982 年推出了其第一代 DSP 芯片 TMS32010
及其系列产品,它们都是基于 NMOS 工艺。此时的 DSP 运行速度较以前的 MPU 有了
较大的提高,但由于制造工艺所限,体积和功耗都比较大,内部资源较少,且价格昂贵。
80 年代中期直到现在是 DSP 得到了蓬勃发展并广泛应用的时期。80 年代中期,随
着大规模集成电路技术尤其是 CMOS 技术的发展,基于 CMOS 工艺的 DSP 应运而生,
体积功耗都大大减少,而存储容量和运算速度都得到成倍提高,成为语音处理、图像硬
件处理技术的基础;80 年代后期,DSP 运算速度进一步提高,应用范围逐步扩大到通
信、计算机领域。90 年代直到现在,DSP 发展最快,此时的 DSP 集成度极高,体积、
功耗进一步减少,内部资源更是成倍增加,而价格却进一步下降。此时,DSP 芯片不仅
在通信、计算机领域大显身手,而且已扩大到人们的学习、工作和生活的各个方面。生
产 DSP 器件的公司也不断壮大,目前,市场占有率前四名依次为:Texas Instruments、
Lucent 、Analog Device、Motorola。在所有生产 DSP 的公司中,TI 可谓一枝独秀,它
是世界上最大的 DSP 供应商,TI 系列的 DSP 也是公认的最成功的 DSP。其 DSP 市场份
额占全世界份额近 50%。其产品覆盖了高、中、低端几乎所以市场,广泛应用于各种领
域。自从在 1982 年成功推出了其第一代 DSP TMS32010 及其系列产品 TMS32011、
TMS320C10/C14/C15 等,TI 相继推出了第二代 DSP TMS32020、TMS320C25/C26/C28,
第 三 代 DSP TMS320C30/C31/C32 , 第 四 代 DSP TMS320C40/C44 , 第 五 代 DSP
TMS3205X/C54X/C55X 及目前速度最快的第六代 DSP TMS320C62X/C67X 等等。
DSP 器件应用面从起初的局限于军工,航空航天等军事领域,扩展到今天的诸多电
子行业及消费类电子产品中。在 TI 公司的 DSP 产品中 C1X、C2X、C2XX、C5XX、
C54X、C62X 等系列是定点运算指令系统的 DSP;C3X、C4X、C67X 等系列是浮点运
算指令系统的 DSP;AV7100、AV7110 等系列是用于视频、音频领域的专用数字压缩产
5
基于 DSP 的 FIR 滤波器的设计与实现
品。
1.4 主要研究内容
本课题是基于 TI 公司近年推出的高性能定点 DSP TMS320C5410 设计滤波器系统,
如:有限冲击响应滤波器(FIR)。本次课题的主要任务,就是掌握 DSP 芯片开发技术,
完成如下工作:
1、用窗函数法实现 FIR 滤波器,通过调用四种窗口函数,截取不同的带通与低通滤波
原型,满足以下性能要求:
带通滤波器:下阻带边缘:
低通滤波器:
上通带边缘:
2.0p
,
1 s
2 p
R p
2.0
65.0
25.0
dB
dB
60
As
,
R p
,
;
;下通带边缘:
1 ;上阻带边缘:
3.0s
dB
dB
50
As
,
1 p
2 s
35.0
8.0
1
R p
,
60
As
,
dB
dB
2、用时间抽取法实现 FFT/IFFT 算法,通过此算法,对信号进行频域分析、频域处理;
3、自适应滤波器是目前数字滤波器领域中最为活跃的分支,讨论采用经过改进的 LMS
(最小圴方误差)算法实现自适应滤波器。
4、研究 DSP 的结构特点,了解 TI 公司的 TMS3205410 DSP 器件,掌握 DSP 系统的构
成及软硬件设计方法和 CCS 软件的调试方法;并以 TI 公司的 TMS3205410 DSP 为核心
处理器,在 DSK 上实现 FIR 滤波器系统。
本论文共分为五个部分,第一章为绪论部分,介绍 DSP 及其滤波器的发展现状;
第二章详细介绍 DSP 的特点、性能指标、软件开发工具、指令系统及硬件结构;第三
章介绍了 FIR 滤波器的设计方法,并详细阐述了用窗口设计方法设计 FIR 滤波器及
MATLAB 实现;第四章介绍 FIR 滤波器的应用及其实现;第五章介绍自适应滤波器基
本理论、算法及其应用。其中,三、四章是本论文的核心部分。
6
基于 DSP 的 FIR 滤波器的设计与实现
2 DSP 及其开发环境
2.1 DSP 系统
2.1.1 DSP 系统的构成
一个典型的 DSP 系统如图 2.1 示。
图 2.1 典型的 DSP 系统
图 2.1 是一个用 DSP 做信号处理的典型框图。由于 DSP 是用来对数字信号进行处
理的,所以首先必须将输入的模拟信号变换为数字信号。于是先对输入模拟信号进行调
整,输出的模拟信号经过 A/D 变换后变成 DSP 可以处理的数字信号,DSP 根据实际需
要对其进行相应的处理,如 FFT、卷积等;处理得到的结果仍然是数字信号,可以直接
通过相应通信接口将它传输出去,或者对它进行 D/A 变换将其转换为模拟采样值,最后
再经过内插和平滑滤波就得到了连续的模拟波形模拟信号。当然,图中的有些环节并不
是必需的。如 A/D 转换,如果输入的是数字信号,就可以直接交给 DSP 进行运算 ]5[ 。
2.1.2 DSP 系统的特点及设计过程
由于数字信号处理系统是以数字信号处理理论为基础,所以具有数字信号处理的全
部优点:
(1)接口方便
DSP 系统与其它以数字技术为基础的系统或设备都是相互兼容的,比模拟系统与
这些系统接口要容易的多。
(2)编程方便
DSP 系统中的可编程 DSP 芯片可以使设计人员在开发过程中灵活方便的进行修改
和升级,可以将 C 语言与汇编语言结合使用。
(3)具有高速性
DSP 系统的运行较高,最新的 DSP 芯片运行速度高达 10GMIPS 以上。
(4)稳定性好
7
基于 DSP 的 FIR 滤波器的设计与实现
DSP 系统以数字处理为基础, 受周围环境,如噪声、温度等的影响小、可靠性高;
(5)精度高
例如 16 位数字系统可以达到 10-5 的精度;
(6)可重复性好
模拟系统的性能受元件参数性能变化影响大,而数字系统基本不受影响,更便于测
试、调试和大规模生产。
(7)集成方便
DSP 系统中的数字部件有高度的规范性,便于大规模生产。
当然 DSP 也存在一定的缺点。例如,对于一些简单的信号处理任务,如与模拟交
换线的电话接口,若采用 DSP 则使成本增加。另外,DSP 系统中的高速时钟通常在几
十兆赫,可能带来高频干扰和电磁泄漏等问题, 而且 DSP 的功率消耗在系统中也是较
大的。此外,DSP 技术发展得很快,数学知识要求多,开发和调试工具还很不完善。虽
然 DSP 系统还存在一些缺点,但是随着近两年来 DSP 技术突飞猛进的发展,成本的下
降,很多问题都得到了缓解。其突出的优点已经使其在通信、语音、图像、雷达、生物
医学、工业控制、仪器仪表等许多领域得到越来越广泛的应用。
一般来说 DSP 的设计过程应遵循一定的设计流程,如图 2.2 示。
DSP 应用
定义系统性能指标
选择 DSP 芯片
软件编程
软件调试
硬件设计
硬件调试
系统集成
系统测试和调试
图 2.2 DSP 基本设计流程
2.1.3 DSP 系统硬件电路图
8