sdp原理与应用技术课程设计基于dsp的音频信号处理的滤波分析.docx
《sdp原理与应用技术课程设计基于dsp的音频信号处理的滤波分析.docx》由会员分享,可在线阅读,更多相关《sdp原理与应用技术课程设计基于dsp的音频信号处理的滤波分析.docx(29页珍藏版)》请在冰豆网上搜索。
sdp原理与应用技术课程设计基于dsp的音频信号处理的滤波分析
华南师范大学
DSP原理与应用技术
课程设计
课程名称:
DSP原理与应用技术
课程题目:
基于DSP的音频信号处理的滤波分
析
指导老师:
专业班级:
2015级电路与系统
姓名:
学号:
20150
2016年7月20日
基于DSP的音频信号处理的滤波分析
摘要:
数字处理器(DSP)有很强的数据处理能力,它在高速数字信号处理领域有广泛的应用,例如数字滤波、音频处理、图像处理等。
相对于模拟滤波器,数字滤波器没有漂移,能够处理低频信号,频率响应特性可做成非常接近于理想的特性,且精度可以达到很高,容易集成等[1]。
使用可编程的DSP芯片实现数字滤波可以通过修改滤波器的参数十分方便地改变滤波器的特性[2],本设计是利用DSP芯片TMS320VC5409的实验室开发板设计实现高阶FIR带通数字滤波器。
本设计利用了matlab的fdatool工具箱产生FIR滤波器的参数,matlab的fdatool工具提供了一个很强大且十分便捷的方式去获得FIR滤波器的的C程序头文件。
关键词:
DSPTMS320VC5409高阶FIR带通数字滤波器fdatool工具箱
Abstract
Digitalprocessor(DSP)hasastrongabilityofdataprocessing,ithasextensiveapplicationinthefieldofhighspeeddigitalsignalprocessing,suchasdigitalfilter,audioprocessing,imageprocessing,etc.Comparedwithanalogfilters,digitalfilterwithoutdrift,abletohandlelowfrequencysignal,thefrequencyresponsecanbemadeveryclosetotheidealcharacteristics,andcanreachhighprecision,easyintegration,etc.UsingprogrammableDSPchiptorealizedigitalfilteringbymodifyingtheparametersoffilterisveryconvenienttochangethefiltercharacteristics,thisdesignistheuseofDSPchipTMS320VC5409laboratorydevelopmentboarddesignrealizationofFIRbandpassdigitalfilter.
FdatoolbookdesignusingthematlabtoolboxtoproducetheparametersofFIRfilter,thematlabfdatooltoolkitprovidesaverypowerfulandconvenientwaytogaintheFIRfilterCprogramheaderfiles.
Keywords:
DSPTMS320VC5409AhighorderbandpassFIRdigitalfilterFdatooltoolkit
第一章绪论
1.1设计背景
随着信息时代和数字世界的到来,数字信号处理已成为如今一门极其重要的学科和技术领域。
数字信号处理在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。
数字信号处理(DSP)包括两重含义:
数字信号处理技术(DigitalSignalProcessing)和数字信号处理器(DigitalSignalProcessor)。
数字信号处理(DSP)是利用计算机或专用处理设备,以数值计算的方法、对信号进行采集、滤波、增强、压缩、估值和识别等加工处理,借以达到提取信息和便于应用的目的,其应用范围涉及几乎所有的工程技术领域[3]。
在信号处理中,滤波就显得非常重要。
在数字信号处理过程中,经常需对信号进行过滤、检测、预测等处理,这些任务的完成都要用到滤波器。
数字滤波器是数字信号处理的基本方法。
根据其单位冲激响应函数的时域特性可分为两类:
无限冲激响应(IIR)滤波器和有限冲激响应(FIR)滤波器。
FIR滤波器是有限长单位冲激响应滤波器,在结构上是非递归型的。
它可以在幅度特性随意设计的同时,保证精确严格的线性相位。
所以FIR数字滤波器广泛地应用于数字信号处理领域。
数字处理器(DSP)有很强的数据处理能力,它在高速数字信号处理领域有广泛的应用,例如数字滤波、音频处理、图像处理等。
相对于模拟滤波器,数字滤波器没有漂移,能够处理低频信号,频率响应特性可做成非常接近于理想的特性,且精度可以达到很高,容易集成等[4]。
使用可编程的DSP芯片实现数字滤波可以通过修改滤波器的参数十分方便地改变滤波器的特性,下面主要说明利用型号为TMS320VC5409的DSP芯片为基础的实验板设计实现FIR数字滤波器。
1.2设计目的
用可编程DSP芯片实现数字滤波可通过修改滤波器的参数十分方便地改变滤波器的特性。
因此,我们有必要对滤波器的设计方法进行研究,理解其工作原理,优化设计方法,设计开发稳定性好的滤波器系统。
我们将通过DSP设计平台,实现较为重要的FIR滤波器系统。
从而通过本课题的研究,掌握滤波器的设计技术,为通信、信号处理等领域实用化数字滤波器设计提供技术准备。
本科题的研究,将为今后设计以DSP为核心部件的嵌入式系统集成提供技术准备,这不仅具有重要的理论意义,同时还具有重要的实际意义[5]。
同时本设计还结合了matlab的fdatool工具去设计生产FIR滤波器的参数,可以很好的实现音频信号的滤波,即可以很好达到实验设计要求。
FIR滤波器可以设计为线性相位,并且总是稳定的。
在多数情况下,FIR滤波器的阶数通常为高阶的,这时直接计算滤波器的参数变的非常困难,这时利用matlab可以非常方便的计算出要设计的FIR滤波器[6]。
1.3主要设计内容
本课题是基于TI公司近年推出的高性能定点DSP TMS320VC5409设计滤波器系统,如:
有限冲击响应滤波器(FIR)。
本次课题的主要任务,就是掌握DSP芯片开发技术,完成如下工作:
1、用窗函数法实现高阶带通FIR滤波器,以便滤除带噪声的音频信号中的噪声;
2、用时间抽取法实现FFT/IFFT算法,通过此算法,对信号进行频域分析、频域处理;
3、研究DSP的结构特点,了解TI公司的TMS320VC5409DSP器件,掌握DSP系统的构成及软硬件设计方法和CCS软件的调试方法;并以TI公司的TMS320VC5409DSP为核心处理器的实验套件上实现FIR滤波器系统。
第二章系统开发平台与环境
2.1CCS开发环境
本节将介绍CCS Code Composer Studio 的基本开发环境、软件开发过程、CCS组件。
CCS 提供了配置、建立、调试、跟踪和分析程序的工具,它便于实时、嵌入式信号处理程序的编制和测试,能够加速开发进程,提高工作效率。
2.1.1 CCS概述
CCS 全称是 Code Composer Studio 它提供了基本的代码生成工具,具有一定的调试、分析能力,在CCS下的程序开发过程如图2.1示:
图2.1程序开发过程
CCS 包括:
1、CCS代码生成工具
2、CCS集成开发环境IDE
3、DSP/BIOS插件程序和API RTDX插件,主机接口和API等。
2.1.2CCS集成开发环境
调试DSP目标程序,它主要由几个主要的窗口组成:
工程组显示窗口、程序内容显示窗口、编辑信息提示窗口和主要工具栏。
另外,在编辑过程中还可以显示诸如存储器观察窗口、变量监视框、图形显示框等调试界面,他们为程序编写调试提供多种手段为软件开发提供了极大的方便[7]。
图2.2就是基本编辑界面。
在利用CCS编程的过程中,不可避免的要遇到如何将程序变量分配到内存中去的问题。
因为,即使 DSP 的存储空间比较大,速度也十分快,但是如果内存空间分配不当的话,还是会出现空间不够行速度下降,甚至程序跑飞的情况,这样会时程序调试起来十分麻烦。
所以,一定要分配好内存空间CCS提供了两种分配空间的方法:
利用cmd文件或rcp文件分配空间,其中cmd 文件是纯文本格式的描述性的空间分配方式, 它的优点是程序员对空间的可控制性较高,可以将不同的块分配到指定的地址,并规定长度。
但它对于初学者来说,要求对C5410的内存空间的分配有较清楚的认识,否则容易将数据分配到不该分配的地方,引起程序运行的冲突,甚至程序跑飞。
所以,一般在编程过程中,使用 rcp 文件对程序进行内存分rcp文件全称是 recipe 文件,这是一种图形化界面的内存分配文件。
对于一个新生成的工程组rcp文件的生成方法是:
选择CCS菜单上的Tools项,选择linker configuration项,将分配方式改为use the visual linker之后直接编译,编译信息提示窗口中会显示出错信息,提示找不到rcp文件,双击提示CCS会自动弹出rcp生成向导,按照要求选择rcp模板,就会生成这个工程对应的rcp文件,双击生成的rcp文件,通过visual linker连接器可以打开这个文件[8]。
当程序中新增加了变量后,在rcp文件中会出现Not yet placed项,只要将其下的文件夹,根据类型拖动到run_view下的相应的数据存储器或程序存储器即可。
还可以选择用何种类型的存储器空间装载,通过观察存储空间以使用的状况自行分配空间,所以十分灵活,并且不会出现空间重叠的现象,避免了程序跑飞。
2.2本设计的系统的构成
2.2.1采用的开发平台介绍
本设计采用的实验室开发板分为DSP处理,FPGA处理,单片机处理,音频处理电路模块。
其系统框图如下图2.3所示:
图2.3系统框图
本设计的采用的开发套件的实物图如下图2.4所示:
图2.4开发套件的实物图
该开发平台采用的芯片基本介绍:
1.TPS767D318,电源管理芯片,提供3.3VIO电压和1.8V内核电压。
2.MAX232,232串口芯片,做音效处理时,可以通过上位机将效果器的参数传给DSP。
3.CS4221,专业音频处理AD/DA,采样率最高可达96k,采样宽度24bit或20bit
可选,满足专业音频处理的要求。
4.DSP,使用TI公司的TMS320C5409,存储空间和寄存器均满足设计要求。
由于DSP是用来对数字信号进行处理的,所以首先必须将输入的模拟信号变换为数字信号。
于是先对输入模拟信号进行调整,输出的模拟信号经过A/D变换后变成DSP可以处理的数字信号,DSP根据实际需要对其进行相应的处理,如FFT、卷积等;处理得到的结果仍然是数字信号,可以直接通过相应通信接口将它传输出去,或者对它进行D/A变换将其转换为模拟采样值,最后再经过内插和平滑滤波就得到了连续的模拟波形模拟信号。
当然,图中的有些环节并不是必需的。
如A/D转换,如果输入的是数字信号,就可以直接交给DSP进行运算。
在dsp中经过FIR滤波处理后经过D/A变换后即可得到想要的音频信号[9]。
2.2.2本系统的特点及设计过程
由于数字信号处理系统是以数字信号处理理论为基础,所以具有数字信号处理的全部优点:
(1)接口方便:
DSP系统与其它以数字技术为基础的系统或设备都是相互兼容的,比模拟系统与这些系统接口要容易的多。
(2)编程方便 :
DSP 系统中的可编程DSP芯片可以使设计人员在开发过程中灵活方便的进行修改和升级,可以将C语言与汇编语言结合使用。
(3)具有高速性 :
DSP系统的运行较高,最新的DSP芯片运行速度高达10GMIPS以上。
(4)稳定性好:
DSP系统以数字处理为基础,受周围环境,如噪声、温度等的影响小、可靠性高。
(5)精度高:
由于DSP能进行浮点运算,例如16位数字系统可以达到10-5的精度。
(6)可重复性好:
模拟系统的性能受元件参数性能变化影响大,而数字系统基本不受影响,更便于测试、调试和大规模生产。
(7)集成方便:
DSP系统中的数字部件有高度的规范性,便于大规模生产。
当然DSP也存在一定的缺点。
例如,对于一些简单的信号处理任务,如与模拟交换线的电话接口,若采用DSP则使成本增加。
另外,DSP系统中的高速时钟通常在几十兆赫,可能带来高频干扰和电磁泄漏等问题,而且DSP的功率消耗在系统中也是较大的。
此外,DSP技术发展得很快,数学知识要求多,开发和调试工具还很不完善。
虽然DSP系统还存在一些缺点,但是随着近两年来DSP技术突飞猛进的发展,成本的下降,很多问题都得到了缓解。
其突出的优点已经使其在通信、语音、图像、雷达、生物医学、工业控制、仪器仪表等许多领域得到越来越广泛的应用[10]。
一般来说DSP的设计过程应遵循一定的设计流程,如图2.5示。
图2.5DSP基本设计流程
2.3用Matlab的FDATool生成FIR滤波器参数
2.3.1FDATool的介绍
FDATool(Filter Design&Analysis Tool)是MATLAB信号处理工具箱里专用的滤波器设计分析工具,MATLAB 6.O以上的版本还专门增加了滤波器设计工具箱(Filter Design Toolbox)。
FDATool可以设计几乎所有的常规滤波器,包括FIR和IIR的各种设计方法。
它操作简单,方便灵活。
FDATool。
界面总共分两大部分,一部分是Design Filter。
在界面的下半部,用来设置滤波器的设计参数;另一部分则是特性区,在界面的上半部分,用来显示滤波器的各种特性。
Design Filter部分主要分为:
Filter Type(滤波器类型)选项,包括Lowpass(低通)、Highpass(高通)、Bandpass(带通)、Bandstop(带阻)和特殊的FIR滤波器。
2.3.2FDATool简要设计流程
在matlab的命令窗口里输入fdatool,即可以得到如下图2.6滤波器设计界面。
图2.6滤波器设计界面
在该界面里输入能达到设计要求的参数,然后点击designfilter即产生了要设计的fir滤波器。
点击【targets】->【generateCheader】可以得到生成的系数C头文件。
第三章FIR滤波器的设计
3.1 FIR滤波器的基本理论
3.1.1 FIR滤波器的特点
数字滤波器的功能,就是把输入序列通过一定的运算变换成输出序列。
可以用两种方法来实现数字滤波器:
—种方法是采用通用计算机,利用计算机的存储器、运算器和控制器把滤波器所要完成的运算编成程序通过计算机来执行,也就是采用计算机软件来实现;另一种方法是设计专用的数字硬件(通常称之为数字信号处理器)。
数字滤波器的实现方法是多种多样的,其中比较常用到的是无限长脉冲响应滤波器 IIR和有限长脉冲响应滤波器FIR两种,另外还有维纳滤波器、自适应滤波器等,但是在一般通信领域,尤其是信号传输领域,在一个信号的发送与接收端都是发出或接收一路信号。
所以,前两种滤波器还是现在滤波器设计的主要方面,例如在线谱分析、基音检测、线性预测编码等方面都有着广泛的应用[11]。
本来在计算量相等的情况下,IIR数字滤波器比FIR滤波器的幅频特性优越,频率选择性也好,但是,它有着致命的缺点,相位特性不好控制。
它的相位特性
是使频率产生严重的非线性的原因,这种‘与’的非线性关系,使数字滤波器与模拟滤波器在响应与频率的对应关系上发生了畸变。
如果需要线性相位,就必须用全通网络进行复杂的相位校正,但是,在对程序运行周期数要求十分严格的DSP处理中加上一个全通均衡器是十分浪费资源的。
另外,即使加上全通均衡器,对于因果的IIR滤波器,仍将得不到线性的相位。
在现代电子系统中,如图像处理、数据传输等波形传递系统中都越来越多的要求信道具有线性的相位特性。
在这方面 FIR滤波器具有独到的优点,它可以在幅度特性随意设计的同时,保证精确、严格的线性相位,因此这类滤波器应用很广泛。
3.1.2 FIR滤波器的基本结构
数字滤波是将输入的信号序列,按规定的算法进行处理,从而得到所期望的输出序列。
一个线性位移不变系统的输出序列y(n)和输入x(n)之间的关系,应满足常系数线性差分方程[12],见公式3.1。
其中,x(n)为输入序列,y(n)为输出序列,
和
为滤波器系数,N是滤波器的阶数。
若上式中所有的kb均为零,则有FIR滤波器的差分方程为:
对上式进行Z变换得到FIR滤波器的传递函数为:
由上式可以看出,H(z)是
的N-1次多项式,它在z平面内有N-1个零点,同时在原点处有N-1个重极点。
N阶滤波器通常采用N个延迟单元、N个加法器与N+1个乘法器,取图3-1 中(a)、(b)两种结构。
3.2FIR滤波器设计总框图
FIR滤波器设计总框图如图3.2所示:
图3.2FIR滤波器设计总框图
第四章系统软件设计
4.1程序流程图
本文设计的FIR滤波器的程序流程图如下所示:
图4.1程序流程图
4.2程序源代码
程序清单详见附录
4.3程序调试
将仿真器的并口与计算机并口连接起来,计算机并口最好设置在EPP+ECP模式,将仿真器的电源连接上,把JTAG插在开发板的DSPJTAG口上,打开开发板的电源,这时可以看到仿真器上的电源LED和目标板LED均点亮。
1、点击桌面SetupCCS2进入驱动配置选项,完成图4.2相关设置。
图4.2驱动配置选项
驱动程序的添加,如图4.3所示,开发C54X系列双击下图中的sdgo5xx.dvr,安装按照光标提示依次执行(I/OPort根据计算机CMOS里的并口模式来决定,假设为0X378H,所以需将0X240改成0X378,系统假设为单DSP,点击AddSingle图标一次,如果是多DSP,则点击AddSingle相应次数);
图4.3驱动程序配置
双击桌面上的SDConfig图标(图4.4),同时点击378,使用驱动程序来验证DSP目标板是否跟仿真器连接上:
图4.4SDConfig图标
Default下,配置Nameofhardware(图4.5)为XDS510PP,Emulatorport根据计算机CMOS并口设置决定,在此认为是EPP模式;并进行复位。
图4.5配置Nameofhardware
如果出现**Emulatorisreset,说明仿真器复位成功;
2、调试程序
点击桌面上的CCS2(’5000)图标进入程序调试界面(图4.6)
图4.6程序调试界面
接下来我们就可以开始调试程序了,先将光盘work目录下的Timer工程文件Copy到你自己的硬盘上,Copy完之后记得把它的只写属性去掉。
点击菜单上的Project,下拉点击open(图4.7),再在目录中打开工程文件就可以了。
点击Project->RebuildAll,将程序重新编译一下,接着就可以把程序通过仿真;点击File->LoadProgram双击time4s.out文件,程序就会下载到DSP中。
下载完后程序会跳到_c_int00的程序入口处,用户程序就是从这里开始往下执行的,我们可以看到项目管理窗口左边有一竖的带箭头的大括号图标,它们就是执行调试的工具键,分单步、跳进跳出子程序,执行到光标处等,跑步样的图标就是全速执行了。
我们点击全速执行,程序就跑起来,就会看到LED一闪一闪的了[13]。
第五章系统功能验证
由上述方法设计的程序在TMS320VC5409实验套件上运行。
实验结果证明,采用FIR滤波后抗干扰能力有了明显的提高,利用matlab的fdatool能够快速的设计fir滤波器,以便完成复杂功能DSP程序设计,并且只需要进行少量的添加和修改,节省程序的编写和输入时间。
波器幅频响应曲线如图4-7:
图4-7滤波器幅频响应曲线
滤波器相频响应曲线如图4-8:
图4-8滤波器相频响应曲
从幅频响应曲线可以看到,滤波器的通带、阻带、通带波纹、阻带衰减都满足设计要求。
从相频响应曲线可以看出,该FIR滤波器的相位响应可为严格的线性,因此它不存在延迟失真,只有固定的时间延迟,适用于图像信号处理、数据传输等以波形携带信息的系统。
FIR滤波器克服了模拟滤波器和IIR数字滤波器只考虑幅频特性不考虑相位特性的缺点,它们要得到线性相位必须外加相位矫正网络,使滤波器变的复杂。
而FIR滤波器在保证幅频特性满足技术要求的同时,更容易做到严格的线性相位[14]。
当运行ccs时,播放一首经过噪声污染的歌曲,而开发板端经过fir滤波输出的清晰音频信号。
第六章设计总结
通过这次课程设计,使我对语音信号有了全面的认识,对数字信号处理的知识又有了深刻的理解,在之前数字信号与处理的学习以及完成课后的作业的过程中,已经使用过MATLAB,对其有了一些基础的了解和认识。
通过这次练习是我进一步了解了信号的产生、采样及频谱分析的方法。
以及其中产生信号和绘制信号的基本命令和一些基础编程语言。
让我感受到只有在了解课本知识的前提下,才能更好的应用这个工具;并且熟练的应用MATLAB也可以很好的加深我对课程的理解,方便我的思维,使我意识到:
(1)首先是应用领域的拓宽。
许多过去用模拟信号处理的设备,现在都力图用数字信号处理来代替。
包括通信、语音处理、雷达和声纳信号处理、广播和电视技术、生物和医学信号处理、地震和地理信息、交通和工业控制等。
出现了数万种用于信号处理的专用集成电路芯片,使得数字信号处理的速度飞速提高,而其成本不断降低。
(2)数字信号处理应用的发展提出了多种多样的复杂功能以及越来越高的技术指标,推动了新的理论不断出现。
本论文讨论的只限于一维信号,要处理图形和图象就设计二维信号处理。
虽然它的基础是一维信号处理,但究竟更加复杂,而且带来了许多新的更加复杂更难的问题;在三维空间成像、虚拟现实、数字视频、数字电影和动画等又使信号处理进入了三维。
在理论方面,它早就涉及了统计理论、非线性理论等,现在又出现了模糊集合、小波变换、神经元网络、还有各种谱估计理论等。
参考文献
[1]陈怀深.数字信号处理教程一MATLAB释义与实现,北京:
电子工业出版社,2004.209-249
[2]付家才.DSP控制工程实践技术.北京:
化学工业出版社,2005.169-180
[3]张雄伟、陈亮,DSP芯片的原理与开发应用.北京:
电子工业出版社,2003.156-227
[4]AndrewBateman,LainPaterson-Stephens.DSP算法、应用与设计(陈建、汪书宁等译),北京:
机械工业出版社,2003.260-288
[5]童诗白、华成英.模拟电子技术基础.北京:
高等教育出版社,2001.345-363
[6]飞思科技产品研发中心.MATLAB7辅助信号处理技术与应用.北京:
电子工业出版社,2005.213-281
[7]罗军辉、罗勇