第七章语音信号试卷.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * 实验过程 所有的配置工作完成以后,AIC23和DSP就可以正常工作,开始进行数据通信。 置MCBSP的串口控制寄存器SPCR2中的XRDY bit和RRDY为0,表示已经准备好发送数据和接收数据. 当CPU轮询到此标志位,就开始和AIC23开始通过MCBSP实现串行数据通信。 接收到的数据被保存到预先开辟的RAM存储,再通过MCBSP传送给AIC23,完成声音的输出 。 实验结果 输入波形是麦克风输入吹气的“呼呼”声。 参数选取:实验程序采用64阶滤波参数,低通滤波,汉明窗(Hamming Window)函数,截止频率为2400Hz,采样频率为48000Hz,增益40dB。 FIR低通滤波器设计 DSP算法库函数的调用 1、设计FIR低通滤波器的参数 (audio.h ) 2、配置DSP库 调用DSP库函数 fir2(x,h,r,db,NX,HX) 3、低通滤波后数据输出 将经过滤波后的数据送右声道输 Write(pMCBSP0 - dxr2, r[NX-1]); fir2滤波器结构 fir2(x,h,r,db,NX,HX) 调用于dsplib.h中函数 ushort fir2(DATA *x, DATA *h, DATA *r, DATA *dbuffer, ushort nx, ushort nh); 其中 x[nx]:指向原始输入数据的指针 h[nh]: 指向滤波器系数指针 r[nx]: 指向滤波输出数据的指针 buffer[nh+2]: 指向延时缓存的长度 nx: 输入数据的数量 nh:滤波器的阶数 具体情况参看TMS320C55x DSP Library Programmer’s Reference DSP库函数的配置 其中DSP算法库主要包括: dsplib.h 55xdsp.lib 55xdsp.src 要使编译时能链接此函数库,在工程 Build Option选项进行设置库文件及所在路径。 注意:调用DSP库必先熟悉库中函数的算法,结 构,及使用范围,才能真正使用库函数。 滤波器参数的频域能量显示,它是一个参数较优的低通滤波器,截止频率在2437左右。 调用dsplib中的函数fir2 从输入和输出音频数据的频域上可以看出,输出音频的高频部分被较好地滤除了。从时域图也可发现,输出波形去掉了输入波形的震动较快的成分,显示为较平滑的输出。 void AIC23_Mixer() { PC55XX_MCSP pMCBSP0 = (PC55XX_MCSP)C55XX_MSP0_ADDR; int left, right; int *pl,*pr,nAudioCount; int i; pAudioLeft=pl=(int *)AUTIODATALEFT; pAudioRight=pr=(int *)AUTIODATARIGHT; nAudioCount=0; for ( i=0;iNX;i++) x[i]=0; for ( i=0;iNH+2;i++) db[i]=0; while(1) { while (!ReadMask(pMCBSP0 - spcr2, SPCR2_XRDY)); // 等待数据传输完成 (*pl)=left = Read(pMCBSP0 - ddr1); // 读入左声道数据 right = Read(pMCBSP0 - ddr2); // 读入右声道数据 x[NX-1]=left/16; // 防止滤波时数据溢出 fir2(x, h, r, db, NX, NH); // 调用滤波程序计算当前输出 (*pr)=r[NX-1]; // 数组r的最后一个单元为当前输出 Write(pMCBSP0 - dxr1, left); // 将原始数据送左声道输出

文档评论(0)

***** + 关注
实名认证
内容提供者

我是自由职业者,从事文档的创作工作。

1亿VIP精品文档

相关文档