基于dsp的语音采集与fir滤波器的设计与实现_第1页
基于dsp的语音采集与fir滤波器的设计与实现_第2页
基于dsp的语音采集与fir滤波器的设计与实现_第3页
基于dsp的语音采集与fir滤波器的设计与实现_第4页
基于dsp的语音采集与fir滤波器的设计与实现_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

基于DSP的语音采集与FIR滤波器的设计与实现摘要介绍了一种基于TMS320C5402的语音采集与FIR数字滤波器的设计与实现,采用TLC320AD50作为语音CODEC模块的核心器件,简述了FIR数字滤波器的特点,以及其在DSP上实现的原理。利用TMS320C5402对采集到的语音信号进行FIR滤波,该系统具有较强的数据处理能力和灵活的接口电路,能够满足语音信号滤波的要求,可以扩展为语音信号处理的通用平台关键词语音采集FIR滤波器TMS320C5402数字信号处理是把数字或符号表示的序列,通过计算机或专用处理设备,用数字的方式去处理,以达到更符合人们要求的信号形式。而语音处理是数字信号处理最活跃的研究方向之一,在IP电话和多媒体通信中得到广泛应用一个完备的语音信号处理系统不但要具有语音信号的采集和回放功能,还要能够进行复杂的语音信号分析和处理。通常这些信号处理算法的运算量很大,而且又要满足实时的快速高效处理要求,随着DSP技术的发展,以DSP为内核的设备越来越多,为语音信号的处理提供了优质可靠的平台软件编程的灵活性给很多设备增加不同的功能提供了方便,利用软件在已有的硬件平台上实现不同的功能已成为一种趋势。本文设计了一个语音处理系统,采用定点DSP芯片TMS320C5402作为CPU,完成对语音信号的采集和滤波处理1语音采集系统的设计11系统总体设计语音采集与处理系统主要包括3个主要部分以TMS320C5402为核心的数据处理模块以TLC320AD50为核心的语音采集与编解码CODEC模块用户根据需要扩展的存储器模块系统硬件结构如图1所示111CODEC模块本设计选用TLC320AD50以下简称AD50完成语音信号的A/D转换和D/A转换AD50是TI公司生产的一款集成有A/D和D/A的音频芯片,DSP与音频AD50连接后,可使用一个缓冲串行口来同时实现语音信号的采集和输出,从而可以节省DSP的硬件开销AD50使用过采样技术提供从数字信号到模拟信号和模拟信号到数字信号的高分辨率低速信号转换该器件包括2个串行的同步转换通道,分别用于各自的数据传输语音信号直接从AD50的模拟信号输入端输入,AD50对其进行采样,并将采样后的数据传送至DSPDSP应用相应的算法对数据进行处理,并将处理后的数据传送到AD50的D/A输入端AD50再对DSP处理后的数据进行数模转换,变为语音信号后输出到音响设备本系统中TLC320AD50与TMS320C5402之间采用串行通信,通过DSP芯片的MCBSP串口实现接口电路如图2所示112MCBSP的工作原理TMS320C5402有2个MCBSP多通道缓存串行口MCBSP提供了全双工的通信机制,以及双缓存的发送寄存器和三缓存的接收寄存器,允许连续的数据流传输,数据长度可以为8、12、16、20、24、32同时还提供了A律和L律压扩数据信号经DR和DX引脚与外设通讯,控制信号则由CLKX、CLKR、FSX、FSR等4个引脚来实现4CPU和DMA控制器可以读取DRR1,2的数据实现接收,并且可以对DXR1,2写入数据实现发送串行口控制寄存器SPCR1,2和引脚控制寄存器PCR用来配置串行口接收控制寄存器RCR1,2和发送控制寄存器XCR1,2用来设置接收通道和发送通道的参数采样率发生器寄存器SRGR1,2用来设置采样率TMS320C5402芯片串口控制寄存器功能强大,用户通过编程不但可以设置时钟信号的极性及输入输出方向,还可以设置同步信号的极性及输入输出方向113AD50与DSP的同步通信在应用中,将TLC320AD50C接至DSP的同步串口,并将TLC320AD50设置在主动工作模式下,即由TLC320AD50提供帧同步信号和移位时钟,TMS320C5402的管脚电压为33V,可以与AD50直接相连串口的移位时钟SCLK由AD发出,串行数据在SCLK的驱动下经DIN、DOUT移进、移出,在SCLK的下降沿采样DIN数据,在SCLK下降沿送出数据到DOUTXF控制首次或二次通信,XF为低时是AD50的首次通信,是正常的AD、DA的数据XF为高时是AD50的二次通信,这时可以读写AD50的4个寄存器进入二次通信有软件的方法,即把AD50设为151位数据模式,最后一位标记下一个数据是否为二次通信数据,1表示是,0表示否一次通信格式的16位都用来传输数据DAC的数据长度由寄存器1的D0位决定启动和复位时,默认值为151模式,最后一位要求二次通信如果工作在16位传输模式下,则必须由FC产生二次通信请求二次通信格式则用来初始化和修改TLC320AD50C内部寄存器的值在二次通信中可通过向DIN写数据来完成初始化二次通信格式如图3所示,D131表示读DIN的数据,D130表示向DIN写数据系统复位后,必须通过DSP的DX接口向TLC320AD50C的DIN写数据,因为采用一片TLC320AD50C,只需初始化寄存器1、寄存器2、寄存器4由于通信数据长度为16位,初始化是应通过RCR1和XCR1设置MCBSP的传输数据长度为162语音采集语音信号的采集,是通过话筒经模拟放大输入到AD50,AD50作相应的低频滤波并进行A/D转化,再通过MCBSP通道输入DSP芯片语音信号采集程序包括以下几个部分1DSP初始化对DSP的寄存器以及缓冲串口进行初始化2AD50初始化通过DSP的缓冲串口和XF引脚对AD50进行初始化,再设置AD50的4个控制寄存器确定AD50的4个控制寄存器设置正确后,AD50才能开始采集数据此时,可以用示波器检测AD50的DOUT引脚,能发现引脚是否有连续的信号输出3设置DSP的中断,从缓冲串口读取数据如果此时在缓冲串口连续读取数据,就可以在仿真软件CCS中查看读取的数据是否正确4DSP存放数据可以将缓冲串口读取的数据存放到DSP的RAM单元,连续存放,可通过CCS的图形显示功能判断AD50采样的数据是否正确3语音滤波语音去噪在语音信号上应用较多,在实质上和普通的数字信号去噪没有什么区别,使用滤波器和各种算法均可以实现语音信号的去噪,使得含有噪声的信号更加清晰但语音信号的去噪和一般的数字信号去噪又存在着很大的差别,因为语音信号的频谱覆盖在100HZ34KHZ,较为丰富的信号主要集中在1KHZ附近,所以一般的滤波去噪时必须考虑语音信号的自身特征本系统中应用的AD50内置了低通滤波器,可以通过设置来有效滤除信号中混杂的高频干扰信号,而对于低于100HZ的干扰信号,则无能为力因此,要用DSP进行编程设计一个软件可实现高通滤波器,由处理器来完成信号的去噪,采用FIR滤波31FIR滤波器的基本结构及特点有限冲激响应FIR滤波器的基本结构是一个分节的延时线,把每一节的输出加权累加,得到滤波器的输出数学上表示为YNEN1N0HNXNM,0NN11对1式进行Z变换,整理后可得出FIR滤波器的传递函数为HZEN1N0HNZN,0NN12由2式可知FIR滤波器的一般结构如图1所示图1FIR数字滤波器直接实现形式32FIR滤波器的DSP实现原理由1式可知,FIR滤波器的冲激响应为H0,H1,HN1XN表示滤波器在N时刻的输入,则N时刻的输出为YNH0XNH1XN1,HN1XNN1,这是一个乘、加的过程,可以使用DSP中的MAC指令实现该运算图2说明了使用循环寻址实现FIR滤波器的方法为了能正确使用循环寻址,必须先初始化BK,块长为N同时,数据缓冲区和冲激响应FIR滤波器的系数的开始地址必须是大于N的2的最小幂的倍数例如,当N11时,大于N的最小2的幂为16,则数据缓冲区的第一位地址应该是16的倍数,因此数据缓冲区起始地址的最低4位必须是0在图2中,滤波系数指针初始化时指向HN1,经过一次FIR滤波计算后,在循环寻址的作用下,仍然指向HN1而数据缓冲区指针指向的是需要更新的数据,如XN在写入新数据并完成FIR运算后,该指针指向XNN1,所以,使用循环寻址可以方便地完成滤波窗口数据的自动更新4FIR滤波器设计实例给定FIR数字带通滤波器的技术指标为2个通带截止频率分别为4KHZ和6KHZ,2个阻带截止频率分别为3KHZ和7KHZ,采样频率均为25KHZ输入为一个混合信号FCOS2000PTCOS10000PTCOS20000PT/6,利用MATLAB设计FIR带通滤波器的系数,将得到的滤波器系数乘以32768即215后舍尾取整可得DSP中滤波器系数列表用WORD汇编命令将各滤波器系数直接输入到DSP程序中模拟输入数据由C语言程序实现,然后用COPY命令将C语言程序生成的数据文件FIRINPUT拷贝到DSP程序中DSP程序实现读入数据、滤波、显示波形等方面的任务完成FIR滤波器的程序框图如图3所示,可知FIR滤波器的DSP实现主要由以下4方面的内容组成41模拟输入数据的生成用C语言程序生成输入数据,通过COPY汇编命令将生成的数据文件拷贝到汇编程序中,作为FIR滤波器的输入数据C语言程序运行后所生成的数据文件名为FIRINPU,T生成FIRINPUT数据文件的C语言程序如下所示INCLUDE“STDIOH“INCLUDE“MATHH“MAININTIDOUBLEF256FILEFPIFFPFOPEN“EFIRINPUT“,“WT“NULLPRINTF“CANCTOPENFILEN“FORI0I255IFICOS2314159265I1000/25000COS2314159265I5000/25000COS2314159265I10000/25000/6FPRINTFFP,“WORDLDN“,LONGFI32768FCLOSEFP42DSP初始化程序DSP初始化程序包括了对堆栈指针SP、软件等待状态寄存器SWWSR、中断寄存器IFR、中断屏蔽寄存器IMR以及处理器工作状态寄存器PMST的初始化另外还对各变量赋值,具体的程序如下DEF_C_INT00MMREGSSWCRSET2BHT_AR2SET066HT_AR3SET067HOUT_WAVE_BUFSET0D00HDATA_INSET0F00HNSET51FIR_COEF_BUFSET100HFIR_DATASET200HTEXTRSB_C_INT00_C_INT00STM2020H,PMSTSSBXINTMSSBXSXMSSBXFRCTSTM10H,26HSTM10H,36HSTM0FFH,SPLD0,DPSTM0FFFFH,IFRSTM20H,IMRSTM02492H,SWWSRSTM0,SWCR可看出,FIR滤波器的系数列表将存在100H开始的单元中,输入数据将存在200H开始的单元中,而输出数据将存在0D00H开始的单元中43滤波系数以及输入数据的调入由于滤波器系数一开始是存在程序存储器中,输入数据则是存在程序外的文件中,程序对这2组数据进行处理时,需要把两者都调到数据存储器中,具体实现程序如下STMFIR_DATA,AR6RPT255MVPDINPU,TAR6STMFIR_COEF_BU,FAR6RPTN1MVPDFIR_COE,FAR6STMFIR_COEF_BU,FT_AR2STMFIR_DATA,T_AR3这段程序实现的是把输入数据调到以200H开始的单元,而把滤波系数调到从100H开始的单元44滤波子程序一次滤波的过程实质上就是对2组数进行有规律的乘加计算,具体程序如下FIRMVDMT_AR2,AR2将起始滤波系数地址100H赋给AR2MVDMT_AR3,AR5将起始输入数据地址200H赋给AR5STMDATA_IN,AR3AR30F00HSTM255,BRC定义块循环次数RPTBDLOOP1定义块循环结束地址STMN,BK定义循环缓冲器大小LDAR5,A将新数据读到累加器A中STLA,AR3将新数据读入栈顶RPTZA,N1定义循环次数,之前先将A累加器清0MACAR20,AR30,AAAR2AR3A,每完成一次计算AR2、AR3指针所对应地址1STHA,AR6将计算结果保存输出LOOP这个程序段将重复执行256次,从而实现对于数据的读入、处理、输出等功能5结语本文介绍了一个实时数据采集处理系统的设计和实现,系统以DSP芯片和TLC320AD50芯片为核心,有很强的数据处理能力和灵活的外围接口电路,实验证明,可较好地实现语音的滤波该系统可扩展为3G手机语音识别系统,也可以作为语音信号处理算法研究

温馨提示

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

评论

0/150

提交评论