




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子与信息工程学院DSP综合实验报告系(学院) :电子与信息工程学院专业班级 :姓名 :学号 :题目 :语音信号采集与回放指导老师 : 2010年6月28日目录: 概述 一.总体设计方案 1.1总框图 1.2 DSP 芯片 1.3A/D转换器与D/A转换器 1.3.1 D/A转换器DAC0832的介绍 1.3.2 A/D转换器DA574的介绍 1.4高增益放大器(UA741) 1.5高频功率放大器(LM386) 1.6带通滤波器 二.硬件电路设计 2.1总输入电路2.2总输出电路 2.3语音输入与语音输出电路 三.程序设计 四.设计总结 五.附件 概述 语音处理应用数字信号处理技术和微电子技术,在语音识别、语音编码等方面获得了极大成功。现代DSP技术的发展提高了数字信号高速运算与同步处理的能力,更推进了语音处理技术的发展。数字信号处理技术通过计算机或专用处理设备,对信号进行分析、合成、变换、滤波、压缩、识别等加工处理,以便提取有用的信息并进行有效的传输与应用,以达到更符合人们要求的信号形式。数字信号处理的实现是用硬件、软件或软硬结合的方法来完成,最普遍的方法是用通用的可编程DSP芯片构建硬件平台,通过软件编程实现特定的系统功能。数字信号处理器(DSP)是一种具有特殊结构的微处理器,其DSP内核是高速的CPU,再配上用户所需的存储器和外设等组成系统,可以用来快速地实现语音信号处理的各种算法。本文结合TMs32OVc5402处理器适合语音信号处理的特点和实践应用,配合外围电路,构成音频采集、处理和播放语音系统,成功实现语音信号的采集与回放,并进行了数字语音回声制作。一 总体设计方案介绍1.1总体框图TMS320VC5402TMS320AIC23BA/D转换器D/A转换器带通滤波LM386UA741信号输出扬声器话筒信号输入1.2 DSP 芯片 数字信号处理芯片(digital signal proeessors 简称DSP)诞生于20 世纪70 年代,专门为实时数字信号处理而设计的一种可编程的嵌入式微处理器2。它以数字器件特有的稳定性,可重复性,可编程性和易于实现自适应处理特点,取得了突飞猛进的发展。近年来,随着DSP 性能的日趋完善,功耗的逐步降低,开发环境的不断改进以及价格的不断下调,其应用领域已拓展到国民经济生活的各个方面. 在通用的微处理器中,乘法由软件完成的,即通过加法和移位实现,需要多个指令周期才能完成。而DSP 芯片中有专用的硬件乘法器,使得乘法累加运算速度大大提高。在DSP 的指令系统中,提供了一些特殊的DSP 指令。例如,TMS320C54x 中FIRS 和LMS 指令专门用于系数对称的FIR 波器和LMS 算法。所以在相同的时钟频率和芯片集成度下,DSP完成FFT 算法的速度比通用微处理器要快2 一3 个数量级。 早期的微处理器内部大多采用冯诺依曼(VonNeuman)结构,其特点是数据和程序公用总线和存储空间,因此在某一个时刻,只能读写程序或者只能读写数据。因此即使是执行单条指令也要耗费几个甚至几十个周期。哈佛结构是不同于传统的冯诺曼结构的并行体系结构,其主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编址,独立访问,即程序指令和数据的存取空间分开,各有自己的程序总线和数据总线。这样处理器可以同时处理数据和程序,大大地提高了处理器的处理能力。与哈佛结构相关,DSP 芯片广泛采用流水线以减少指令执行时间,从而增强了处理器的处理能力。TMS320 系列处理器的流水线深度从2-6 级不等,即处理器可以并行处理2-6条指令,每条指令处于流水线的不同阶段。例如,一个四级流水线操作中,DSP 执行一条指令,需要通过取指、译码、去操作和执行四个阶段,在程序运行过程中这几个阶段是重叠的,在每个指令周期内,四个不同的指令处于不同的阶段。从而可以加快运行速度。 本方案主要采用TMS320VC5402 与TMS320AIC23B 这两款芯片,TMS320VC5402 是一款专用于语音信号处理的定点型DSP1,TMS320AIC23B 同样是TI 推出的一款语音芯片,两者兼容性良好,数据交换速度快,程序较少跑飞,而且价格合理。对于DSP 初学者来说易于掌握,使用方便,是一个不错的选择,经过慎重的较比后,决定选用此方案。 作为DSP 家族高性价比代表的16 位定点DSP 芯片,VC5402 适用于语音通信等实时嵌入应用场合。与其它C54X 芯片一样,VC5402 具有高度灵活的可操作性和高速的处理能力。其性能特点如下(1)操作速率可达100MIPS;(2)具有先进的多总线结构,(3)三条16位数据存储器总线和一条程序存储器总线;(4)40 位算术逻辑单元(ALU),包括一个40位桶形移位器和两个40 位累加器;(5)一个17x17 乘法器和一个40 位专用加法器,允许16 位带/不带符号数的乘法: (6) 整图合维特比加速器,用于提高维特比编译码的速度; (7)单周期正规化及指数译码;(8)8 个辅助寄存器及一个软件栈,允许使用业界最先进的定点DSPC 语言编译器; (9)数据/程序寻址空间为IMxx6bit 内置4Kx16bitROM 和16k 又16bitRAM:(10)内置可编程等待状态发生器锁相环(PLL)时钟产生器、两个多通道缓冲串口、一个与外部处理器通信的8位并行HPI 口、两个16 位定时器以及6 通道DMA 控制器且低功耗4。与C54X 系列的其它芯片相比,5402 具有高性能、低功耗和低价格等特点。它采用6级流水线,且当RPT(重复指令)时,一些多周期的指令就变成了单周期的指令;芯片内部RAM 和ROM 可根据PMsT 寄存器中的ovLY 和DROM 位灵活设置。这些都有利于算法的优化。TMS320VC5402 主要片内外设包括:软件可编程状态发生器和分区转换逻辑单元增强的8 位主机接口Hpl(Hpl 一8)两个多通道带缓冲串行接口(McBSP)两个定时器一个带锁相环(PLL)的时钟发生器一个直接存储器访问(DMA)控制器TLV320AIC23B(以下简称AIC23)是TI 推出的一款高性能的立体声音频Codec 芯片,内置耳机输出放大器,支持MIC 和LINE IN 两种输入方式(二选一)。AIC23 的模数转换(ADCs)和数模转换(DACs)部件高度集成在芯片内部,采用了先进的Sigmadelta 过采样技术,可以在8K 到96K 的频率范围内提供16bit、20bit、24bit 和32bit 的采样,ADC 和DAC 的输出信噪比分别可以达到90dB 和100dB。1.3 A/D转换器与D/A转换器 1.3.1 D/A转换器DAC0832的介绍主要性能指标数字化语音信号存储与回放系统设计:分辨率,通常将输入数字量的最低有效位LSB变化1时所引起的输入电压的变化V称为分辨率,即V=Vm/2,式中,Vm为输出电压的满度值;n为D/A转换器的二进制数的位数。建立时间,当DAC输入数字量发生变换时,输出模拟电压也随之改变,但输出电压变化到稳定值时相对于输入数字量的变化有一段延迟时间,这段延迟时间就称为建立时间,用ts表示。建立时间越短,DAC的转换速度越块。通常用转换时间来反映建立时间,如DAC0832的转换速度为100ns,DAC0832的转换速度为0.1ms。转换误差,转换误差可以用绝对误差或相对误差r来表示。绝对误差是指DAC的输入端加有固定的数字代码时,实际测得模拟输出值理论值之间的差。相对误差r是指绝对误差与满度值之比,常用百分数表示。电源抑制比,DAC的输出电压的变化量与相对应的电源电压变化量之比定义为电源抑制比。要求电源电压发生变化时,对输出电压的影响越小越好。 1.3.2 A/D转换器DA574的介绍AD574 的特点及功能AD574 是AD 公司生产的12 位逐次逼近型ADC , 它的转换速度为25s , 转换精度为0. 05 % , 可广泛应用在数据采集系统中。由于AD574 芯片内有三态输出缓冲电路, 因而可直接与单片机的数据总线相连, 而无须附加逻辑接口电路。1.4高增益放大器(UA741) 高增益放大器是uA741M,uA741I,uA741C(单运放),用于军事,工业和商业应用.这类单片硅集成电路器件提供输出短路保护和闭锁自由运作。 这些类型还具有广泛的共同模式,差模信号范围和低失调电压调零能力与使用适当的电位。uA741M,uA741I,uA741C芯片引脚和工作说明:1和5为偏置(调零端),2为正向输入端,3为反向输入端,4接地,6为输出,7接电源 8空脚 电路图: 1.5高频功率放大器(LM386)LM386是一种音频集成功放,具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点的功率放大器,广泛应用于录音机和收音机之中。静态功耗低,约为4mA,可用于电池供电。 工作电压范围宽,4-12V or 5-18V。 外围元件少。 电压增益可调,20-200。 引脚图低失真度。 LM386是美国国家半导体公司生产的音频功率放大器,主要应用于低电压消费类产品。为使外围元件最少,电压增益内置为20。但在1脚和8脚之间增加一只外接电阻和电容,便可将电压增益调为任意值,直至 200。输入端以地位参考,同时输出端被自动偏置到电源电压的一半,在6V电源电压下,它的静态功耗仅为24mW,使得LM386特别适用于电池供电的场合。 LM386的封装形式有塑封8引线双列直插式和贴片式。 1.6、带通滤波器这种滤波器电路的作用是只允许在某一个同频带范围内的信号通过,而比通频带下限频率低和比上限频率高的信号都被阻断,典型的带通滤波器可以从二阶低通电路中将其中一级改为高通而成。二 硬件电路设计2.1 总输入电路(自行总结设计)从左到右各部分电路为:话筒,开关,语音输入电路,UA741高增益放大电路,有源二阶带通滤波器。2.2 总输出电路(自行总结设计)从左到右各部分电路为:LM386高频功率放大器及其外围器件连接电路,语音输出电路,开关,扬声器。 2.3语音输入与语音输出电路语音输入电路 语音输出电路 语音信号通道包括模拟输入和模拟输出两个部分。模拟信号的输入输出电路如图 所示。上图中MICBIAS 为提供的麦克风偏压,通常是3/4 AVDD,MICIN为麦克风输入,可以根据需要调整输入增益。下图中LLINEOUT 为左声道输出,RLINEOUT为右声道输出。用户可以根据电阻阻值调节增益的大小,使语音输入输出达到最佳效果。从而实现良好的模拟语音信号输入与模拟信号的输出。三 程序设计语音采集与回放:extern void InitC5402(void);extern void OpenMcBSP(void);extern void CloseMcBSP(void);extern void READAD50(void);extern void WRITEAD50(void);/* Main Function Program*/ #include stdio.h #include math.h #define pi 3.1415926 void main(void)int k=0;int x_ad,y_da;int *px = (int*)0x3000;int *py = (int*)0x3100;/for ( ; ; )InitC5402(); /* initialize C5402 DSP */OpenMcBSP(); for ( ; ; ) / for (j=0; j=4; j+) READAD50();px = (int*)(0x3000);x_ad = *px; y_da = x_ad; py = (int*)(0x3100); *py = y_da; WRITEAD50();k+; /*void PROCESSING(void)do the necessery operations here!*/ Asm文件:.global _InitC5402 .global _OpenMcBSP.global _CloseMcBSP .global _READAD50 .global _WRITEAD50.include MMRegs.h_InitC5402:NOPLD #0, DP ; reset datapage pointerSTM #0, CLKMD ; software setting of DSP clockSTM #0, CLKMD ; (to divider mode before setting)TstStatu1: LDM CLKMD, A AND #01b, A ;poll STATUS bit BC TstStatu1, ANEQSTM #0xF7ff, CLKMD ; set C5402 DSP clock to 10MHz* STM #0x4007, CLKMD ; set C5402 DSP clock to 100MHz; (based on DSK crystal at 20MHz)* Configure C5402 System Registers *STM #0x2000, SWWSR ; 2 wait cycle for IO space &; 0 wait cycle for data&prog spacesSTM #0x0000,BSCR ; set wait states for bank switch:; 64k mem bank, extra 0 cycle between; consecutive prog/data read;STM #0x1800,ST0 ; ST0 at default setting;STM #0x2900,ST1 ; ST1 at default setting(note:INTX=1);STM #0x00A0,PMST ; MC mode & OVLY=1, vectors at 0080h* Set up Timer Control Registers *STM #0x0010, TCR ; stop onchip timer0STM #0x0010, TCR1 ; stop onchip timer1; Timer0 is used as main loop timer;STM #2499, PRD ; timer0 rate=CPUCLK/1/(PRD+1); =40M/2500=16KHz* STM #6249, PRD ; if CPU at 100M/6250=16KHz * Initialize McBSP1 Registers *STM SPCR1, McBSP1_SPSA ; register subaddr of SPCR1STM #0000h, McBSP1_SPSD ; McBSP1 recv = leftjustify; RINT generated by frame syncSTM SPCR2, McBSP1_SPSA ; register subaddr for SPCR2; XINT generated by frame syncSTM #0000h, McBSP1_SPSD ; McBSP1 Tx = FREE(clock stops; to run after SW breakpointSTM RCR1, McBSP1_SPSA ; register subaddr of RCR1STM #0040h, McBSP1_SPSD ; recv frame1 Dlength = 16 bitsSTM RCR2, McBSP1_SPSA ; register subaddr of RCR2 STM #0040h, McBSP1_SPSD ; recv Phase = 1; ret frame2 Dlength = 16bitsSTM XCR1, McBSP1_SPSA ; register subaddr of XCR1STM #0040h, McBSP1_SPSD ; set the same as recvSTM XCR2, McBSP1_SPSA ; register subaddr of XCR2STM #0040h, McBSP1_SPSD ; set the same as recvSTM PCR, McBSP1_SPSA ; register subaddress of PCRSTM #000eh, McBSP1_SPSD ; clk and frame from external (slave); FS at pulsemode(00)* Finish DSP Initialization *STM #0x0000, IMR ; disable peripheral interruptsSTM #0xFFFF, IFR ; clear the intrupts flagsRET ; return to mainNOPNOP * Waiting for McBSP0 RX Finished *IfRxRDY1:NOPSTM SPCR1, McBSP1_SPSA ; enable McBSP1 RxLDM McBSP1_SPSD, AAND #0002h, A ; mask RRDY bitBC IfRxRDY1, AEQ ; keep checkingNOPNOPRET ; returnNOPNOP* Waiting for McBSP0 TX Finished *IfTxRDY1:NOPSTM SPCR2, McBSP1_SPSA ; enable McBSP1 TxLDM McBSP1_SPSD, AAND #0002h, A ; mask TRDY bitBC IfTxRDY1, AEQ ; keep checking NOPNOPRET ; returnNOPNOP*_OpenMcBSP:rsbx xfcall waitNOPSTM SPCR1, McBSP1_SPSA ; enable McBSP0 RX for ADC data inLDM McBSP1_SPSD,AOR #0x0001, ASTLM A, McBSP1_SPSDSTM SPCR2, McBSP1_SPSA ; enable McBSP0 TX for DTMF outLDM McBSP1_SPSD,AOR #0x0001, ASTLM A, McBSP1_SPSDLD #0h, DP ; load data page 0rpt #23NOP ssbx xfNOPNOP;CALL IfTxRDY1;STM #0x0101, McBSP1_DXR1;CALL IfTxRDY1;STM #0x0208, McBSP1_DXR1;rsbxxf; NOP;NOP CALL IfTxRDY1STM #0x0001, McBSP1_DXR1;request secondary communicationNOPCALL IfTxRDY1 STM #0100h, McBSP1_DXR1;write 00h to register 1CALL IfTxRDY1STM #0000h, McBSP1_DXR1 NOPNOPrpt #20hnop CALL IfTxRDY1STM #0x0001, McBSP1_DXR1;request secondary communicationCALL IfTxRDY1 STM #0200h, McBSP1_DXR1;write 00h to register 2 CALL IfTxRDY1STM #0000h, McBSP1_DXR1 CALL IfTxRDY1STM #0x0001, McBSP1_DXR1;request secondary communicationCALL IfTxRDY1 STM #0300h, McBSP1_DXR1;write 00h to register 3CALL IfTxRDY1STM #0000h, McBSP1_DXR1 CALL IfTxRDY1STM #0x0001, McBSP1_DXR1;request secondary communicationCALL IfTxRDY1 STM #0490h, McBSP1_DXR1;write 00h to register 4;bypass internal DPLL;and select the Sample Frequency CALL IfTxRDY1STM #0000h, McBSP1_DXR1 ;CALL IfTxRDY1;STM #0x0001, McBSP1_DXR1;CALL IfTxRDY1;STM #0102h, McBSP1_DXR1 ;enable digital loopback ;CALL IfTxRDY1;STM #0x0001, McBSP1_DXR1;CALL IfTxRDY1;STM #0208h, McBSP1_DXR1 ;enable analog loopbackRETNOPNOP *_CloseMcBSP:STM SPCR1, McBSP1_SPSA ; disable McBSP0 RXLDM McBSP1_SPSD,AAND #0xFFFE, ASTLM A, McBSP1_SPSDSTM SPCR2, McBSP1_SPSA ; disable McBSP0 TXLDM McBSP1_SPSD,AAND #0xFFFE, ASTLM A, McBSP1_SPSDRPT #5RETNOPNOP_READAD50:stm0x00ff,ar3stm0x3000,ar2loopa:CALL IfRxRDY1ldm McBSP1_DRR1,bstl b,*ar2+; banz loopa,*ar3- nopnop retnopnop_WRITEAD50:stm0x00ff,ar3stm0x3100,ar2loopb:CALL IfTxRDY1 ldu*ar2+,Band #0fffeh,b ;mask the LSBstlm B, McBSP1_DXR1;banzloopb,*ar3-nopnopretnopnop wait: stm 20h,ar3loop1: stm 020h,ar4loop2:banz loop2,*ar4-banz loop1,*ar3-ret nopnopnopnop.endA/D模块:xtern void InitC5402(void);extern void OpenMcBSP(void);extern void CloseMcBSP(void);extern void READAD50(void);/* Main Function Program*/void main(void)InitC5402(); /* initialize C5402 DSP */OpenMcBSP(); 初始化串口和AD50Cwhile (1)READAD50(); /*mainloop */读取数据 D/A模块:extern void InitC5402(void);extern void OpenMcBSP(void);extern void CloseMcBSP(void);extern void WRITEAD50(void);/* Main Function Program*/void main(void) InitC5402(); /* initialize C5402 DSP */OpenMcBSP();while (1)WRITEAD50(); /* mainloop */ 四设计总结本DSP 语音信号采集与处理回纺的设计包括了总体方案论证、硬件设计、软件设计、调试与撰写论文等主要部分。(1).总体方案论证包括应用SPCEO61A 单片机实现本系统、应用TMS320VC5416 与CPLD实现和基于VC5402 与AIC23 实现。在方案论证过程中,遇到最大的困难是:在选用芯片时考虑到性能、价格、便捷性以及可扩展性等方面,在同组同学的多方考究与论证后,综三个方案的各个要素,最后决定选用VC5402 与AIC23 芯片,再加上外围接口的扩展来实现整个系统的设计。从性能、价格、便捷性以及可扩展性等方面考虑,此方案可行,而且对于DSP 初学者来说,起到很好的入门引导与加深认识的作用。(2).本课题设计的重点难点在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 抗凝治疗实施过程中的安全保障
- 导尿管安全置入与护理规范
- 皮肤护理中的感染预防策略
- 2025年农艺工《动物、家畜繁殖学》专业技能知识考试题库与答案
- 无菌技术在护理中的安全应用
- 心脏病患者的饮食护理指导查房
- 输液反应处理的应急护理方案
- 广西十一月联考数学试卷
- 2025年吉林省安图县事业单位公开招聘辅警考试题带答案分析
- 巨变时代的组织管理课件
- 2025年广西中考英语真题含答案
- 2025年上半年财务工作总结模版
- 中医适宜技术-中药热奄包
- GB/T 1303.4-2009电气用热固性树脂工业硬质层压板第4部分:环氧树脂硬质层压板
- GB/T 12807-2021实验室玻璃仪器分度吸量管
- 装饰装修工程-工程施工设计方案
- 深静脉置管(PICC)常见并发症预防及处理课件
- 【线性代数自考练习题】山东医学高等专科学校专升本真题汇总(附答案解析)
- 医院管理案例-智慧后勤助力医院后勤管理转型
- 企业应急管理及能力提升培训课件精选
- 杭州网约车从业资格考试题库与答案
评论
0/150
提交评论