DSP课程设计(电信版,供参考)讲解学习_第1页
DSP课程设计(电信版,供参考)讲解学习_第2页
DSP课程设计(电信版,供参考)讲解学习_第3页
DSP课程设计(电信版,供参考)讲解学习_第4页
DSP课程设计(电信版,供参考)讲解学习_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、Good is good, but better carries it.精益求精,善益求善。DSP课程设计(电信版,供参考)DSP原理与接口技术课程设计报告基于DSP开发板的语言信号滤波处理姓名:班级:09电信1学号:200930590120093059012009305901指导老师:徐梅宣,孙道宗日期:2012.XX.XX2012.XX.XX华南农业大学工程学院摘要通过语音传递信息是人类最重要、最有效、最常用、最方便的交换信息的方法,因此,如何去除混杂在有用信号中的噪声并获得低损甚至无损的有用语音信号成为语音信号处理(即用数字信号处理技术和语言学知识对语音信号进行处理并提取有用信息)至关重

2、要的问题。但是因为语音识别技术对信号噪声非常敏感,系统本身和器件对系统的处理结果都有着不可忽视的干扰,因此很难实现效果较好的语音信号滤波处理。而DSP因为运算速度快,片上资源丰富和能够实现复杂的线性和非线性算法等特性,在语音信号处理技术方面有明显的优势。虽然DSP自身在一定程度上也是语音信号干扰源,但综其上述良好特性,以及干扰源的不可避免性,我们选择用DSP实现语音信号滤波处理。为了实现基于DSP开发板的语音信号滤波处理,我们对混杂噪声信号的有用信号音频进行时域和频谱分析,得出其频谱特性后,在软件编程方面,我们用汇编语言在CCS中设计出三个滤波器,分别是:低通滤波器、高通滤波器以及带通滤波器,

3、同时实现A/D和D/A转换。在硬件方面,通过接口电路从电脑下载混杂噪声的有用音频,以及将程序下载到芯片中。语音信号在硬件电路芯片上进行ADC转换变为数字信号,通过滤波、压缩等变化滤去噪声之后再进行DA转换返回模拟语音信号并从硬件电路输出。从而实现DSP的语音信号滤波处理。关键词:语音信号处理滤波DSP目录TOCo1-3hzu1方案比较与选择1.1方案目标基于DSP开发板,在CCS中用汇编语言设计一个滤波器,运用该滤波器能将混杂有高频噪声的歌声中的噪声信号去除。滤波的整个过程通过DSP开发板上实现,并且要满足以下要求:1、根据被处理对象设置滤波器参数;2、该滤波器要用汇编语言实现;3、待处理语音

4、信号采集通过开发板上的信号采集模块输入;4、所设计的滤波器能滤除语音信号中的高频噪声;5、实现滤除噪声功能后,能在电脑上显示滤波器的频谱;6、通过开发板上的语音模块播放处理后的语音信号;我们组将合成信号(混有高频噪声与有用的歌曲信号)通过DSP开发板的耳机输入接口输入TMS320VC5416芯片,该音频信号的时域波形和频域波形如图1、图2、图3、图4所示:图1混合时域波形(1)图2混合时域波形(2)图3混合时域波形(3)图4混合频域波形通过滤波器对高频噪声的滤除后,理想情况下的有用信号输出时域波形和频域波形如图5、图6所示:图5理想结果时域图6理想结果频域而被滤除的高频噪声信号的时域波形和频域

5、波形则分别如图7、图8所示:图7噪声时域图8噪声频域1.2方案选择1.2.1滤波器选择A.IIR数字滤波器IIR数字滤波器具有无限的脉冲响应,具有如下特点:IIR数字滤波器的系统函数可以写成封闭函数的形式;IIR数字滤波器采用递归型结构;IIR数字滤波器在设计上可借助成熟的模拟滤波器的结果;IIR数字滤波器需要加相位校准网络;IIR数字滤波器的相位特性不好控制,当对相位要求较高的时候,需要外加相位校准网络。由于IIR数字滤波器采用递归型结构,结构上带有反馈回路,在运算的舍入处理过程中,会使误差不断累积,致使有时会产生微弱的寄生振荡。但是在设计上,IIR数字滤波器能借助成熟的模拟滤波器结果,如巴

6、特沃斯、契比雪夫等,因有现成的设计数据或图表可以查阅,使设计工作量相对比较小,对计算工具的要求也不高。B.FIR滤波器FIR滤波器为有限长单位冲激响应滤波器,是数字信号处理系统中最基本的原件,它能够保证任意幅频特性的同时又具有严格的线性相频特性,与此同时,它的单位抽样响应是有限长的,因此,FIR滤波器是稳定的系统。它具有如下特点:FIR滤波器系统的单位冲激响应h(n)在有限个n值处不为零;FIR滤波器的系统函数H(z)在|z|0处收敛,极点全部在z=0处,是因果系统;FIR滤波器在结构上主要为非递归结构,没有输出到输入的反馈;FIR滤波器能够在DSP芯片中实现,DSP芯片中有专用的数字信号处理

7、函数可以调用,因此,在DSP芯片中,FIR滤波器的实现相对简单。但是由于程序是顺序执行的,它的速度会受到限制。1.2.2DSP芯片选择A.TMS320C5402TI公司第五代16bit定点DSP处理器,它适用于语音通信等实施嵌入应用场合,其特性为:操作速度可以达100MIPS;先进的多总线结构;整合维特比加速器;数据/程序寻址从、空间为1M16bit,内置4K16bit的ROM和16K16bit的RAM;内置可编程等待状态发生器、锁相环(PLL)时钟产生器、两个多通道缓冲串口、两个16位定时器,与C54X系列的其他芯片相比,C5402具有高性能,低功耗和低价格等特点,它采用6级流水线,而且当R

8、PT(重复指令)有效时,一些多周期的指令就编程单周期的指令;芯片内部RAM和ROM可以根据PMST寄存器中的OVLY和DROM位灵活设置,这些都是有利于算法的优化。B.TMS320VC5416TMS320VC5416芯片的运行速度为160M,具有低功耗设计;其工作速度可以高达160MIPS;它的片内RAM存储空间为128K16Bit;而其扩张的2路6bitA/D接口TLV0832的最大采样速率为20K;具有2路的TLC7528D/A转换,10M/S,8Bit;具有UAET串行接口,符合RS232标准;有8Mbit的扩展Flash,能存储大量固化程序和数据;设计配置有用户可以自定义的开关盒测试指

9、示灯,方便用户进行调试;4组标准化扩展连接器,为用户进行二次开发提供条件;具有能与IEEE1149.1相兼容的仅用于测试和仿真的逻辑扫描电路;+5V电源输入,内部为+3.3V、+1.6V电源管理;四层板设计工艺,工作稳定可靠;具有自启动功能设计,可以实现脱机工作;可以选配多张应用接口板,包括USB板。1.3方案选择1.3.1滤波器选择在很多实际应用中如语音和音频信号处理中,常用数字滤波器来实现选频功能。因此,应将频域中的幅度和相位响应设为选频功能的指标。在通带中,线性相位响应常是被希望的,但精确的线性相位在FIR滤波器中可以得到,而在IIR滤波器中通带的相位却不可能得到的。在幅度指标的考量方面

10、,IIR数字滤波器的设计和模拟滤波器的设计有着紧密的联系,通常是在设计出适当的模拟滤波器后,再通过一定的频带变换把它转换成为所需要的数字IIR滤波器。此外,任何数字信号处理系统中也还不可避免地用到模拟滤波器,比如A/D变换器前的抗混叠滤波器及D/A转换后的平缓滤波器,因此模拟滤波器设计也是数字信号处理中应当掌握的技术。从性能上来说,IIR数字滤波器传递函数包括零点和极点两组可调因素,对极点的唯一限制是在单位圆内。因此可用较低的阶数获得高的选择性,所用的存储单元少、计算量小、效率高。但是这个高效率是以相位的非线性为代价的。IIR数字滤波器的选择性越好,则相位非线性越严重。因为在计算量相等的情况下

11、,虽然IIR数字滤波器比FIR滤波器的幅频特性优越,频率选择性也好,但是它有着致命的缺点:相位特性不好控制。它的相位特性是非线性函数。例如双线性变换法产生的IIR滤波器模拟指标的频率与数字化指标的频率转换关系是,这是使频率产生严重的非线性的原因,这种W与w的非线性关系,使数字滤波器与模拟滤波器在响应与频率的对应关系上发生了畸变。而FIR滤波器传递函数的极点是固定在原点,是不能动的,它只能靠改变零点位置来改变它的性能,所以要达到高的选择性,必须用高的阶数,对于同样的滤波器设计指标,FIR滤波器所要求的阶数可能比IIR滤波器高5-10倍,结果成本高信号延时也较大,如果按线性相位要求来说,则IIR滤

12、波器就必须加全通网络进行相位校正,但是,在对程序运行周期数要求十分严格的DSP处理中加上一个全通均衡器是十分浪费资源的,另外即使加上全通均衡器对于因果的IIR滤波器仍将得不到线性的相位,反而会大大增加了滤波器的阶数和复杂性。而FIR滤波器却可以在幅度特性随意设计的同时保证精确严格的线性相位。FIR滤波器的这一特点在现代电子系统中诸如图像处理数据传输等波形传递系统中都越来越多的要求信道具有线性相位特性的情况下,成为了FIR滤波器独特的优点。另外,从结构上看,IIR滤波器必须采用递归结构来配置极点,并保证极点位置在单位圆内。由于有限字长效应,运算过程中将对系数进行舍入处理,引起极点的偏移,这种情况

13、有时会造成稳定性问题,甚至造成寄生振荡。相反,FIR滤波器只要采用非递归结构,不论在理论上还是实际的有限精度运算中都不存在稳定性问题,因此造成的频率特性误差也较小。此外FIR滤波器可以采用快速傅立叶变换算法,在相同的阶数条件下运算速度可以快的多。因此,我们小组选择FIR滤波器进行后续的语音信号滤波处理。1.3.2DSP芯片选择综合分析TMS320C5402芯片和TMS320VC5416的功能特点,在同样具有低功耗、高稳定性的条件下,TMS320C5402芯片具有先进的多总线结构,能整合维特比加速器,同时它采用6级流水线,使工作能同时进行,工作速率提高,其芯片内部RAM和ROM可以根据PMST寄

14、存器中的OVLY和DROM位灵活设置等有利于算法的优化,并且价格较低,适合于学生进行开发。但是,TMS320VC5416芯片具有更高的运行速度,是目前为止,C54X系列产品中最快的,其速度是C5410的1.6倍,其内部空间更大,是C5410的2倍。同时配置有较大的ROM能存储大量的固化程序和数据,有利于运行速度的提升和减少因处理数据量太大而死机的可能,能处理信息量的音频信号。TMS320VC5416芯片配置有用户可以自定义的开关盒测试指示灯和4组标准化扩展连接器,为用户调试和进行二次开发提供便利条件,此外,它能够选配诸如USB接口的应用接口板,便于与电脑进行数据交换。因此,我们小组选择TMS3

15、20VC5416芯片来进行开发。2硬件电路概述2.1DSP开发系统通用DSP开发系统的三大要素为:1.界面友好、调试方便、具有图形显示功能以及能对程序问题快速定位的开发软件;2.与PC机接口方便、与目标板连接方便、硬件可靠以及通用性好的开发系统;3.具有流行DSP芯片、具有A/D、D/A等丰富外围接口、扩展方便意见实验软件丰富的目标板;此处仅对开发系统以及目标板进行具体描述。2.2开发系统在这次语音信号滤波处理设计中,我们小组采用ICETEK-5100PP系列开发系统,其外观图如图9所示:图9ICETEK-5100PP开发系统外观图其各部件的说明如下:a.仿真头:JTAG接口,其各管脚定义如图

16、10所示:图10JTAG管脚定义b.仿真头:MPSD接口,其各管脚定义如图11所示:图11MPSD仿真接口各管脚定义c.开发系统电源接口d.并口电缆e.开发系统供电指示灯f.正确运行指示灯2.2.1系统工作环境ICETEK-5100PP开发系统对主的硬件要求如下:ICETEK-5100PP采用并口与计算机相连接,在使用开发系统之前需要正确配置并行端口和开发系统的相应设置。一般的,台式机并行端口有三种工作模式,分别是:SPP、EPP、ECP;而笔记本电脑则只支持其中的SPP和ECP两种工作模式。ICETEK-5100PP可以再SPP和EPP模式下工作,所以要把计算机的并行端口配置为SPP或EPP

17、模式。如果主机支持EPP工作模式,则推荐使用EPP模式。其中,修改并行端口工作模式需要在计算机的BIOS中操作。2.2.2安装步骤在使用ICETEK-5100PP系列开发系统之前,需要先安装开发软件,其安装步骤如下:关闭计算机电源;+5V电源与开发系统的电源接口相接;仿真头与目标板相接;打开目标板电源,这是开发系统供电指示灯会亮;打开计算机;注意:在安装过程中,要在避免接通计算机电源和目标板电源的情况下插播接口,否则会烧坏计算机并口或开发系统。2.3系统板本次设计中,我们将会选用ICETEKVC5416-A作系统板,其实物图如图12所示:图12ICETEKVC5416-A实物图其中各接口具体如

18、下:JTAG仿真插座,与ICETEK-5100PP开发板的a接口相连;四位设置拨码开关;HPI设置跳线J1、J2;U320:四位拨动开关输入;+5V电源插座;电源指示;四位用户可控指示灯:D3D6;P3扩展插座;PI扩展插座;标准RS232接口;语音输入输出接口:MICIN、LINEIN、HEDAPHONE、LINEOUT;P2扩展插座;P4扩展插座;复位按钮;DSP系统板ICETEKVC5416-A的模数转换模块:精度为12bit,同相位最多采集路数为6,两路工作时,最高采集数率为450K/路,而6路工作时,则是150K/路,信号输入范围为05V,而信号耦合方式既可以是直流也可以使交流;DS

19、P系统板ICETEKVC5416-A的数模转换:精度为12bit,路数为4路,其交换数率为100K(10us),输出范围为05V;DSP系统板ICETEKVC5416-A的周边设计:其主处理器是TMS320VC5416,内部存储空间为128K16bit,具有看门狗功能设计。它的上位机接口为RS232串行数据接口,即接口J,同时具有DSP扩展总线。2.4硬件电路连接1.将DSP开发系统ICETEK-5100PP的JTAG仿真插座连接到实验系统的DSP模块ICETEKVC5416-A的JTAG上,如图13所示:计算机开发系统ICETEK-5100PP系统板ICETEKVC5416-ASPP/EPP

20、/ECPJTAG图13硬件电路各部件连接说明2.系统上电后,将开发系统ICETEK-5100PP与计算机相连;3.双击桌面的SETUPCCS图标,配置并启动CCS软件;3软件编程实现分功能模块写,代码&代码功能说明,以及代码算法思想,和流程图为实现本设计,需在MATLAB协助中进行软件仿真,仿真成功后,再通过CCS进行硬件仿真、编译并通过串口将程序下载到DSP芯片之中执行。软件仿真实现MATLAB简介MATLAB是美国Mathworks公司于1984年正式推出的一套高性能的数值计算和可视化软件,适用于工程应用各个领域的分析设计和复杂计算,是一种功能性很强、效率高、便于进行科学和工程计算的交互式

21、软件包,它集数值分析、矩阵运算、信号处理和图形显示于一体,为用户提供方便和友好的界面环境。MATLAB中的工具箱中包含了很多使用程序,如数值分析、矩阵运算、数字信号处理、建模和系统控制等。滤波器的设计就包含在该工具箱的Signal中,它提供了很多种FIR滤波器设计方法。MATLAB因其语言简洁紧凑,使用方便灵活,库函数极其丰富,又具有结构化的控制语句(如for循环,while循环,break语句和if语句),又有面向对象编程的特性;程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行,等等优点。因此在各个学科和领域得到了广泛的应用。数字滤波器在MATLAB的实现其设计流程

22、如图14所示:初始化产生需要虑波信号画出原始信号频谱图生成fir滤波器进行滤波画出滤波后信号频谱图图14Matlab中设计流程图在Matlab中,可以利用矩形窗、三角窗、汉宁窗、汉明窗、布莱克曼窗、凯塞窗等设计FIR滤波器,在本次课程设计中主要应用汉宁窗设计出FIR滤波器。利用Matlab中的函数freqz画出各滤波器的频率响应,首先利用数字信号处理里面学过的知识,根据自己选定的参数,用汉宁窗函数法设计FIR数字滤波器,得到数字滤波器的参数b,a。其中b为系统函数的分子系数,a为系统函数分母系数。再调用freqz(b,a,512,fs)即可得到该滤波器的频率响应。主程序如下:fpd=1700;

23、fsd=1750;fsu=1850;fpu=1900;%FIR滤波器的上下截止频率Rp=1;As=36;%带阻滤波器设计指标fcd=(fpd+fsd)/2;fcu=(fpu+fsu)/2;df=min(fsd-fpd),(fpu-fsu);%计算上下边带中心频率,和频率间隔wcd=fcd/fs*2*pi;wcu=fcu/fs*2*pi;dw=df/fs*2*pi;%将Hz为单位的模拟频率换算为rad为单位的数字频率wsd=fsd/fs*2*pi;wsu=fsu/fs*2*pi;M=ceil(6.2*pi/dw)+1;%计算汉宁窗设计该滤波器时需要的阶数n=0:M-1;%定义时间范围w_ham=

24、hanning(M);%产生M阶的汉宁窗hd_bs=ideal_lp(wcd,M)+ideal_lp(pi,M)-ideal_lp(wcu,M);%调用自编函数计算理想带阻滤波器的脉冲响应h_bs=w_ham.*hd_bs;%用窗口法计算实际滤波器脉冲响应db,mag,pha,grd,w=freqz_m(h_bs,1);%调用自编函数计算滤波器的频率特性阻带最大衰减为-75dB,FIR滤波器的主瓣宽度很小,这样可以使过渡带很陡,旁瓣相对于主瓣也比较小。硬件仿真实现CCS简介DSP芯片的开发需要一套完整的软、硬件开发工具,可以分为代码生成工具和代码调试工具两类.而CCS(CodeComPoser

25、Studio)就是TI推出的用于开发其DSP芯片的集成开发环境,它采用Windows风格界面,集编辑、编译、链接软件仿真、硬件调试及实时跟踪等功能于一体,极大的方便了DSP程序的设计与开发。CCS集成开发环境中包含Simulator(软件仿真器)和Emulator(硬件仿真器)两部分。它们使用的是同一个集成开发环境。在本设计中,采用软件仿真器进行程序的调试。MATLAB与CCS的连接MATLAB辅助DSP开发实现的关键是建立MATLAB与DSP间的连接。以往一般是由开发工具MATLAB把仿真结果先保存,再调入CCS中,在CCS中的仿真中间结果与MATLAB的仿真结果进行比较,以此发现DSP程序

26、的不足,这需要反复操作,比较麻烦。MathWorkS公司和TI公司共同开发的MATLABLinkforCCS开发工具(CCSLink),实现了在MATLAB,TICCS开发环境和DSP硬件间的双向连接,开发者可以利用MATLAB强大的数据处理、分析、可视化功能来处理CCS和目标DSP中的数据,可以大大简化DSP软件开发的分析、调试和验证过程,缩短软件开发周期。MATLAB可通过3种方式与CCS、目标DSI,进行连接、数据交换。CCSLink提供了3种连接对象:与CCS的连接对象可从MATLAB命令窗运行CCS中的应用程序,向目标DSP的存贮器、寄存器读出/写人数据,检查DSP状态,开始/停止目

27、标DSP中运行的程序。与RTDX(实时数据交换)的连接对象使MATLAB与目标DSP直接通信,MATLAB可以实时地向目标DSP取出/发送数据,并不停止DSP中正在执行的程序。嵌入式对象在MATLAB环境中创建,该对象可代表嵌入在目标C程序中的变量,由其可以直接对嵌入在目标DSP存贮器/寄存器中的变量进行操作。3.2.3数字滤波器在CCS中的实现其设计流程如图15所示:图15DSP程序设计流程图3.1音频文件生成y,fs,nbits=wavread(dsp.wav);y=y(:,1);n=length(y);f=fs*(0:511)/1024;t=0:1/22050:(n-1)/22050;A

28、u=0.3;d=Au*cos(pi*6000*t);%噪声为6kHz的余弦信号x2=y+d;%加噪声后的语音信号%sound(x2,fs);%播放加噪声后的语音信号wavwrite(x2,input.wav);n2=length(x2);y1=fft(y,n);y2=fft(x2,1024);figure(1);subplot(2,1,1);plot(y);title(原始的信号波形);subplot(2,1,2);plot(x2);title(加噪后的信号波形);figure(2);plot(f,abs(y2(1:512);title(噪音信号频谱);figure(3);subplot(2,

29、1,1)plot(abs(y1);title(原始信号频谱);subplot(2,1,2)plot(abs(x2);title(加噪后信号频谱);xout=x2/max(x2);%归一化?xto_ccs=round(32767*xout);%clearplaysnd;fid=fopen(dspindata.dat,w);%打开文件fprintf(fid,16511000n);%输出文件头fprintf(fid,%dn,xto_ccs);%输出fclose(fid);用Malab生成混入杂声后的音频文件3.2音频数据读入:STM#temp,AR1;temp存输入左声道样本STM#temp+1,A

30、R2;temp+1存输入右声道样本LDMDRR10,ASTLA,*AR1;AR1存左声道,AR2存右声道LDMDRR20,ASTLA,*AR2分左右声道分别读入音频样本数据,放入寄存器,等待进行处理3.3判断是否进入FIR处理的分支:STM#Echo,AR4;是否FIR处理的分支CMPM*AR4,#1BCFIR,TCBNOFIR根据寄存器数据内容,判断是否进入FIR处理的分支3.4FIR处理分支内容(核心部分)FIR:SSBXFRCTSTM#temp,AR1;temp存输入左声道样本LD*AR1,A;STM#buffer+1,AR3;STLA,*AR3;将最新样本存入fx1,fx0保留空间,存

31、FIR后的输出暂存STM#buffer+25,AR2;将AR2指针指向最高位(最老数据)RPTZA,#24;24MACD*AR2-,COEF,ASTHA,*AR2;把FIR后的数据放在fx0RSBXFRCTLD*AR2,ASTLMA,DXR10;把FIR后的数据输出语音端口NOPSTLMA,DXR20;这里两个声道一起输出同一个数据RSBXFRCTNOPBL1把读入的声音样本数据在芯片内进行FIR处理4结果分析4.1软件仿真运行结果及分析为了更好的实现语音信号的滤波处理,我们在MATLAB上进行软件仿真。在MATLAB中模拟语音滤波器的功能,将语音信号中的高频噪声去除,还原歌曲音频。图16滤波

32、器频率响应图4.2硬件仿真运行结果及分析未经滤波的混有噪声的音频频域波形和经过CCS滤波后还原的歌曲音频的时域和频域波形分别如图:图17滤波前的音频时域波形图图18滤波后的音频时域波形图图19滤波前的音频频域波形图图20滤波后的音频频域域波形图比较硬件仿真后得到的还原音频和MATLAB软件仿真得到的还原音频,可得经CCS硬件仿真后的还原的音频不及MATLAB中的还原的音频与原来的相近,这是因为数字滤波器的性能主要取决于乘法器的各系数,而这些洗漱在MATLAB上仿真的时候是没有经过处理的真实数据,因此在MATLAB上仿真是理想的仿真,因而效果比较好。而在CCS上的各个系数是经过量化处理的,因此系

33、数和原始系数比较会有变化,令在CCS中仿真滤波的结果不如MATLAB中的好,但是并不影响它的正确性。5问题,调试1.用CCS3.3进行硬件仿真时,无法打开仿真软件,判断为软硬件不兼容,改用CCS2.3实现,问题解决。2.绘制出滤波后的波形,发现FIR滤波器没有滤掉单频噪声。通过自己的仔细检查,是单频噪声的频率改动后,FIR滤波器的频率没有改动。所以单频噪声的频率也应该自己先定义,FIR滤波器的截止频率应该以单频噪声的频率为中心,这样重新运行后,结果正确。3.采集的语音信号中高频噪音不很明显,使得最后不能较好的观察到滤波器的性能。解决的方法是:利用matlab产生一个6khz的高频信号与原来的语

34、音信号相加,这时可以明显的听到语音信号中同时伴随着刺耳的高频噪音。4.在选择滤波器的参数时,对具体的音频信息没有整体的了解,使得最后FIR滤波器不能达到很好的滤波效果。解决的方法是,首先对音频信息进行采集,加上高频噪声后,再整体的观察语音信号的波形、频谱,对高频段进行分析,设计满足要求的滤波器。5.在ccs调试过程中,导入indata.dat文件没有完全体现在波形图和频谱图上。解决的方法是,经过仔细的推敲,原因是导入时没有正确的设定数据的起始地址,再重新设定地址为0 x00E5和长度为256后,正确的显示出了对应的波形图和频谱图。6.在编写ccs程序时,没有正确的设定缓冲区长度,引起了对滤波器

35、性能的误判断。解决方法是,重新设定缓冲区的长度为40。6设计改进FIR数字滤波器的设计有多种方法:有窗函数法,频率采样法,切比雪夫逼近法等。其中,窗函数不仅有截断作用,而且能够起到平滑的功能。加窗虽然会使原信号时域波形发生较大变化,但却更有效地保留了原信号的频率信息,在很多领域得到了应用。对不同类型的信号,因为由不同的窗函数实现的FIR滤波器其性能不同,因此在截断处理中不同的滤波器所用的窗函数也不相同。在各种窗函数中,三角窗阻带最小衰减最小,其次是汉宁窗,再次是哈明窗,布莱克曼窗阻带最小衰减最大。主瓣宽度方面,三角形窗,汉宁窗以及哈明窗一样,布莱克曼窗比以三种的主瓣要宽,表现在用布莱克曼窗的滤

36、波器的过渡带比用其他三种窗函数的要宽。主瓣高度与第一旁瓣高度的差值方面,三角窗高度差最小,其次是汉宁窗,再次是哈明窗,Blackman窗高度差最大。旁瓣衰减的速率,三角形窗和哈明窗比较缓慢,汉宁窗相对前丽种要快,布莱克曼窗很快。旁瓣幅度汉宁窗和哈明窗较大,三角形窗和布莱克曼窗较小。所设计的FIR数字滤波器的阶数N不同,所得到的滤波器的过渡带会不一样,N越小,过渡带越宽。而对于同一种窗,N的值越大主瓣宽度越小,相应地,滤波器的过渡带就越窄,主瓣高度与第一旁瓣高度的差值方面基本不变而旁瓣的个数越来越多,但旁瓣的宽度随着N的加大而减小。因为hamming窗的FIR滤波器使99963的能量集中在主瓣内

37、,旁瓣峰值小于主瓣峰值的1,是各种窗函数中性能较好的一种,因此它被广泛应用。而在四种窗函数中,因为布莱克曼窗的旁瓣峰值最低为一57db可以充分抑制干扰频谱的旁瓣泄露,所以它的干扰抑制性能最为稳定。针对采用不同的窗函数所造成的频谱泄露问题,则要采用采用hamming窗,因为它可将9999的能量集中在窗谱的主瓣内,有效地消除频谱泄漏,并能在一定程度上减少栅栏效应。7课程设计心得在本次课程设计的过程中,虽然遇到很多问题,让组内成员一度灰心丧气,但经过组内各成员同心协力的查找问题,翻阅资料以及讨论解决方案后,成功的完成了课程设计的内容。此过程中,我们不但能够将课堂上学到的知识加以运用,通过实际应用掌握

38、DSP的操作以及原理。同时,也培养了我们克服困难战胜困难的能力,让我们懂得了团队合作的重要性,学会根据组内每个成员自己的特点以及长处不同,针对每个成员对该设计的完成在不同方面的独特作用,充分地了解各成员特性,更好的发挥团队的作用,最大化的提升团队的人员配置,对更好的完成该设计有着不可忽视的作用。另外,此次设计的过程中,除了增加了对滤波器的设计、实现的认识外,还增加了对MATLAB和CCS的认识和了解,MATLAB具有强大的数值计算和图形功能,虽然其执行效率较低,但其编程效率与可读性、可移植性要远高于其他高级语言。它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个界面友好的用户环境,是

39、一个非常优秀的算法研究与辅助设计的工具。运用它来进行辅助设计,在系统的准确性和高效率方面起到了至关重要的作用。而CCS加速和增强了实时,嵌入信号处理的开发过程,它提供配置、构造、调试、跟踪和分析程序的工具,在基本代码产生工具的基础上增加了调试和实时分析的功能。开发设计人员可在不中断程序运行的情况下检查算法的对错,实现对硬件的实时跟踪调试,从而大大缩减了程序的开发时间。另外,也学会了利用CCSLINL命令在MATLAB和CCS之间进行通信,提高操作的方便度和速度。附录主函数:.titleFIR.ASM.mmregs.defstart.defrxDatalevelN.set25buffer.use

40、ctbuffer,levelN+2;25级数组空间,有1个是保留空间IN.usectIN,8192;输入的数据保存区OUT.usectOUT,8192;输出的数据保存区STACK.usectstack,400h;堆栈的长度.bsskong,2.bssEcho,1.bssncount,1.bsstemp,5.bsstemp1,1.bsstemp2,5;*;*系统变量定义*;*CPU_SPEED_160M.set9007hLEFT_PTRq.set4000hRIGHT_PTR.set8000hFLAG.set0060hDataBuffSize.set8192DELAYTIME.set0;6134;

41、*;*mcBSP变量预定义*;*SPSA0.set38hSPSD0.set39hSPSA1.set48hSPSD1.set49hSPCR1.set00hSPCR2.set01hRCR1.set02hRCR2.set03hXCR1.set04hXCR2.set05hSRGR1.set06hSRGR2.set07hMCR1.set08hMCR2.set09hRCERA.set0ahRCERB.set0bhXCERA.set0chXCERB.set0dhPCR.set0ehRCERC.set10hRCERD.set11hXCERC.set12hXCERD.set13hRCERE.set14hRCER

42、F.set15hXCERE.set16hXCERF.set17hRCERG.set18hRCERH.set19hXCERG.set1ahXCERH.set1bhDRR20.set20hDRR10.set21hDXR20.set22hDXR10.set23hDRR21.set40hDRR11.set41hDXR21.set42hDXR11.set43h;*;*语音AIC23的参数预定义*;*AIC23_RESET_REG.set0fhAIC23_POWER_DOWN_CTL.set06hAIC23_ANALOG_AUDIO_CTL.set04hANAPCTL_DAC.set10hAIC23_DI

43、GITAL_AUDIO_CTL.set05hAIC23_LT_LINE_CTL.set00hAIC23_RT_LINE_CTL.set01hAIC23_DIGITAL_IF_FORMAT.set07hDIGIF_FMT_LRP.set10hDIGIF_FMT_MS.set40hDIGIF_FMT_IWL_16.set00hDIGIF_FMT_FOR_DSP.set03hAIC23_SAMPLE_RATE_CTL.set08hSRC_SR_08.set0chAIC23_DIG_IF_ACTIVATE.set09hDIGIFACT_ACT.set01hSRC_BOSR.set02hSRC_MO.s

44、et01hHECHENGDIGIF.setDIGIF_FMT_LRP|DIGIF_FMT_MS|DIGIF_FMT_IWL_16|DIGIF_FMT_FOR_DSP;*;*FIR滤波器的系数*;*.dataCOEF:.word20*32768/10000,16*32768/10000;b24,b23.word0*32768/10000,-44*32768/10000;b22,b21.word-117*32768/10000,-181*32768/10000;b20,b19.word-168*32768/10000,0*32768/10000;b18,b17.word359*32768/1000

45、0,870*32768/10000;b16,b15.word1415*32768/10000,1835*32768/10000;b14,b13.word1992*32768/10000,1835*32768/10000;b12,b11.word1415*32768/10000,870*32768/10000;b10,b9.word359*32768/10000,0*32768/10000;b8,b7.word-168*32768/10000,-181*32768/10000;b6,b5.word-117*32768/10000,-44*32768/10000;b4,b3.word0*32768

46、/10000,16*32768/10000;b2,b1.word20*32768/10000;b0;*;*主程序*;*.textstart:STM#STACK+400h,SP;设置堆栈STM#temp,AR1;向3005h的IO端口写1ST#1,*AR1PORTW*AR1,3005hSTM#0,CLKMD;初始化频率RPT#50NOPSTM#CPU_SPEED_160M,CLKMDRPT#50NOP;*STM#SPCR1,SPSA1;mcBSP1的初始化STM#0,SPSD1STM#SPCR2,SPSA1STM#0,SPSD1STM#SPCR1,SPSA1STM#1800h,SPSD1STM#

47、RCR1,SPSA1STM#040h,SPSD1STM#XCR1,SPSA1STM#040h,SPSD1STM#SRGR2,SPSA1STM#2000h,SPSD1STM#SRGR1,SPSA1STM#0FFh,SPSD1STM#XCR2,SPSA1STM#0,SPSD1STM#RCR2,SPSA1STM#0,SPSD1STM#PCR,SPSA1STM#0A08h,SPSD1STM#SPCR2,SPSA1ORM#40h,SPSD1RPT100NOPSTM#SPCR1,SPSA1ORM#01h,SPSD1STM#SPCR2,SPSA1ORM#01h,SPSD1RPT100NOP;*STM#tem

48、p,AR1;AIC23初始化AIC23_Write(AIC23_RESET_REG,0);ST#AIC23_RESET_REG,*AR1STM#temp+1,AR2ST#0,*AR2LD*AR1,9,AADD*AR2,ASTLA,*AR1STM#SPCR2,SPSA1Testma1:;MVKDSPSD1,*AR2LDMSPSD1,ASTLA,*AR2BITF*AR2,#02hBCSendReady1,TCBTestma1SendReady1:;MVKM,*AR1,DXR11;LD*AR1,ASTLMA,DXR11;STM#temp,AR1;AIC23_Write(AIC23_POWER_DOW

49、N_CTL,0);ST#AIC23_POWER_DOWN_CTL,*AR1STM#temp+1,AR2ST#0,*AR2LD*AR1,9,AADD*AR2,ASTLA,*AR1STM#SPCR2,SPSA1Testma2:;MVMDSPSD1,*AR2LDMSPSD1,ASTLA,*AR2BITF*AR2,#02hBCSendReady2,TCBTestma2SendReady2:;MVDM,*AR1,DXR11;LD*AR1,ASTLMA,DXR11;STM#temp,AR1;AIC23_Write(AIC23_ANALOG_AUDIO_CTL,ANAPCTL_DAC);ST#AIC23_A

50、NALOG_AUDIO_CTL,*AR1STM#temp+1,AR2ST#ANAPCTL_DAC,*AR2LD*AR1,9,AADD*AR2,ASTLA,*AR1STM#SPCR2,SPSA1Testma3:;MVMDSPSD1,*AR2LDMSPSD1,ASTLA,*AR2BITF*AR2,#02hBCSendReady3,TCBTestma3SendReady3:;MVDM,*AR1,DXR11;LD*AR1,ASTLMA,DXR11;STM#temp,AR1;AIC23_Write(AIC23_DIGITAL_AUDIO_CTL,0);ST#AIC23_DIGITAL_AUDIO_CTL

51、,*AR1STM#temp+1,AR2ST#0,*AR2LD*AR1,9,AADD*AR2,ASTLA,*AR1STM#SPCR2,SPSA1Testma4:;MVMDSPSD1,*AR2LDMSPSD1,ASTLA,*AR2BITF*AR2,#02hBCSendReady4,TCBTestma4SendReady4:;MVDM,*AR1,DXR11;LD*AR1,ASTLMA,DXR11;STM#temp,AR1;AIC23_Write(AIC23_LT_LINE_CTL,0 x17);ST#AIC23_LT_LINE_CTL,*AR1STM#temp+1,AR2ST#017h,*AR2LD

52、*AR1,9,AADD*AR2,ASTLA,*AR1STM#SPCR2,SPSA1Testma5:;MVMDSPSD1,*AR2LDMSPSD1,ASTLA,*AR2BITF*AR2,#02hBCSendReady5,TCBTestma5SendReady5:;MVDM,*AR1,DXR11;LD*AR1,ASTLMA,DXR11;STM#temp,AR1;AIC23_Write(AIC23_RT_LINE_CTL,0 x17);ST#AIC23_RT_LINE_CTL,*AR1STM#temp+1,AR2ST#017h,*AR2LD*AR1,9,AADD*AR2,ASTLA,*AR1STM#

53、SPCR2,SPSA1Testma6:;MVMDSPSD1,*AR2LDMSPSD1,ASTLA,*AR2BITF*AR2,#02hBCSendReady6,TCBTestma6SendReady6:;MVDM,*AR1,DXR11;LD*AR1,ASTLMA,DXR11;STM#temp,AR1;ST#AIC23_DIGITAL_IF_FORMAT,*AR1STM#temp+1,AR2ST#HECHENGDIGIF,*AR2LD*AR1,9,AADD*AR2,ASTLA,*AR1STM#SPCR2,SPSA1Testma7:;MVMDSPSD1,*AR2LDMSPSD1,ASTLA,*AR2

54、BITF*AR2,#02hBCSendReady7,TCBTestma7SendReady7:;MVDM,*AR1,DXR11;LD*AR1,ASTLMA,DXR11;STM#temp,AR1;ST#AIC23_SAMPLE_RATE_CTL,*AR1STM#temp+1,AR2ST#SRC_SR_08,*AR2LD*AR1,9,AADD*AR2,ASTLA,*AR1STM#SPCR2,SPSA1Testma8:;MVMDSPSD1,*AR2LDMSPSD1,ASTLA,*AR2BITF*AR2,#02hBCSendReady8,TCBTestma8SendReady8:;MVDM,*AR1,

55、DXR11;LD*AR1,ASTLMA,DXR11;STM#temp,AR1;AIC23_Write(AIC23_DIG_IF_ACTIVATE,DIGIFACT_ACT);ST#AIC23_DIG_IF_ACTIVATE,*AR1STM#temp+1,AR2ST#DIGIFACT_ACT,*AR2LD*AR1,9,AADD*AR2,ASTLA,*AR1STM#SPCR2,SPSA1Testma9:;MVMDSPSD1,*AR2LDMSPSD1,ASTLA,*AR2BITF*AR2,#02hBCSendReady9,TCBTestma9SendReady9:;MVDM,*AR1,DXR11;L

56、D*AR1,ASTLMA,DXR11;*STM#SPCR1,SPSA0;mcBSP0的初始化STM#0,SPSD0STM#SPCR2,SPSA0STM#0,SPSD0;STM#SPCR1,SPSA0;STM#1800h,SPSD0STM#RCR1,SPSA0STM#0a0h,SPSD0STM#RCR2,SPSA0STM#0a0h,SPSD0STM#XCR1,SPSA0STM#0a0h,SPSD0STM#XCR2,SPSA0STM#0a0h,SPSD0STM#SRGR1,SPSA0STM#01f00h,SPSD0STM#SRGR2,SPSA0STM#03fh,SPSD0STM#PCR,SPSA0

57、STM#08fh,SPSD0STM#SPCR2,SPSA0ORM#02c1h,SPSD0RPT100NOPSTM#SPCR1,SPSA0STM#02001h,SPSD0RPT100NOP;*STM#ncount,AR1ST#DELAYTIME,*AR1STM#IN,AR1RPT#DataBuffSize-1ST#0,*AR1+STM#OUT,AR1RPT#DataBuffSize-1ST#0,*AR1+STM#temp+3,AR1;调试ncountST#0,*AR1STM#temp1,AR1;调试ncountST#0,*AR1STM#Echo,AR1ST#1,*AR1;选择FIR滤波输出;*S

58、SBXINTM;中断初始化ANDM#00ffh,PMSTSTM#030h,IMRSTM#0ffh,IFRRSBXINTMSTM#temp,AR1ST#0,*AR1PORTW*AR1,8000hST#8888H,*AR1PORTW*AR1,8000hST#0,*AR1PORTW*AR1,8000hRPT50NOP;*BBVV:NOPBBBVV;*rxData:;中断程序NOPPSHM8h;ALPSHM9h;AHPSHM0ah;AGPSHM0bh;BLPSHM0ch;BHPSHM0dh;BGPSHM10h;AR0PSHM11h;AR1PSHM12h;AR2PSHM13h;AR3PSHM14h;AR4PSHM15h;AR5PSHM16h;AR6PSHM17h;AR7PSHM17h;AR7PSHM19h;BKPSHM0eh;TPSHM6h;ST0PSHM7h;ST1NOPPSHM1ah;BRCPSHM1dh;PMSTNOPPSHM1bh;RSAPSHM1ch;REALDM18h,A;ANDM0fffeh,*(18h);SPNOPNOPPSHM8h;STM#temp,AR1;temp存输入左声道样本STM#temp+1,AR2;temp+1存输入右声道样本,这里没用,作保留吧LDMDRR10,ASTLA,*AR1;AR1存左声道,AR2存右声道,我们用左声道LD

温馨提示

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

评论

0/150

提交评论