语音噪声滤波.docx
- 文档编号:2444713
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:47
- 大小:1.13MB
语音噪声滤波.docx
《语音噪声滤波.docx》由会员分享,可在线阅读,更多相关《语音噪声滤波.docx(47页珍藏版)》请在冰豆网上搜索。
语音噪声滤波
DSP课程设计实验报告
语音噪声滤波
院(系):
电子信息工程学院
小组成员:
通信0707班高砾琦07211201
通信0708班李淼07281156
指导教师:
高海林
一、设计任务
语音通信的目的是传递声音信息。
位于甲地的通信者发出的声音经语音传感器变换成为电信号,经发送端设备变换为适合传输的形式,通过传输信道传输到乙地。
在乙地经接收端设备恢复出原来的语音信号,经耳机或者喇叭转换为接收者可以听到的声音信号。
这就是最基本的语音通信系统,但是由于周围环境的原因,我们采集到语音信号经常含有不同程度的噪声。
典型语音通信系统中的噪声来自三个方面:
①信号处理设备产生的电噪声及传输信道中的电噪声;②信号发送端空间环境中的音频噪声信号经麦克风变换为电信号之后,与有用信号其同传递到接收端;③信号接收端空间环境中的音频噪声对信号接收者的影响。
噪声是由于发生体作无规则振动产生的。
在很多情况下,环境中的背景噪声是通信系统中噪声干扰的主要来源。
当语音信号受到背景噪声干扰时语音通信质量变得不可接受,因此要对语音信号中的噪声滤除。
DSP利用直接存储器访问方式DMA(DirectMemoryAccess)采集数据时不打扰CPU,因此利用DMA方式工作时,CPU可以对语音信号进行实时地滤波。
本设计要求利用DSP的DMA方式进行信号采集和信号输出,对语音信号进行数字编码,滤波后进行解码。
自适应滤波不仅能够选择信号,而且能够控制信号的特性。
自适应滤波器具有跟踪信号和噪声变化的能力,它的系数能够被一种自适应算法所修改。
利用DSP可以实时地对信号进行自适应滤波。
DSP利用直接存储器访问方式DMA采集数据时不打扰CPU,因此CPU可以对信号进行实时地滤波。
本设计要求利用DSP的DMA方式进行信号采集和信号输出,同时对外部输入的信号进行数字滤波。
这就是这次设计所要完成的任务。
二、设计内容
基本部分:
(1)对DMA进行初始化;
(2)对A/D、D/A进行初始化;
(3)编写DMA中断服务程序和滤波算法程序,实现语音信号的实时滤波;
(4)设计FFT算法,或调用DSPLIB中的FFT函数,实现对信号的频谱分析;
(5)设计子自适应滤波算法,调用DSPLIB中的自适应函数,实现对信号的自适应滤波。
发挥部分:
1)利用自适应滤波实现语音信号的回波对消。
2)比较加不同窗和阶数时滤波器的滤波效果;
3)测试所设计滤波器的幅频特性和相频特性,并与MATLIB下的设计结果进行比较。
要求完成的任务
(1)编写C语言程序,并在CCS集成开发环境下调试通过;
(2)将包含噪声的语音信号进行滤波,从扬声器输出端口输出,比较滤波前后的信号的变化;
(3)按要求撰写设计报告。
三、设计思路
首先利用DSP的DMA方式对外部含噪声的语音信号进行实时采集,语音信号先经过A/D转换为数字信号,利用MCBSP的接收寄存器接收数据。
编写滤波算法程序,而且调用DSPLIB的lms中的滤波函数,对信号进行滤波。
滤波后的数据利用DMA方式送到D/A转换器转换为模拟信号。
这就是我们的设计思路。
具体的设计方案原理图如下。
模拟输入信号通过DSK的MIC端口输入,经A/D转换,然后到达DSP的DMA通道2,DSP接收到信号后,调用中断服务程序进行滤波,选择滤波模式进行不同种类的滤波,滤波后的信号可以在CCS上显示,也可以通过DMA通道3将信号输出到D/A转换器,经D/A转换后从SPEAKER端口输出。
四、算法原理
1、FIR滤波器算法
FIR滤波器是指系统的单位脉冲响应h[k]仅在有限范围内有非零值的滤波器。
在本设计实验中,滤波占有十分重要的地位。
数字滤波是数字信号处理的基本方法。
在许多信息处理过程中,如对信号的过滤、检测、预测等,都要广泛地用到滤波器,而数字滤波器则因其设计灵活、实现方便等特点而广为接受。
所谓数字滤波器就是具有某种选择性的器件、网络或以计算机硬件支持的计算程序。
其功能本质是按事先设计好的程序,将一组输人的数字序列通过一定的运算后转变为另一组输出的数字序列,从而改变信号的形式和内容,达到对信号加工或滤波以符合技术指标的要求。
数字滤波器是语音、图象处理、模式识别以及谱分析中的重要的处理运算环节。
DSP由于其本身具有并行的硬件乘法器、流水结构以及快速的片内存储器等资源,其技术已广泛地应用于噪声及振动的各个领域。
因此用DSP芯片实现FIR数字滤波,除具有准确度高、不受环境影响等优点外,由于DSP芯片具有可编程特性,程序的可移植性好,灵活性强。
实际应用时只需按要求修改滤波器参数,并对程序作较少的改动,即可实现不同截止频率的FIR滤波器,实用性较强。
下面简单介绍一下数字滤波器的基本原理。
数字滤波器原理一般具有如下差分方程:
y(n)=∑akx(n-k)+∑bky(n-k)
(1)
式中x(n)为输人序列,y(n)为输出序列,ak和bk为滤波器系数,,N是滤波器阶数。
当所有的bk均为零,则有
y(n)=∑akx(n-k)
(2)
(2)式是FIR滤波器的差分方程,其一般形式为
y(n)=∑h(k)x(n-k)(3)
对(3)式进行z变换,整理后可得FIR滤波器的传递函数:
H(Z)==∑h(k)z-k(4)
FIR数字滤波器的设计方法主要有窗函数法和频率抽样设计法,其中窗函数法是基本而有效的设计方法。
下面为FIR滤波器的算法实现方法。
FIR滤波为有限冲击响应滤波,其滤波结构是一个分节的延时线,每节的输出加权累加,得到滤波器的输出。
由前面的分析知,FIR滤波器数学上可表示为:
y(n)=∑h(k)x(n-k)(5)
式(5)中x[n]为最近(t=nT)的输人信号,x[n-k]是延时了k个取样周期的输人信号,h[k]是第k个延时节的加权值(即滤波器系数),可由MATLAB设计出来,y[n]是时刻t=nT时滤波器的输出信号,N是滤波器的阶数也称滤波器的抽头数,为实整数,且须满足N×t<1/fs,其中fs为采样频率,,tmac为每个抽头数乘加运算的时间,从这个式子和结构可以看出,为什么称之为有限冲激响应滤波器。
因为该滤波器的冲激响应在N个周期后变为0也就是每次乘加运算都要用到之前N个数。
滤波器系数可通过MATLAB设计得到,若采用海明窗设计的FIR滤波器是一个32阶的低通滤波器,截止频率为150Hz.由“MATLAB设计FIR滤波器”可得h(n),这样设计的滤波系数再经过量化即得。
本次设计实验中,FIR滤波器可以通过编写滤波算法程序,或调用DSPLIB中的滤波函数来实现。
但一般调用DSPLIB中的滤波函数不能够达到很好的滤波效果,所以我们采用编写滤波算法程序来实现FIR滤波器。
2、直接存储器访问DMA
直接存储器访问(DirectMemoryAccess)是C54xDSP非常重要的片上外设,DMA控制器可以在不影响CPU的情况下完成数据的传输,因此数据传输速度快,在要求信号实时采集和处理的系统中常采用DMA方式进行信号采集和传输。
C5402有6个可独立编程的DMA通道,每个DMA通道受各自的5个16位寄存器控制:
源地址寄存器DMSRC、目的地址寄存器DMDST、单元计数寄存器DMCTR、同步事件和计数寄存器DMSFC、发送模式控制寄存器DMMCR。
目的地址寄存器DMDST规定DMA要传送数据目的地址和首地址。
单元计数寄存器DMCTR规定DMA传送数据的个数为DMCTR寄存器的值加1。
同步事件和桢计数寄存器DMSFC规定DMA传送数据的同步事件类型和传送一块数据所含桢信号的个数。
发送模式控制寄存器DMMCR规定DMA通道的传输模式,当DMA工作在自动初始化模式时,CPU在一个DMA事件完成后自动装载下一个DMA初始化设置并继续进行数据传送。
DINM位和IMOD位设置DMA中断产生方式。
CTMOD位设置发送计数模式控制,CTMOD位为0时,DMA工作在多桢模式,CTMOD位为1时,DMA工作在自动缓冲ABU模式。
SIND位和DIND位用来设置源地址和目的地址的自动调整方式。
此外,DMA的6个通道还受通道优先级和使能控制寄存器DMPREC控制。
本实验利用DMA通道2与MCBSP1通道结合来读取A/D转换器的数据,利用DMA通道3与MCBSP1通道结合来将处理后的数据发送至D/A转换器。
选择MCBSP1通道的接收寄存器DRR11(41H)为DMA传送数据的首地址,并选择DMA源地址工作在不调整方式,选择MCBSP1接收事件为DMA同步事件,以实现DMA和MCBSP的结合。
A/D转换器的数据按MCBSP1的设置被传送到DSP内部接收寄存器DRR11中,再由DMA通道2将DRR11中的数据读到指定数据存储区inp_buffer中完成数据采集。
DMA在传送外部来的数据时不会影响CPU的正常运行,当DMA通道2采集完一组数据后产生一个DMA中断事件中断CPU,来通知CPU对其进行相应的处理,此时DMA通道2可以按照设定继续采集下一组数据,实现了数据采集与CPU处理的并行操作。
当一组数据处理完成后,将数据存放在数据存储区out_buffer中,选择out_buffer为DMA通道3的首地址,并选择源工作地址工作在不调整方式。
选择MCBSP1通道的发送积存器DXR11(43H)为DMA通道3传送数据的目的地址,并选择DMA源地址工作在不调整方式,选择MCBSP1接收事件为DMA同步事件,以实现DMA和MCBSP的结合。
在CCS集成开发环境中,与DMA相关的头文件有regs54xx.h和dma54xx.h。
在这两个头文件中,定义了DMA的寄存器资源、使用方法和DMA寄存器的地址和基本访问方式,以及寄存器的各个比特域和访问方法,因此需要进行C源程序的开始处包含这两个头文件。
输入信号经A/D转换后,利用DMA通道2进行传输进入DSP处理,而滤波后的信号输出利用了DMA通道3进行传输进入D/A转换器等输出,因此需要对DMA通道2和通道3进行初始化配置。
3、A/D和D/A转换器
本实验要用到A/D和D/A转换器。
A/D转换器能够将接收的语音信号(模拟信号)转化为数字信号,供CPU进行处理;D/A转换器能够将数字信号转换为语音信号送SPEAKER端口输出。
要使用A/D和D/A转换器,必须首先对A/D和D/A转换器进行初始化设置,即设置A/D转换器的工作模式(15+1bit模式,16bit模式)、输入增益(0dB,6Db,12dB)以及抽样频率(8000Hz,16000Hz)等。
4、LMS算法
最小均方(LMS,least-mean-square)算法,是由Widrow和Hof在1960年创建的,直到现在它还是应用最广泛的自适应滤波算法.LMS算法是随机梯度算法族中的一员。
该算法在随机输入维纳滤波器递推计算中使用确定性梯度。
LMS算法的一个显著特点就是它的简单性。
此外,它不需要计算有关的相关函数,也不需要矩阵求逆运算。
事实上,正是因为LMS算法的简单性,使得它成为其他自适应滤波算法的参照标准。
这两个过程一起工作组成一个反馈环,如图3所示。
首先有一个横向滤波器(围绕它构造LMS算法);该部件的作用在于完成滤波过程。
其次,有一个对横向滤波器抽头权值进行自适应控制过程的算法。
横向滤波器各部分的细节如图4所示。
抽头输入u(k),u(k-1),……,u(k-M+1)为MX1抽头输入向量a(k)元素,其中M+1是延迟单元的个数;这些输入张成一个多维空间。
相应的ho(k),hi(k),...,hm-1(k)为Mxl抽头权向量h(k)的元素。
通过LMS算法计算这个向量所得的值表示一个估计,当迭代次数趋于无穷时,该估计的期望值可能接近维纳最优解在滤波过程中,期望响应d(k)与抽头输入向量z(k)一道参与处理。
在这种情况下,给定一个输入,横向滤波器产生一个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语音 噪声 滤波