DSP实验报告王婷_第1页
DSP实验报告王婷_第2页
DSP实验报告王婷_第3页
DSP实验报告王婷_第4页
DSP实验报告王婷_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、DSP应用课程设计实验报告语音噪声滤波学院:电子信息工程学院姓名:王婷 姓名:缪小川小组成员:班级:通信0706 学号:07211117班级:通信0706 学号:07211128成绩:工程设计50报告20答辩30总分评语:指导教师签字:日期:2010-1-20一、设计任务书 3二、设计原理4三、设计方案说明8四、 程序设计、调试与结果分析 14五、设计与调试的体会 24六、参考文献25一. 设计任务书设计题目:语音噪声滤波题目背景介绍随着信息技术的发展,信号处理正向着数字化、软件化方向发展。数字信号 处理的主要研究对象是语音信号和图像信号, 语音信号的研究可以从时域和频域 两个方面来进行。其中

2、时域的分析处理有两种方法:一种是进行语音信号分析, 这属于线性处理的范畴,主要是通过信号的加减、时移、倍乘、卷积、求相关函数等来实现;另一种是生成和变换成各种调制信号, 这属于非线性的范畴,主 要是对信号平均累加器的动态范围进行压缩扩张,用门限方法对噪声的抑制。对频域分析处理,即对信号的频率特性在频谱中加以分析研究, 这拓展了信号分析 的范围,是对不确定信号分析的主要方法。 在实际应用中,信号的时域频分析经 常同时进行。由于环境的原因,我们采集到语音信号经常含有不同程度的噪声,因此要 对语音信号中的噪声滤除。DSP利用直接存储器访问方式DM采集数据时不打扰 CPU因此CP可以对语音信号进行实时

3、地滤波。 首先利用DSP勺DM方式对外部含 噪声的语音信号进行实时采集,语音信号先经过A/D转换为数字信号,利用MCBSP 的接收寄存器接收数据。编写滤波算法程序,或调用DSPLI沖的滤波函数,对信 号进行滤波。滤波后的数据利用DM方式送到D/A转换器转换为模拟信号。实验要求及目标1实验目的1)掌握信号滤波的基本原理和方法;2)掌握利用DSP直接存储器访问(DMA )的方法;3)掌握综合利用A/D、D/A及DMA等资源实现信号滤波的完整过程。2实验要求基本部分:1)对DM进行初始化;2)对A/D、D/AS行初始化;3)编写DM中断服务程序和滤波算法程序,实现语音信号的实时滤波; 发挥部分:1)

4、使用DS产生带回波的语音信号;2)利用自适应滤波实现语音信号的回波对消。3要求完成的任务1)编写C语言程序,并在CCS集成开发环境下调试通过;2)将包含噪声的语音信号进行滤波,从扬声器输出端口输出,比较滤波前 后的信号的变化。二. 设计原理1. DMA通道初始化DMA(直接存储器访问 Direct MemoryAccess)是C54x DS非常重要的片上 外设,DM控制器可以在不影响CPU勺情况下完成数据的传输,因此在对信号实时 采集和处理的系统中常采用DM模式进行信号采集和传输。TMS320C540有6个可 独立编程的DM通道,每个DM通道受各自的5个16位寄存器控制。语音信号时模 拟信号,

5、可以利用DM通道2与McBSP通道结合来读取A/D转换的数据,最后利用 DM通道3与McBSP道结合来将处理后数据发送至D/A。选择McBSP通道的接收 寄存器DRR1为DM传送数据的首地址,并选择DM源地址工作在不调整模式,选 择McBSP接收事件为DM同步事件,以实现DM与McBS的结合。DM在传送外部来 的数据时不会影响CP啲正常运行,当DMAS道2采集完一组数据后产生一个 DMA 中断事件中断CPU来通知CPU寸其进行相应的处理,进而按照设定进行下一组采 集。滤波后的信号输出利用3通道进行传输进入D/A等输出,因此要对DMAS道2 和通道3进行初始化配置。2. 数字信号FIR滤波进行信

6、号滤波也就是对序列的卷积进行计算,实验的噪声信号是有限长信 号,选取FIR数字滤波器。语音信号由外部输入,由此可以得到滤波器的输出为 yk=hk*xk,可采用重叠相加法计算卷积。将输入的长序列分解为短序列, 分别与单位脉冲响应进行卷积,每进行完一段操作计算结果中后N-1个数据保留在一个缓冲区,与下一段结果重叠相加。语音信号是低频信号,因此可以用MATLAB 来设计FIR低通滤波器。3. 自适应消除噪声滤波器最小均方(LMS,least-mean-square)算法是构建自适应消噪滤波器的主要算 法。假设原始输入为:主信号x(n)=s(n)+v o(n); vo(n)是加性零均值Gauss白噪声

7、。 本地参考信号为v 1(n )vm(n ),参考输入为v 1(n )vn ),v 1(n ) Vn(n )与v 0(n)相关与信号s(n)不相关,可用原理图表示如下:主信号LMSI法流程图如下:自适应噪占抵消器原理图送入信号1t求回JB预测1:求斟余的 % = m - X卄始#也的值妊入in Cn*例祷11測乳7广年自适应歩长0贰匚更新属皱器貳数d*1*亍束屮=*心十9二驱H才啊G(理)*LMSI法:基于最速下降法的最小均方误差算法的迭代公式如下:e(n)=d(n)-X T(n)W(n)W(n+1)=W( n)+2ue( n)X( n)将以上两式联立,得:W(n)=W(n )+2uX( n)

8、d( n) -X( n)X T(n )W( n)其中:W(n)是自适应滤波器在时刻n的矢量,x(n)为时刻n输入信号矢量,d(n) 为期望输出值,e(n)是误差信号,L是自适应滤波器的长度(步长因子)。LMSI 法熟练的条件为:OVUV入max入ma是输入信号自相关矩阵的最大特征值。LMS寸于 每输入一个样本,只需对上式中的两个乘法与两个加法运算, 该算法易于用实时 系统实现。LMSI法的原理图可以简单表示如下:4. 回声的产生回声实际上就是自己的声音泄露到自己的接收途径中。在任何一个通讯网 络中,至少包括两个节点。从每一个节点看来,每个呼叫都包括两个语音路径: 发送路径一一本地拾取声音,远端

9、回放声音。也就是说从呼叫方的嘴巴传送 到接收方的耳朵中。接收路径远端拾取声音,本地回放声音。也就是接收方在接收到会话时 创建接受路径,发送方的声音由接收方的耳朵接听到。我们知道,回声是由于自己的发言声音泄漏到自己的接收回路中。 一般来说 从发送端泄漏到接收端而引起的回声现象,可以有两个产生途径:线路回声一一通讯回路中节点设备对发送/接收信号的耦合所产生的回 声。声回声一一通过空气作为传播媒介,由Speaker直接耦合到MIC所产生的回声影响。回声的主要两个属性:音量和延迟:回声和原始信号如果相差50m$以下的时候,人耳一般不会感受到回声。而是感觉原始信号被增强了。另外,在混响 时间较长的大会场

10、。如果系统泄漏的回声信号低于原始信号30db以上的话,而且延时小于80mS勺时候。回声信号一般会被混响声所淹没。用户是听不到回声的 感觉。所以实验里可以用回声的原理计算响应的延时以达到实验效果。实验中的回声原理可用如下原理图来表示:由此可见,实验中的语音回声噪声消除可以采用自适应滤波器来设计5. 回声消除器回声的消除可以采用LMS算法。自适应合成回声,并在有干扰的情况下消除回声。自 适应滤波器是FIR横向滤波器,可以根据输出自动修改滤波器的权系数,从而逼近未知系 统回声通道。算法的实现要基于 TMS320C5402DS1P片和CCS系统的C语言。三. 设计方案说明1.噪声信号的产生噪声信号利用

11、MATLA产生一个信号,由于声音信号属于低频段,所以采用FIR 低通滤波器来设计。设计过程如下:利用FDATOO来设计低通滤波器,所取的设计参数如下:L ritET Orar jSperiiycrrier Unmum orcferUnia.吃.Visgnriujc EpeiriccrtonsUtiits cE;FSFpas$:FMOp-|lAStOfi: |M所得的函数幅度响应图如下:l Magnitude 尺espons (dB)利用MATLA功能,生成.C文件:.c Ed.i t AjLals i 3 ITare=13/ ew Yiiwioif HelfCurrent Filter IYc

12、iffh加 必吋Siudt ft itb i I IEG-ez-ier it e E-QlLFieoerc/ (l:Hz)汇LMI Coeirient (. C0IJ FileStTjcturfi:Drect-Frnf FIROrder:13Stable:Ve&Store Filer .Fi It ci Miensycr .SouM!Designed自定义的头文件程序如下:/* Filter Coefficie nts (C Source) gen erated by the Filter Desig n and An alysis ToolGen erated by MATLAB(R) 7.

13、2 and the Sig nal Processi ng Toolbox 6.5.* Gen erated on: 20-Ja n-2010 11:44:28*/* Discrete-Time FIR Filter (real)* Filter Structure : Direct-Form FIR* Filter Len gth : 14* Stable : Yes* Linear Phase : Yes (Type 2)* Impleme ntati on Cost* Number of Multipliers : 14* Number of Adders: 13* Number of

14、States : 13* MultPerl nputSample : 14* AddPerl nputSample : 13*/* Gen eral type conv ersi on for MATLAB gen erated C-code */ #include tmwtypes.h/* Expected path to tmwtypes.h* E:MATLAB2006externi ncludetmwtypes.h */const int BL = 14; con st real64_T B14 = -0.03493880541243,0.0391757773104,0.11639623

15、65133,0.2436323378858,0.1944567316798,-0.01304898413846,-0.03194131145691,0.1944567316798,0.1163962365133,-0.01304898413846,0.2436323378858,0.0391757773104,-0.03194131145691, -0.03493880541243;2.回声信号的产生:回声信号也就是信号有了延迟。麦克输入的信号在接收时有了泄露,最终 输出的信号也就是原来的语音信号也语音信号的延时衰减的叠加。回声通道的传输函数可以表示为:S为衰减,M为延迟点数。听到的回波是混合

16、信号,此时不仅能听到自己的声音, 也能听到几个衰减后叠加的回声。回波产生程序如下:while (!MCBSP_RRDY(HANDSET_CODEC) ; /codec 句柄如未准备好则等 待dk = *(volatile u16*)DRR1_ADDR(HANDSET_CODEC); / 从 AD读数 bfi=dk;/放入缓冲区if(i=10000)i=0;*(volatile u16*)DXR1_ADDR(HANDSET_CODGC+bfi+1/2; /延迟 +衰减3信号的滤波信号的滤波主要是利用LMS勺算法实现对已合成信号的滤波,算法的效率与 滤波的长度有关,可以改变FIR滤波器的阶数来调节

17、滤波器的长度。由C语言实现 LMSf法的C语言程序如下所示:double lms (double w,double x,double dk,double ek) /移植到CCS中的lms算法s16 i;double uek,yk;yk=0;for(i=0;iN;+i)yk=yk+wi*xi;ek=dk-yk;uek=2*mu*ek;for(i=0;iN;i+)wi=wi+uek*xi;return(ek);替换原有的LMSJ法的C语言实现程序,更换为CCS勺diplib库中的函数short dlms(PARAM)取代自定的lms()函数,并且用 dsplib库里的函数 short fir(PA

18、RAM)产生回声通道的输出信号,该输出信号作为自适应滤波器的理想输出 信号,对之进行逼近进而得到预定结果。Dsplib库中的dlsm函数和fir函数的子程序:Dlsm.h 的程序如下,路径:C:tic5400dsplibEXAMPLESDLMS*/ File name:dlms_t.c/ Versio n: 0.01/ Description: test for dlms routine*#in clude #i nclude #in clude #i nclude test.hshort i;short eflagr= PASS;short eflagh= PASS;void ma in (

19、void)/* clear */for (i=0;iNH;i+) hi =0;/ clear coeff buffer (optional)for (i=0;iNX;i+) ri =0;/ clear output buffer(opti on al)for (i=0; iNH; i+) dbufferi = 0; / clear delay buffer (a must)/* compute */dlms(x,h,r,&dp,des,STEP, NH, NX);/* test */eflagr = test(r, rtest, NX, MAXERROR);/ for reflagh = te

20、st(h, htest, NH, MAXERROR);/ for hif (eflagr != PASS)exit(-1);if (eflagh != PASS)exit(-1);return;FIR.h 的程序如下,路径:C:tic5400dsplibEXAMPLESFIR*/ File name:fir_t.c/ Versio n: 0.01/ Description: test for fir routine*#in clude #in clude #in clude #i nclude test.hshort i;short eflag 仁 PASS; short eflag2= PA

21、SS;DATA *dbptr = & db0;void ma in (void)/* 1. Test for sin gle-buffer */ /* clear */for (i=0; iNX; i+) ri = 0;/ clear output buffer(opti on al)for (i=0; iNH; i+) dbi = 0; / clear delay buffer (a must) /* compute */ fir(x, h, r, &dbptr, NH, NX);/* test */eflagl = test (r, rtest, NX, MAXERROR);/* 2. T

22、ests for dual-buffer */* clear */for (i=0; iNX; i+) ri = 0;/ clear output buffer(opti on al)for (i=0; i=4)fir(x, h, r, &dbptr, NH, NX/4);fir(&xNX/4, h, & rNX/4, &dbptr, NH, NX/4);fir(&x2*NX/4, h, & r2*NX/4, &dbptr, NH, NX/4);fir(&x3*NX/4, h, & r3*NX/4, &dbptr, NH, NX/4); /* test */eflag2 = test (r,

23、rtest, NX, MAXERROR);if (eflagl != PASS)exit(-1);if (eflag2 != PASS)exit(-2);return;四. 程序设计、调试与结果分析程序设计1.程序流程先初始化FIR延迟输出数组dbuffer_h 、FIR输出数组、自适应滤波器系 数矢量coff_w和自适应滤波器的输出数组 out_w,再进行DSK板的初始化 然后采集输入的语音信号,根据模式的不同进行不同的处理以输出不同的信号来 进行效果的比较:模式0: mode=0时全通,不做任何处理直接输出;模式1: mode=1时信号通过FIR滤波器后产生回声,输出的信号为原来信号 与噪

24、声信号的混叠;模式2: mode=2时用自适应滤波器逼近FIR滤波器以使之输出近似的信号, 用信号通过两个系统产生的信号之差(即剩余回声)来调整自适应滤波器的系数, 使剩余回声逐渐收敛于0。此时的输出为滤去噪声后的信号。程序流程可以表示如下:V开始初始化滤波器系数、输出DSK板的初始化1|更新输入数组读语音的采样值1_1E1i模式0模式1模式2模式(mode) =?全通滤波器FIR滤波器FIR滤波器LMS滤波器否结束2.最终程序延时的子程序如下:输出信号输岀(是否结束?)void delay(void)long int j;for(j=0; jvlOOOOO; j+)asm(nop); _更改

25、j循环的上限值即可以加大延时。程序中使用dsplib库函数dlms()和fir()时要分配参数的地址,因此要手动修改CMD 文件。在编完主程序后,因为引入了新的数据和变量必须在工程文件中添加一个的头文 件stem.h,将这些变量放入指定了内存中。同时还修改5024.cmd文件。添加头文件stem.h:/*stem.h*/#define LENGTH_W 10 LMS 滤波器长度,#defi ne LENGTH_H 10 / 自适应滤波器长度#defi ne STEP 100 /自适应步长#define LENGTH_IN 5/输入缓冲数组x长度DATA xLENGTH_IN; /声明输入缓冲数

26、组DATA out_hLENGTH_IN; /FIR滤波器即回声消除通道输出DATA out_wLENGTH_IN; /自适应滤波器输出将数组coff_w指定到内存段.coffw声明自适应滤波器系数矢量将数组coff_h指定到内存段.coffhDATA eLENGTH_IN;#pragma DATA_SECTION(coff_w,.coffw) /DATA coff_wLENGTH_W;/#pragma DATA_SECTION(coff_h,.coffh) /DATA coff_hLENGTH_H=790,2661,4629,6919,8210,8210,6919,4629,2661,790

27、;/定义FIR滤波器的系数即回声通道的权系数#pragma DATA_SECTION(dbuffer_h,.dbufferh) / 将数组 dbuffer_h 指定到内 存段.dbufferhDATA dbuffer_hLENGTH_IN; / 该数组存放FIR上一时刻的输出#pragma DATA_SECTION(dbuffer_w,.dbufferw) /将数组指定到内存段.dbufferwDATA dbuffer_wLENGTHN; /该数组存放自适应滤波器上一时刻输出 修改5402.cmd文件:MEMORY0080h, length :=0080h /*In ternalProgram

28、 RAM7600h, le ngth=8000h /*InternalProgram RAMPAGE 0: VECS: origin*/PRAM: origi n*/PAGE 1: SCRATCH: origin = 0060h, le ngth=0020h /*Scratch Pad Data RAM*/DMARAM: origin = OCOOh, le ngth = 0300h /* DMA buffer */DATA: origin = 1100h, length = 0080h /* Internal Data RAM*/STACK: origin = 1180h, le ngth

29、= 0560h /* Stack Memory Space*/INRAM: origin = 1900h, le ngth = 0100h /* In ternal Data RAM*/HPRAM0:origi n=1A00h,len gth=0002h/*HPImemoryaccessible by Host and DSP */HPRAM1:origi n=1A02h,len gth=0280h/*HPImemoryaccessible by Host and DSP */HPRAM2:origi n=1C82h,len gth=0280h/*HPImemoryaccessible by

30、Host and DSP */EXRAM: origin = 1F10h, le ngth = 4000h /* External Data RAM*/INT_DM_RAM: origin = 6000h,length = 4000h/ 添加部分,开辟新空间*/*/DSPMemoryAllocati on*/SECTIONS.c in it PRAM PAGE 0.text PRAM PAGE 0.vectors VECS PAGE 0ini t_var PRAM PAGE 0detect PRAM PAGE 0vrcprg PRAM PAGE 0matprg PRAM PAGE 0.stac

31、k STACK PAGE 1.trap SCRATCH PAGE 1.const EXRAM PAGE 1.data EXRAM PAGE 1.bss EXRAM PAGE 1.cio EXRAM PAGE 1.switch EXRAM PAGE 1tables EXRAM PAGE 1var EXRAM PAGE 1svctab EXRAM PAGE 1vctab EXRAM PAGE 1uvctab EXRAM PAGE 1cuvtab EXRAM PAGE 1cdbktab EXRAM PAGE 1logtab EXRAM PAGE 1powtab EXRAM PAGE 1hamtab

32、EXRAM PAGE 1lgwtab EXRAM PAGE 1acostab EXRAM PAGE 1sqrtab EXRAM PAGE 1acbtab EXRAM PAGE 1pm03tab EXRAM PAGE 1/* SS_V LSP table */* V LSP table */* UV LSP table */* Stochastic codebook */* various codebook tables*/* table for log2 */* table for pow2 */* table for hamming */* table for lag win dow */*

33、 table for arccos */* table for square root */* table for thresholds in acb */* table for xA(-0.3) computati on */* table for cos ine */.dbufferh: INT_DM_RAM.dbufferw: INT_DM_RAM 1KBIT的边.coffh : INT_DM_RAM和fir() 两.coffw : INT_DM_RAM要求PAGE 1, align (1024)/ 添加部分PAGE 1, align (1024)PAGEI, align (1024)P

34、AGE 1, align (1024)/将这些段指定到/ 界,以满足dlms()/个函数对参数的costab EXRAM PAGE 1V23 INRAM PAGE 1FSK INRAM PAGE 1hpibuffO HPRAM0 PAGE 1hpibuffl HPRAM1 PAGE 1hpibuff2 HPRAM2 PAGE 1dma_buff DMARAM PAGE 1C语言的程序如下:/*/* Codec.c*/* Digital Loopback example*/#include type.h#i nclude board.h#i nclude codec.h#in clude mcb

35、sp54.h#i nclude #in clude #include setm.h/*/* Fun cti on Prototypes*/* This delay routine does not conflictwith DSP/BIOS. It is used in thisexample rather tha n brd_delay_msec which causes DSP/BIOS con flicts just because of this. If you are notusing DSP/BIOS, you can change the codetousebrd_delay_m

36、sec*/ void delay(void); /延迟void update(DATA x,DATA dk);void ini tarray(DATA x);/*/*GlobalVariabl*/HANDLE hHandset; /CODEC 句柄DATA bf15000;/ 缓冲区/*/* MAIN*/*DATA *dp_w = &dbuffer_w0;DATA *dp_h = &dbuffer_hO;void mai n()s16 j;s16 m;s16 cnt=2; /灯循环闪次数,初始化等待时钟周期数DATA dk,out_delay,yk,ek;s16 mode=1; /决定是否产生

37、回波是否使用回波抵消s16 i;if (brdn it(100)/板的初始化return;/ clear output buffer / clear coeff buffer/ clear output bufferfor (i=0; iLENGTH_IN; i+) dbuffer_hi = 0; for (i=0;iLENGTH_IN;i+) out_hi =0;for (i=0;iLENGTH_W;i+) coff_wi =0;for (i=0;iLENGTH_IN;i+) out_wi =0;/* bli nk the leds a couple times */while ( ent-

38、 )/*brded_toggle(BRD_LED0);板子初始化,用灯闪来表示*/* brd_delay_msec(1000); */ delay();brded_toggle(BRD_LED1); /* brd_delay_msec(1000); */ delay();brded_toggle(BRD_LED2); /* brd_delay_msec(1000); */delay();/* Ope n Ha ndset Codec */hHandset = codec_open(HANDSET_CODEC); /Acquire handle to codec */ /* Set codec

39、parameters */codec_dac_mode(hHa ndset,CODEC_DAC_15BIT); /* DACn 15-bit mode*/codec_adc_mode(hHa ndset,CODEC_ADC_15BIT); /* ADCn 15-bit mode*/codec_ain_gai n(hHa ndset,CODEC_AIN_6dBy* 6dB gain on an alog in putto ADC */codec_aout_gai n(hHa ndset, CODEC_AOUT_MINUS_6dB); /*-6dB gain onan alog output fr

40、om DAC */ codec_sample_rate(hHa ndset,SR_8000); /* 8KHz sampli ng rate */ brded_toggle(BRD_LED0);ini tarray(x);/i=0;j=3000;初始化所有数组m=1500;while(1)/读数循环while (!MCBSP_RRDY(HANDSET_CODEC) ;dk = *(volatile u16*)DRR1_ADDR(HANDSET_CODEC);/ *(volatile u16*)DXR1_ADDR(HANDSET_CODEC)=dk;从 ADC读数 update(x,dk);if

41、(mode=0)*(volatile u16*)DXR1_ADDR(HANDSET_CODEC)=dk;else if(mode=1)fir(x,coff_h,out_h,&dp_h,LENGTH _H, LENGTH _IN);if(i=5000) i=0;if(i=5000) i=0;bf1i=out_h0;i+;放入缓冲区out_delay=0.5*bf1i+1+1.5*bf1j+bf1m+;yk=dk+out_delay;*(volatile u16*)DXR1_ADDR(HANDSET_CODEC)=yk;else if(mode=2)fir(x,coff_h,out_h,&dp_h

42、,LENGTH _H, LENGTH _IN);if(i=5000) i=0;if(j=5000) j=0;if(m=5000) m=0;bf1i=out_h0;i+;out_delay=0.5*bf1i+1+1.5*bf1j+bf1m+;yk=dk+out_delay;update(y,yk);dlms(y,coff_w,out_w,&dp_w,out_h,STEP,LENGTH_W 丄ENGTHN);ek=out_h0-out_w0;*(volatile u16*)DXR1_ADDR(HANDSET_CODEC)=out_wi;void delay(void)long int j;for(

43、j=0; jvlOOOOO; j+)asm(nop); _void update(DATA x,DATA dk) s16 j,k;for(j=1;jLENGTH_IN;+j) k=LENGTH_IN-j; xk=xk-1;x0=dk;void in itarray(DATA x)s16 i;for(i=O;iLENGTH_IN;+i) xi=0; 调试与结果分析滤波输入输出信号:由时域图可看出,滤波后的语音波形明显比输入信号平滑。第一次调节DS板,mode=0寸,DS板等效一全通滤波器,对信号不进行滤波。第二次调节DS板,mode=时,DS板等效一混波器,它将源信号以及源信号的 延迟衰减进行了

44、混合,产生了需要的噪声与原信号的混叠。第三次调节DS板,mode=2寸,DS板等效一自适应滤波器,它将 mode=情况下 的输出噪声进行了滤波,调用dlms()函数将FIR滤波器的输出out_h作为自己的理 想输出des,不断逼近,最终能听到比较纯的声音。但杂音无法完全消除,比起 mode=时的情况有了很大的改善。五. 设计与调试的体会王婷:感觉语音噪声滤波器的设计还是有点难,关键是要找到合适的算法来实现各种 功能。开始并没有想到要使用LMSI法,最初设计的时候觉得语音噪声的滤波也就是 有点类似于信号实时滤波,参考了DS技术及其应用的大部分内容,但是对回声 信号的产生和消除并没有相应的概念。通

45、过维普论文数据库和以前学长的设计思想, 我们找到了许多有关噪声消除的资料,其中讲的比较简单的方法就是LMSf法构造的 自适应滤波器。通过学习我们基本弄懂了语音噪声滤波的原理及算法,接下来最最 要的就是程序的编写。通过做这次试验设计,我认识到自己在汇编语言,程序的使 用这一块还是有很大的欠缺。在大一的时候就学习了 C语言,但是现在发现自己已经 把这方面的知识忘得差不多了,自己编出来的也是错误百出,最后还得参考同学的 设计来修改。后来才发现其实有好多资源调用 Dsplib库中子函数就可以,Dsplib库 中的函数为我们的程序编写简化了诸多任务,也使有关CCS勺C语言程序设计部分省去了很多繁琐的程序

46、。主程序部分,虽然原理算法是都明白,但是一到自己写程序就束手无策,实验 设计课程就是要培养学生的动手能力,所以今后自己还要在软件学习方面多多努力。 实验里我们使用FDATO(设计FIR低通滤波器,完成设计后要生成一个头文件,但是 在最后我们测试程序时,却无法找到,小组讨论了好长时间还是不知道为什么不行, 后来其他组告诉我们可能是电脑病毒的问题,好多组都遇到了类似的问题,后来我 们觉得可能是我们自己编写的头文件没有生效。设计程序时,还有一个地方思考了 很长时间就是LM算法中步长的计算,要选取合适的步长,查阅资料后,我们了解到, 在延时小于50m啲情况下我们人耳是无法辨别回声的,所以设计中有三种模式,可 以在不同的模式下,选取不同的步长以达到我们想要的效果。回声路径的延时和抖 动都相当大,其延迟包括算法延迟(0.125ms-30ms),处理延迟(30ms),

温馨提示

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

评论

0/150

提交评论