




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计(论文)题 目 名 称 基于dsp的语音噪声滤波器的设计与仿真 课 程 名 称 dsp技术与应用 学 生 姓 名 学 号 系 、专 业 信息工程系、电子信息工程 指 导 教 师 余 建 坤 2012年6月18日邵阳学院课程设计(论文)评阅表学生姓名 王 旭 学 号 0941301058 系 信息工程系 专业班级 电子信息工程 题目名称 基于dsp的语音噪声滤波器的设计 课程名称 dsp技术与应用 一、学生自我总结 学生签名: 年 月 日二、指导教师评定评分项目平时成绩报告格式方案设计程序设计仿真创新性综合成绩权 重202020201010单项成绩指导教师评语: 指导教师(签名): 年 月 日注:1、本表是学生课程设计(论文)成绩评定的依据,装订在设计说明书(或论文)的“任务书”页后面;2、表中的“评分项目”及“权重”根据各系的考核细则和评分标准确定。-目 录摘 要i第1章 绪论11.1 引言11.2 课题研究意义和目的11.3 研究思路2第2章 总体设计42.1滤波器的基本概念42.2自适应滤波器的原理42.3自适应滤波器的算法52.4 tms320vc5402的简介5第3章 详细设计73.1信道干扰滤波部分73.2回波去噪部分113.3系统仿真12第4章 课程设计总结13参考文献14附录(源程序清单)15摘 要滤波器是统计信号处理的一个重要组成部分。在实际应用中,由于没有充足的信息来设计固定系数的数字滤波器,或者设计规则会在滤波器正常运行时改变,因此我们需要研究滤波器。凡是需要处理未知统计环境下运算结果所产生的信号或需要处理非平稳信号时,滤波器可以提供一种吸引人的解决方法,而且其性能通常远优于用常方法设计的固定滤波器。此外,滤波器还能提供非自适应方法所不可能提供的新的信号处理能力。本文首先利用dsp的dma方式对外部含噪声的语音信号进行实时采集,语音信号先经过a/d转换为数字信号,利用mcbsp的接收寄存器接收数据。编写滤波算法程序,或调用dsplib中的滤波函数,对信号进行滤波。滤波后的数据利用dma方式送到d/a转换器转换为模拟信号。关键词:自适应滤波器;lms算法;fir结构滤波器;a/d转换;d/a转换ii第1章 绪论1.1 引言随着语音技术研究的深入和实际应用的增多,各种语音处理系统都面临着进一步提高性能的问题。语音增强是其中的关键技术之一。从20世纪60年代开始,对语音增强的研究就一直没有停止。20世纪70年代由于数字信号处理理论的成熟,加速了语音增强技术的研究,使该技术走向成熟。20世纪80年代以后,超大规模集成电路技术的发展为语音增强的实时实现提供了可能1。语音增强即语音噪声处理的目的是从带有噪声的语音信号中提取纯净的原始语音。但由于噪声信号都是随机产生的,完全消除噪声几乎不可能,因此实际语音增强的目的主要有:改进语音质量,消除背景噪声,使听者乐于接受,不感到疲倦,同时提高语音信号的可懂度, 方便听者理解。语音增强不但与语音处理理论有关,而且涉及到人的听觉和语音学。再者,噪声的来源众多,应用场合不同,它们的特性也各不相同。因此在不同的噪声场合中应采用不同的语音增强方法2。1.2 课题研究意义和目的对语音噪声滤波的研究是当今自适应信号处理中最为活跃的研究课题之一。语音噪声处理技术是指当语音信号被各种各样的噪声(包括语音)干扰、甚至淹没后,从噪声背景中提取、增强有用的语音信号,抑制、降低噪声干扰的技术。语音增强技术无论在日常生活中,还是在其它的领域,或者对语音信号处理技术本身来说都很有应用价值。 在日常生活中,我们经常会遇到在噪声干扰下进行语音通信的问题。如:使用设置在嘈杂的马路旁或市场内的公用电话,或在奔驰的汽车、火车里使用移动电话时,旁人的喧闹声、汽车和火车的轰鸣声等背景噪声都会干扰语音通讯的质量。对受话人来说,收听夹杂着各种干扰噪声的语音,至少会引起听觉疲劳,严重一点就会错误地识别或根本无法听清对方的语音。对电话来说,干扰主要来自电话信道的回波干扰。还有一种叫无线信道干扰,它来自信道对外界干扰屏蔽能力的强弱。比如雷雨天收听收音机,会听到阵阵噪声。它是由于雷电引起信道附近强电流的骤变,导致强大的电磁波串入信道,并传送到接受端而引起的噪声干扰。这些随机性的干扰也严重影响了语音的传输质量。再有一类需要用到语音增强技术的方面就是处理旧的录音磁带。由于早年录音技术不完善,磁带质量不高,加上长久存放,使磁带发生霉变、机械损伤、磁粉脱落、磁化等问题,使得重放语音产生噪声。对于那些极具研究或收藏价值的宝贵录音资料来说,语音增强技术是一个较好的恢复手段。在通信过程中,语音质量的好坏显得格外重要。如语音质量很差,接收方难以听清对方的语音信息,轻者可能延误时间、贻误时机,重者可能错误地识别对方的语音,因而错误地下达或执行命令,导致对工作造成不可估量的损失。在机械制造领域,声音环境一般都比较恶劣,除了各种机械内部产生的噪声,工作中还不时地充满了各种冲击性噪声,使得工作者的语音经常被部分或全部淹没在一片强噪声中,即使花九牛二虎之力也常常难以收听到对方准确可靠的语音信息。因此,机械制造领域也迫切需要语音增强技术。随着现代科学的蓬勃发展,人类社会愈来愈显示出信息社会的特点。通信或信息交换已成为人类社会存在的必要条件,正如衣食住行对人类是必要的一样。语音作为语言的声学表现,是人类交流信息最自然、最有效、最方便的手段之一。然而,人们在语音通信过程中不可避免地会受到来自周围环境和传输媒介引入的噪声、通信设备内部电噪声、乃至其他讲话者的干扰。这些干扰最终将使接收者接收到的语音不再是纯净的原始语音,而是被噪声污染过的带有噪声的语音信号。例如,汽车、街道、机场中的电话,常受到强背景噪声的干扰,严重影响通话质量。而环境噪声的污染使得许多语音处理系统的性能急剧恶化。例如,语音识别已取得重大进展,正步入使用阶段。但目语音识别系统大多都是在安静环境中工作的,在噪声环境中尤其是强噪声环境,语音识别系统的识别率将受到严重影响。在上述情况下,必须加入语音增强系统,或者抑制背景噪声,以提高语音通信质量,或者作为预处理器,以提高语音处理系统的抗干扰能力,维持系统性能。因此,语音增强技术在实际中有重要价值。目前,语音增强已在语音处理系统、通信技术、多媒体技术、数字化家电等领域得到了越来越广泛的应用3。1.3 研究思路语音通信的目的是传递声音信息。位于甲地的通信者发出的声音经语音传感器变换成为电信号,经发送端设备变换为适合传输的形式,通过传输信道传输到乙地。在乙地经接收端设备恢复出原来的语音信号,经耳机或者喇叭转换为接收者可以听到的声音信号。这就是最基本的语音通信系统,但是由于周围环境的原因,我们采集到语音信号经常含有不同程度的噪声。典型语音通信系统中的噪声来自三个方面:信号处理设备产生的电噪声及传输信道中的电噪声; 信号发送端空间环境中的音频噪声信号经麦克风变换为电信号之后,与有用信号其同传递到接收端;信号接收端空间环境中的音频噪声对信号接收者的影响。噪声是由于发生体作无规则振动产生的。在很多情况下,环境中的背景噪声是通信系统中噪声干扰的主要来源。当语音信号受到背景噪声干扰时语音通信质量变得不可接受,因此要对语音信号中的噪声滤除。dsp利用直接存储器访问方式dma(direct memory access)采集数据时不打扰cpu,因此利用dma方式工作时,cpu可以对语音信号进行实时地滤波。本设计要求利用dsp的dma方式进行信号采集和信号输出,对语音信号进行数字编码,滤波后进行解码。首先利用dsp的dma方式对外部含噪声的语音信号进行实时采集,语音信号先经过a/d转换为数字信号,利用mcbsp的接收寄存器接收数据。编写滤波算法程序,或调用dsplib中的滤波函数,对信号进行滤波。滤波后的数据利用dma方式送到d/a转换器转换为模拟信号4。第2章 总体设计2.1滤波器的基本概念凡是有能力进行信号处理的装置都可以称为滤波器。在近代电信装备和各类控制系统中,滤波器应用极为广泛;在所有的电子部件中,使用最多,技术最复杂要算滤波器了。滤波器的优劣直接决定产品的优劣,所以,对滤波器的研究和生产历来为各国所重视。滤波器是一种用来消除干扰杂讯的器件,将输入或输出经过过滤而得到纯净的交流电。您可以通过基本的滤波器积木块二阶通用滤波器传递函数,推导出最通用的滤波器类型:低通、带通、高通、陷波和椭圆型滤波器。传递函数的参数f0、d、hhp、hbp 和hlp,可用来构造所有类型的滤波器。转降频率f0为s项开始占支配作用时的频率。2.2 自适应滤波器的原理自适应滤波,就是利用前一时刻以获得的滤波器参数的结果,自动的调节现时刻的滤波器参数,以适应信号和噪声未知的或随时间变化的统计特性,从而实现最优滤波。其实质就是一种能调节其自身传输特性以达到最优的维纳滤波器。由于无法预先知道信号和噪声的特性或者它们是随时间变化的,仅仅用fir和iir种具有固定滤波系数的滤波器无法实现最优滤波。在此情况下,必须设计自适应滤波器,以跟踪信号和噪声的变化。自适应滤波器的特性变化是由自适应算法通过调整滤波器系数来实现的。一般而言,自适应滤波器由两部分组成,一是滤波器结构,二是调整滤波器系数的自适应算法。自适应滤波器的结构采用fir或iir结构均可,由于iir滤波器存在稳定性问题,因此一般采用fir滤波器作为自适应滤波器的结构。x(k)输入信号,通过权系数可调的数字滤波器后产生输出信号y(k),将输出信号y(k)与标准信号d(k)进行比较,得到误差信号e (k)。e(k)和x(k)通过自适应算法对滤波器的权系数进行调整,调整的目的使得误差信号e(k)最小。重复上面过程,滤波器在自己的工作过程中逐渐了解到输入信号和噪声的统计规律,并以此为根据自动调整滤波器权系数,从而达到最佳的滤波效果。一旦输入的统计规律发生了变化,滤波器能够自动跟踪输入信号变化,自动调整滤波器的权系数,最终达到滤波效果,实现自适应过程。自适应滤波器的结构可以采用fir或iir滤波器存在稳定性问题,因此一般采用fir滤波器作为自适应滤波器的结构。自适应fir滤波器结构又可分为3种结构类型:横向型结构(transversal structure)、对称横向型结构(symmetric transversal structure)以及格型结构(lattice struture)5。2.3自适应滤波器的算法自适应滤波器除了包括一个按照某种结构设计的滤波器,还有一套自适应的算法。自适应算法是根据某种判断来设计的。自适应滤波器的算法主要是以各种判据条件作为推算基础的。通常有两种判据条件:最小均方误差判据和最小二乘法判据。lms算法是以最小均方误差为判据的最典型的算法,也是应用最广泛的一种算法。最小均方误差(least mean square,lms)算法是一种易于实现、性能稳健、应用广泛的算法。所有的滤波器系数调整算法都是设法使y(n)接近d(n),所不同的只是对于这种接近的评价标准不同。lms算法的目标是通过调整系数,使输出误差序列e(n)=d(n)-y(n)的均方值最小化,并且根据这个判据来修改权系数,该算法因此而得名。误差序列的均方值又叫“均方误差”(mean sqluare error,mse)。理想信号d(n)与滤波器输出y(n)之差e(n)的期望值最小,并且根据这个判据来修改权系数wi(n)。由此产生的算法称为lms。均方误差表示为: (2-1)对于横向结构的滤波器,代入y(n)的表达式: (2-2)其中:r=ex(n)xt(n)为nn的自相关矩阵,它是输入信号采样值间的相关性矩阵。 2.4 tms320vc5402的简介 tms320vc5402是公司的定点数字信号处理芯片,是一种特殊结构的微处理器,为了达到快速进行数字信号处理的目的,采用程序与数据分开的总线结构,流水线操作,单周期完成乘法的硬件乘法器以及一套适合数字信号处理的指令集。2.4.1tms320vc5402的主要特点tms320vc5402处理器在本系列中处于先进水平。它具有运算速度快,内部存储空间大,外部接口性能好等优点。所以我选择了技术上比较先进,价格又较便宜的c5402作为硬件开发对象。下面结合c5402的实际情况,介绍一下该芯片的体系结构。c5402共有144个引脚,其中有20根地址线ao-a19,16根数据线do-d15,4个外部可屏蔽引脚into#-int3#和一个不可屏蔽中断引脚bio#,剩下的引脚可以分成以下几类:存储器控制引脚,时钟/晶振引脚,多通道缓冲串口引脚,主机接口通讯引脚,电源引脚,初始化和复位引脚,通用输入/输出引脚,以及用于测试的ieee1149. 1标准jtag口3。2.4.2. tms320vc5402 dsk工作原理tms320vc5402 dsk是以tms320vc5402处理器为核心的dsp 初学者工具(dsp starter kit)。它提供了一个低功耗,独立的开发平台,使用户能评估和开发c54x dsp的应用程序,同时也可以作为以其他芯片为核心的dsp硬件设计的参考。tms320vc5402 dsk的结构主要包括以下部分: 100m vc5402 dsp 64k16位的sram存储器 256k16位的flash存储器 jtag仿真测试总线控制器(jtag tbc)和并行接口控制器(parallel port controller) 电话网络接口(daa) 麦克风/扬声器音频接口 rs-232异步数据接口 扩展子板接口(memory i/f和peripheral i/f)。第3章 详细设计3.1信道干扰滤波部分 公司的dsp芯片 tms320vc5402,还有电源芯片,ad转换器,储存器,时钟,jtag接口的连接。结构图3.1如下:图3.1 系统结构流程图首先利用dsp的dma方式对外部含噪声的语音信号进行实时采集,语音信号先经过a/d转换为数字信号,利用mcbsp的接收寄存器接收数据。编写滤波算法程序,或调用dsplib中的滤波函数,对信号进行滤波。滤波后的数据利用dma方式送到d/a转换器转换为模拟信号。这就是我们的设计思路。具体的设计方案原理图如下。模拟输入信号通过dsk的mic端口输入,经a/d转换,然后到达dsp的dma通道2,dsp接收到信号后,调用中断服务程序进行滤波,滤波后的信号可以在ccs上显示,也可以通过dma通道3将信号输出到d/a转换器,经d/a转换后从speaker端口输出6。 图3.2 设计方案原理图3.1.1 直接存储器访问dma直接存储器访问(direct memory access)是c54x dsp非常重要的片上外设,dma控制器可以在不影响cpu的情况下完成数据的传输,因此数据传输速度快,在要求信号实时采集和处理的系统中常采用dma方式进行信号采集和传输。c5402有6个可独立编程的dma通道,每个dma通道受各自的5个16位寄存器控制:源地址寄存器dmsrc、目的地址寄存器dmdst、单元计数寄存器dmctr、同步事件和计数寄存器dmsfc、发送模式控制寄存器dmmcr。目的地址寄存器dmdst规定dma要传送数据目的地址和首地址。单元计数寄存器dmctr规定dma传送数据的个数为dmctr寄存器的值加1。同步事件和桢计数寄存器dmsfc规定dma传送数据的同步事件类型和传送一块数据所含桢信号的个数。发送模式控制寄存器dmmcr规定dma通道的传输模式,当dma工作在自动初始化模式时,cpu在一个dma事件完成后自动装载下一个dma初始化设置并继续进行数据传送。dinm位和imod位设置dma中断产生方式。ctmod位设置发送计数模式控制,ctmod位为0时,dma工作在多桢模式,ctmod位为1时,dma工作在自动缓冲abu模式。sind位和dind位用来设置源地址和目的地址的自动调整方式。此外,dma的6个通道还受通道优先级和使能控制寄存器dmprec控制。本实验利用dma通道2与mcbsp1通道结合来读取a/d转换器的数据,利用dma通道3与mcbsp1通道结合来将处理后的数据发送至d/a转换器。选择mcbsp1通道的接收寄存器drr11(41h)为dma传送数据的首地址,并选择dma源地址工作在不调整方式,选择mcbsp1接收事件为dma同步事件,以实现dma和mcbsp的结合。a/d转换器的数据按mcbsp1的设置被传送到dsp内部接收寄存器drr11中,再由dma通道2将drr11中的数据读到指定数据存储区inp_buffer中完成数据采集。dma在传送外部来的数据时不会影响cpu的正常运行,当dma通道2采集完一组数据后产生一个dma中断事件中断cpu,来通知cpu对其进行相应的处理,此时dma通道2可以按照设定继续采集下一组数据,实现了数据采集与cpu处理的并行操作。当一组数据处理完成后,将数据存放在数据存储区out_buffer中,选择out_buffer为dma通道3的首地址,并选择源工作地址工作在不调整方式。选择mcbsp1通道的发送积存器dxr11(43h)为dma通道3传送数据的目的地址,并选择dma源地址工作在不调整方式,选择mcbsp1接收事件为dma同步事件,以实现dma和mcbsp的结合。在ccs集成开发环境中,与dma相关的头文件有regs54xx.h和dma54xx.h。在这两个头文件中,定义了dma的寄存器资源、使用方法和dma寄存器的地址和基本访问方式,以及寄存器的各个比特域和访问方法,因此需要进行c源程序的开始处包含这两个头文件。输入信号经a/d转换后,利用dma通道2进行传输进入dsp处理,而滤波后的信号输出利用了dma通道3进行传输进入d/a转换器等输出,因此需要对dma通道2和通道3进行初始化配置7。 图3.3 储存器电路3.1.2 a/d和d/a转换器本实验要用到a/d和d/a转换器。a/d转换器能够将接收的语音信号(模拟信号)转化为数字信号,供cpu进行处理;d/a转换器能够将数字信号转换为语音信号送speaker端口输出。要使用a/d和d/a转换器,必须首先对a/d和d/a转换器进行初始化设置,即设置a/d转换器的工作模式(15+1bit模式,16bit模式)、输入增益(0db,6db,12db)以及抽样频率(8000hz,16000hz)等。图3.4 a/d转换电路3.2回波去噪部分初始化fir延迟输出数组dbuffer_h、fir输出数组、自适应滤波器系数矢量coff_w和自适应滤波器的输出数组out_w以及dsk板之后,采集输入的语音信号,根据模式的不同进行不同的处理以输出不同的信号来进行效果的比较。我们的做法是利用设置参数mode来改变板子的功能。mode=1时信号通过fir滤波器后产生回声,为使现象更明显可以附加一个延迟;mode=2时用自适应滤波器逼近fir滤波器以使之输出近似的信号,用信号通过两个系统产生的信号之差(即剩余回声)来调整自适应滤波器的系数,使剩余回声逐渐收敛于0。3.2.1回声消除器的基本原理回声消除的基本原理是采用一个自适应滤渡器自动识别回声通道,通过自适应滤波算法的调整,使其冲激响应与实际回声路径逼近,从而得到回声预测信号y(n),再将预测信号从近端采样的语音信号d(n)中减去,即可实现回声消除。自适应算法要求收敛速度快、计算复杂度低、稳定性好和失调误差小。虽然许多自适应算法在理论上实现回声消除都是可行的,但通常采用的是较简单的算法。例如广泛应用的lms自适应算法2。 图3.5 回声消除器原理图3.2.2小创意:变调音调转移使用同一个存储的声音片断,可以帮助产生其他频率的音符。正弦信号的频率与周期成反比,所以抽样间隔变大的话,就相当于频率变大。运用此原理,我们对dma256数据进行抽样,若抽样间隔大于,则抽样频率提高,声调提高;若间隔小于,则抽样频率降低,声调降低。 3.3系统仿真通过ccs软件环境,把滤波程序烧录到dsp芯片中,在ccs dsk c5000环境下输出仿真结果。程序正确运行后,观察运行结果,得出如图所示的仿真图。图3.6 语音噪声滤波图图3.7 女声变男声结果图第4章 课程设计总结在进行课程设计之前几天,不知从何入手,一脸茫然。为什么呢?因为我们想自己自己做出来而不参考任何资料,以为这样才可体现我们的智慧和能力,其实这是大错特错的。当然也不是一味强调自己动脑自己做出来不好,从开发方面角度来说是可以的,有些东西也并不是一味的照搬照抄。抱着这样的态度迷茫了三四天只想出了一丁点大至结构。最后决定上网找资料,不查不知道,一查大吃一惊,不但自己的想法网上比比皆是,比自己的想法更完美更合理的多得看都看不完。此时真是自愧不如,如早从网上借鉴,集大家之所成,加上自己的修改完善,早已做出了更好的系统结结构和想法了。现在才知道,一个人的智慧敌不过千万人智慧的集成,能借鉴的尽量借鉴,然后再修改完善,增加自己所需的功能,做出自己的特色。伟大的物理学家牛顿不也说过他之所以成功是站在伟人的肩上吗?完成设计后,我觉得收获不少,首先是自己首次应用所学知识做出了这个dsp设计,以前从未做过这样大(这是对我而言,在专业人士看来是小菜一碟)的设计,多少心里有点甜美的感觉;而收获更大的是让我学到了怎样和他人合作完成一件任务,以及在完成的过程中如何沟通。同时感谢所有关心、帮助过我的老师、同学和朋友们。在课题进行到比较困难的时候,能给我提出宝贵的合理意见。没有你们的大力支持,我的课程设计也不可能这样顺利进行。参考文献1 张雄伟. dsp 芯片的原理与开发应用m . 北京:电子工业出版社,20002 林耀荣. 自适应滤波理论及其在回波消除中的应用研究. 广州:华南理工大学博士学位论文, 19993 赵洪亮等. tms320c55xdsp应用系统设计. 北京:北京航空航天大学出版社,20084 李绍胜,赵振涛. tms320c5000 系列dsp开发应用技巧m.北京:中国电力出版社,20075 朱铭锆,赵勇,甘泉. dsp应用系统设计 m.北京:电子工业出版社, 20026 郭华. 自适应滤波算法及应用研究. 西北师范大学硕士学位论文,20077 王秀红.自适应滤波算法研究与改进. 山东大学硕士学位论文, 2007附录(源程序清单)firlab.c/*/* firlab.c aic,mcbsp,dma initialization for fir lab filter */ /* goal: this code performs the following functions: */ /*- toggle the three leds on the dsk */*- setup aic (codec) parameters */* - initialize dma channel (ch2-input)*/ /*- turn on interrupts */*- run forever (waiting for dma interrupts to transfer data)*/* author: scott bland date: 03/20/2000*/*/*/* include files */ /*/#include #include #include #include #include #include #include #include timer.h#include #include /*/* function prototypes */ /*/void delay(s16 period);extern void dmac2isr();/*/* global variables */ /*/handle hhandset;unsigned int dmsefc, dmmcr, dmctr, src_addr, dst_addr;unsigned int dmpre, dmsrcp, dmdstp, dmidx0, dmidx1, dmfri0, dmfri1, dmgsa, dmgda, dmgcr, dmgfr;/* create specific data section for buffer (symbol, section_name) */#pragma data_section(inp_buffer,audio_buffer);int inp_buffer0x200;/* create specific data section for buffer (symbol, section_name) */#pragma data_section(out_buffer,outt_buffer);int out_buffer0x200;/* create specific data section for coeffiecients */#pragma data_section(coeffs,coefficients);/* low pass filter fs=16000 fc=4000hz*/ int coeffs16= -79, -136, 312, 654, -1244, -2280, 4501, 14655, 14655, 4501, -2280, -1244, 654, 312, -136, -79; /* high pass filter */ /int coeffs16=-120,5245,-3421,2451,-11216,40,-24657,29610,29610,-24657,40,-11216,2451,-3421,5245,-120; /* band pass filter */ /* int coeffs16=921,-2494,137,-3654,-2485,-2063,-9015,16165,16165,-9015,-2063,-2485,-3654,137,-2494,921; */* band stop filter */* int coeffs16=491,165,-2159,772,-6697,10044,648,12297,12297,648,10044,-6697,772,-2159,165,491; */ /* all pass filter */* int coeffs16 =32767,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0; */int highpass16=-848, -1129, -1496, -2000, -2754, -4053, -6980, -21279, 21279, 6980, 4053, 2754, 2000, 1496, 1129, 848; /* create specific data section for delay buffer */#pragma data_section(delaybuff,delayb);int delaybuff16=0; int delaybuff116=0;/* declare and initialize two variables for dmac isrs */int frame=0; int flag=0;int temp; int a,b;int bf10x3000=0;/* delayptr holds the address of the start of the delay buffer */int *delayptr1 = &(delaybuff0); int *delayptr2 = &(delaybuff10); interrupt void dmac2isr();/*/* main */ /*/void main() s16 cnt=2;a=8;b=6;/* these are the items that bios will set when we use it */ bscr = 0x8806; xpc = 0; pmst = 0xa0; brd_set_cpu_freq(100); timer_halt(0); brd_set_wait_states(7, 7, 9); timer_reset(0); imr=0;/禁止所有中断/* - */if(brd_init_bios() return;while(cnt-)brd_led_toggle(brd_led0);/切换led指示灯的显示状态delay(1000);brd_led_toggle(brd_led1);/切换led指示灯的显示状态delay(1000);brd_led_toggle(brd_led2);/切换led指示灯的显示状态delay(1000); /* open handset codec */ hhandset = codec_open(handset_codec); /* acquire handle to codec */* set codec parameters */ codec_dac_mode(hhandset, codec_dac_15bit); /* dac in 15-bit mode */ codec_adc_mode(hhandset, codec_adc_15bit); /* adc in 15-bit mode */ codec_ain_gain(hhandset, codec_ain_6db); /* 6db gain on analog input to adc */ codec_aout_gain(hhandset, codec_aout_minus_6db); /* -6db gain on analog output from dac */ codec_sample_rate(hhandset,sr_16000); /* 16khz sampling rate */* clear ifr */ intr_clr_flag(dmac2);/* reset all dma channels */ dma_reset_all();/* initialize dma channel 2 */ dmsefc = (dsync_revt1 12);/dma与mcbsp1接收事件同步 dmmcr = (autoinit_enable 15) | (dinm_enable 14) | (imod_halfblock 13) | (ctmod_dec 12) | (indexmode_nomod 8) | (space_data 6) | (indexmode_inc 2) | (space_data);/设置传输控制模式寄存器dmmcr/15bit autoinit_enable=1 使能自动初始化/14bit dinm_enable=1 根据imod位产生中断/13bit imod_halfblock=1 帧和块结束时都产生中断/12bit ctmod_dec=0 减量计数模式(多帧模式)/10-8bit indexmode_nomod=000 源地址模式no modify /7-6bit space_data=01 源地址空间为数据空间/4-2bit indexmode_inc=01 目的地址模式, 传输之后加/1-0bit space_data=01 目的地址空间为数据空间 dmctr = 0xff;/单元记数,期望传输数据减1 src_addr = drr1_addr(handset_codec);/将mcbsp1的接收寄存器设为源地址 dst_addr = (unsigned int) &inp_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高速公路广告施工合同(3篇)
- 事业单位合同履行过程中的审计与监督合同
- 2025国企公务员面试题及答案
- 金融科技公司股东间风险控制借款协议
- 存单质押担保贷款合同范本-@-1
- 注册不良资产处置公司并实现协议转让的深度合作协议-@-1
- 双方子女抚养及教育经费分配补充协议书
- 2025公务员面试题制作方案及答案
- 园林专业自考试题及答案
- 环杓关节脱位术后护理
- 2025贵州毕节市赫章县招聘城市社区工作者8人考试参考题库及答案解析
- 机械设计创新项目毕业报告模板
- 23G409先张法预应力混凝土管桩
- 全国计算机等级考试(二级)考试题库附完整答案(典优)
- 民航安全检查员(四级)理论考试题库(浓缩500题)
- 临床护理实践指南全本
- 拆墙协议书范本
- 下肢深静脉血栓及肺栓塞
- 河南省地图含市县地图矢量分层地图行政区划市县概况ppt模板
- 绩效管理全套ppt课件(完整版)
- 核电站安全ppt
评论
0/150
提交评论