语音信号低通滤波器dsp课程设计_第1页
语音信号低通滤波器dsp课程设计_第2页
语音信号低通滤波器dsp课程设计_第3页
语音信号低通滤波器dsp课程设计_第4页
语音信号低通滤波器dsp课程设计_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

科信学院DSP原理与应用

课程设计说明书(2019/2020学年第一学期)题目:语音信号低通滤波设计专业班级:通信1621 学生姓名:张青圆武杰刘万庆李振家王见宇学号:168312113168312115168312116168312119168312124指导教师:王鹏、付佳、任丹萍设计周数:2周设计成绩: 2020年1月5日TOC\o"1-5"\h\z设计目的 1设计要求 1设计方案 1系统总体方案 1相关工作原理 2FIR滤波器的原理 2语音编解码芯片TLV320AIC23原理 3开发板环境 4设计过程 4硬件实现 4MATLA酬境设计 4软件实现 5CCS开发环境配置 5仿真结果 7设计总结与体会 9参考文献 9附录源程序 10x113Jmf.iM:-Jide-hqJl»pjbCliba.

_|〕用曰的一iJGbWjf加心tICifid-reL«iiFi.lab图14仿真结果图-nind,s就^回b怪|明融以Ej9-1■Ih回ueUC需g)*1b图14仿真结果图设计总结与体会在这次课程设计中,我了解到了数字滤波是信号处理技术中的重要部分 ,研究了数字滤波器的基本理论知识以及它实现方法。学习了数字滤波器的结构、设计理论 ,掌握了各种数字滤波器的原理和特性。并且复习了MATLAB的相关知识,并且利用MATLAB与CCS设计了低通滤波器,还研究了如何.在定点DSP中实现数字滤波器的算法,掌握了CCS环境下的程序开发方法、调试工具的使用及优化级别的选择等。 学会利用MATLAB软件编程实现FIR滤波器设计。利用DSP来快速设计FIR数字滤波器的方法。在今后的工作和学习生活中 ,综合运用模拟电子、数字电子和 DSP基本原理等课程中所学的理论知识去独立完成一个项目的设计。不仅要完善以上的MATLAB设计方法,更要学会利用多种途径设计各种 DSP最小系统,熟练C语言编程。参考文献【1】戴明桢等编著.TMS320C54XDSP结构原理及应用,北京:航空航天大学出版社,第2版,2007。【2】 彭启琮编著.DSP技术的发展与应用.北京:高等教育出版社,2002。【3】 胡广书编著.数字信号处理理论、算法与实现 .北京:清华大学出版社,2005。【4】 王秀芳,关凌涛.基于MatLab与DSP的滤波器的快速设计方法[期刊文章].现代计算机,2008。【5】 郑红.TMS320C54XDSP应用系统设计[M].北京:北京航空航天大学出版社,2002年。附录源程序主程序#include"5509.h"#include"util.h"#include"audio.h"voidAIC23_Write(unsignedshortregaddr,unsignedshortdata){unsignedcharbuf[2];buf[0]=regaddr;buf[1]=data;I2C_Write(I2C_AIC23,2,buf);}voidMcBSP0_InitSlave(){PC55XX_MCSPpMCBSP0=(PC55XX_MCSP)C55XX_MSP0_ADDR;//PuttheMCBSPinresetWrite(pMCBSP0->spcr1,0);Write(pMCBSP0->spcr2,0);//Configframeparameters(32bit,singlephase,nodelay)Write(pMCBSP0->xcr1,XWDLEN1_32);Write(pMCBSP0->xcr2,XPHASE_SINGLE|XDATDLY_0);Write(pMCBSP0->rcr1,RWDLEN1_32);Write(pMCBSP0->rcr2,RPHASE_SINGLE|RDATDLY_0);//Disableintframegenerationandenableslavew/extframesignalsonFSX//Framesyncisactivehigh,dataclockedonrisingedgeofclkxWrite(pMCBSP0->pcr,PCR_CLKXP);//BringtransmitterandreceiveroutofresetSetMask(pMCBSP0->spcr2,SPCR2_XRST);SetMask(pMCBSP0->spcr1,SPCR1_RRST);}voidAIC23_Init()I2C_Init();//ResettheAIC23andturnonallpowerAIC23_Write(AIC23_RESET_REG,0);AIC23_Write(AIC23_POWER_DOWN_CTL,0);AIC23_Write(AIC23_ANALOG_AUDIO_CTL,ANAPCTL_DAC|ANAPCTL_INSEL);//使用麦克风音源AIC23_Write(AIC23_DIGITAL_AUDIO_CTL,0);//TurnonvolumeforlineinputsAIC23_Write(AIC23_LT_LINE_CTL,0x000);AIC23_Write(AIC23_RT_LINE_CTL,0x000);//ConfiguretheAIC23formastermode,44.1KHzstereo,16bitsamples//Use12MHzUSBclockAIC23_Write(AIC23_DIGITAL_IF_FORMAT,DIGIF_FMT_MS|DIGIF_FMT_IWL_16|DIGIF_FMT_FOR_DSP);AIC23_Write(AIC23_SAMPLE_RATE_CTL,SRC_SR_44|SRC_BOSR|SRC_MO);//TurnonheadphonevolumeanddigitalinterfaceAIC23_Write(AIC23_LT_HP_CTL,0x07f); //0x79forspeakersAIC23_Write(AIC23_RT_HP_CTL,0x07f);AIC23_Write(AIC23_DIG_IF_ACTIVATE,DIGIFACT_ACT);//SetMcBSP0tobetransmitslaveMcBSP0_InitSlave();}voidAIC23_Disable(){PC55XX_MCSPpMCBSP0=(PC55XX_MCSP)C55XX_MSP0_ADDR;I2C_Disable();//PuttheMCBSPinresetWrite(pMCBSP0->spcr1,0);Write(pMCBSP0->spcr2,0);}floatfirlpf(floatxn[48],floathn[48])inti;floatsum=0;for(i=0;i<48;i++){sum=sum+xn[i]*hn[47-i];}returnsum;}#defineAUTIODATALEFT0x0d000#defineAUTIODATARIGHT0x17000int*pAudioLeft,*pAudioRight;intwww=0;floatleftfft[48]={0};voidAIC23_Mixer(){PC55XX_MCSPpMCBSP0=(PC55XX_MCSP)C55XX_MSP0_ADDR;intleftaudio;floatrightaudio;int*pl,*pr,nAudioCount;inti;pAudioLeft=pl=(int*)AUTIODATALEFT;pAudioRight=pr=(int*)AUTIODATARIGHT;nAudioCount=0;while(1){while(!ReadMask(pMCBSP0->spcr2,SPCR2_XRDY));//等待数据传输完成(*pl)=leftaudio=Read(pMCBSP0->ddr1); //读入左声道数据rightaudio=16*firlpf(leftfft,hn); //40db 调用滤波程序计算当前输出(*pr)=(int)rightaudio; // 将右声道数据载入数组 pAudioRightWrite(pMCBSP0->dxr1,leftaudio); // 将原始数据送左声道输出//Write(pMCBSP0->dxr1,*pr); // 将原始数据送左声道输出

Write(pMCBSP0->dxr2,*pr);//将经过滤波后的数据送右声道输出nAudioCount++;pl++;pr++;//循环使用缓冲区if(nAudioCount>=1024)nAudioCount=0;Write(pMCBSP0->dxr2,*pr);//将经过滤波后的数据送右声道输出nAudioCount++;pl++;pr++;//循环使用缓冲区if(nAudioCount>=1024)nAudioCount=0;//breakpointpl=pAudioLeft;pr=pAudioRight;leftfft[47]=(float)leftaudio/16;//防止滤波时数据溢出for(i=0;i<47;i++)//重新调整输入序列 (供firlpf使用)leftfft[i]=leftfft[i+1];子程序#include<math.h>#include"tms320.h"#include"dsplib.h"#defineNX48#defineNH48floathn[48]=loathn[48]=-0.0011,-0.0009,-0.0006,0.0001,0.0011,0.0025,0.0040,0.0049,0.0048,0.0029,-0.0010,-0.0066,-0.0131,-0.0186,-0.0212,-0.0188,-0.0097,0.0067,0.0297,0.0573,0.08

温馨提示

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

评论

0/150

提交评论