基于LMS-算法的多麦克风降噪_第1页
基于LMS-算法的多麦克风降噪_第2页
基于LMS-算法的多麦克风降噪_第3页
基于LMS-算法的多麦克风降噪_第4页
基于LMS-算法的多麦克风降噪_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、课程设计任务书课程设计任务书 学生姓名:学生姓名: 专业班级:专业班级: 指导教师:指导教师: 工作单位:工作单位: 信息工程学院信息工程学院 题题 目目: 基于 LMS 算法的多麦克风降噪 初始条件初始条件: MATLAB 软件 数字信号处理基础知识 要求完成的主要任务要求完成的主要任务: : 给定主麦克风录制的受噪声污染的语音信号和参考麦克风录制的噪声,实现语音增强 的目标,得到清晰的语音信号。 (1)阅读参考资料和文献,明晰算法的计算过程,理解 LMS 算法基本过程; (2)主麦克风录制的语音信号是 LMSprimsp.wav,参考麦克风录制的参考噪声是 LMSrefns.wav.用 m

2、atlab 指令读取; (3)根据算法编写相应的 MATLAB 程序; (4)算法仿真收敛以后,得到增强的语音信号; (5)用 matlab 指令回放增强后的语音信号; (6)分别对增强前后的语音信号作频谱分析。 指导教师签名:指导教师签名: 20122012 年年 月月 日日 系主任(或责任教师)签名:系主任(或责任教师)签名: 20122012 年年 月月 日日 摘要摘要 随着社会工业生产的不断进步,各种噪声污染越来越严重。目前普遍采用 的模拟降噪方法已不能满足要求,未来的研究将朝着以数字信号处理器及相关 算法为技术支撑的数字降噪技术发展。滤波器设计在数字信号处理中占有极其 重要的地位,

3、Matlab 功能强大、简单易学、编程效率高,深受广大科技工作者 的欢迎。特别是 Matlab 还具有信号分析工具箱,不需具备很强的编程能力,就可 以很方便地进行信号分析、处理和设计。利用 MATLAB 信号处理工具箱可以快速 有效地设计各种数字滤波器。在过去的几十年中,基于多麦克风的噪声消除问 题一直是人们关注的课题。而在众多算法中,基于 LMS 算法更新滤波器权值的 广义旁瓣消除器结构应用最为广泛。多麦克风降噪设计主要是通过自适应滤波 器来实现的。文中采用 LMS 算法在 MATLAB 中实现了自适应滤波器的设计与实 现。在 MATLAB 中建立了数字降噪系统模型,并且针对该模型利用 MA

4、TLAB 语言 进行编程,仿真结果表明此设计实现了对信号中混有的环境噪声进行降噪,并 且效果远远高于模拟降噪技术。 关键词:MATLAB, 语音增强,LMS 算法,多麦克风 Abstract With the social progress of industrial production, all kinds of noise pollution is more and more serious. The current widespread use of the simulation of the noise reduction method can not meet the requir

5、ement has, and further research will toward to digital signal processor and related algorithm for technical support digital noise reduction technology development.Filter design in digital signal processing plays an extremely important role,. Matlab is powerful, easy to learn, programming efficiency,

6、 which was welcomed by the majority of scientists. Matlab also has a particular signal analysis toolbox, it need not have strong programming skills can be easily signal analysis, processing and design. Using MATLAB Signal Processing Toolbox can quickly and efficiently design a variety of digital fil

7、ters. In the past few decades, based on the noise of the microphone is always the people to pay attention to eliminate the subject. And in numerous algorithm, LMS algorithm based on the generalized update filter weight value side-lobe eliminate most widely used the structure. More noise reduction de

8、sign mainly through the microphone to realize adaptive filter. This article apply LMS algorithm in MATLAB realize adaptive filter, the design and implementation. In MATLAB established digital noise reduction system model, and the model for use of MATLAB language programming, the simulation results s

9、how that the designed to signal mix in some environmental noise noise reduction, and the effect is far higher than analog noise reduction technology. Keywords: MATLAB,Speech enhancement, LMS algorithm, microphone 目录 摘要.I ABSTRACT.II 目录.1 2 原始语音信号采集与处理 .3 2.1 语音信号的采样理论依据 .3 2.1.1 采样频率.3 2.1.2 采样位数.3

10、2.1.3 采样定理.3 2.2 语音信号的采集 .4 2.3 语音信号的时频分析 .4 2.4 语音信号加噪与频谱分析 .6 3 基于 LMS 自适应滤波器的设计 .8 3.1 基本 LMS 算法 .8 3.2 自适应噪声抵消原理 .12 3.3 基于最小均方误差准则(LMS)的自适应噪声抵消 .14 3.4 LMS 算法程序.15 4 滤波并比较滤波前后信号的波形及频谱.17 4.1 验证所设计的自适应滤波器 .17 4.2 对主麦克风音频信号滤波 .20 4.2.1 程序流程图.20 4.2.2 LMS 自适应滤波.20 4.3 调试分析 .25 心得体会.26 参考文献.27 附录:源

11、程序.28 1 1 前言前言 多麦克风降噪是降噪技术的一个重要应用。我国的降噪技术研究始于 80 年代初期,采用的手段主要有三种,其中的动态降噪技术(DNR)又可以分为模 拟动态降噪技术和数字动态降噪技术。目前国内外解决噪声问题最普遍的方法 是采用模拟动态降噪技术,数字降噪技术的研究尚处于初期阶段。数字降噪技 术比模拟降噪技术具有更大的优点。模拟降噪技术全采用硬件实施,修改和调 试十分困难,对元器件参数的变化也很敏感,技术指标受元器件的误差影响较 大,降噪效果不稳定,不利于产品的批量生产。而数字降噪技术由于采用计算 机技术实现自适应滤波,通过修改软件算法就可以达到不同的降噪效果,不用 更改硬件

12、结构,调试和维修都非常方便;数字降噪技术采用自适应滤波技术, 可以实时跟踪噪声的变化进一步进行处理,因此降噪效果较好。另外,数字降 噪技术抗干扰能力强,本身具有自恢复能力,并且在整个音频带内降噪比较均 衡,而模拟降噪技术偏重于低频段,高频段效果较差。因此降噪技术未来的发 展方向是数字降噪技术,以数字信号处理(DSP)及其相关算法为技术支撑的数字 降噪技术代表着当今降噪技术的发展。目前市场上的麦克风降噪产品主要是模 拟降噪,因此数字降噪的设计在国内属于领先技术。多麦克风数字降噪的系统 原理是通过麦克风装置直接检测出噪声信号和音频信号的混合信号,然后将混 合信号通过 DSP 数字降噪模块进行噪声分

13、离并产生降噪信号来抵消噪声,因此 人耳就可以只听到较纯净的音频信号而不受环境噪声的干扰。本文采用最小均 方误差(LMS)算法,实现了数字降噪 DSP 中消除噪声的模块自适应滤波器的设 计,介绍了其在 MATLAB 中编程及仿真输出,并通过程序实现了设计。 2 2 原始语音信号采集与处理原始语音信号采集与处理 2.12.1 语音信号的采样理论依据语音信号的采样理论依据 .1 采样频率采样频率 采样频率是指计算机每秒钟采集多少个声音样本,是描述声音文件的音质、 音调,衡量声卡、声音文件的质量标准。采样频率越高,即采样的间隔时间越 短,则在单位时间内计算机得到的声音样本数据就越多,对

14、声音波形的表示也 越精确。采样频率与声音频率之间有一定的关系,根据奎斯特理论,只有采样 频率高于声音信号最高频率的两倍时,才能把数字信号表示的声音还原成为原 来的声音。这就是说采样频率是衡量声卡采集、记录和还原声音文件的质量标 准。 .2 采样位数采样位数 采样位数即采样值或取样值,用来衡量声音波动变化的参数,是指声卡在 采集和播放声音文件时所使用数字声音信号的二进制位数。采样频率是指录音 设备在一秒钟内对声音信号的采样次数,采样频率越高声音的还原就越真实越 自然。 采样位数和采样率对于音频接口来说是最为重要的两个指标,也是选择音 频接口的两个重要标准。无论采样频率如何,理论上

15、来说采样的位数决定了音 频数据最大的力度范围。每增加一个采样位数相当于力度范围增加了 6dB。采 样位数越多则捕捉到的信号越精确。对于采样率来说你可以想象它类似于一个 照相机,44.1kHz 意味着音频流进入计算机时计算机每秒会对其拍照达次。显 然采样率越高,计算机摄取的图片越多,对于原始音频的还原也越加精确。 .3 采样定理采样定理 在进行模拟/数字信号的转换过程中,当采样频率 fsmax 大于信号最高频率 fmax 的 2 倍时,即:fsmax=2fmax,则采样之后的数字信号完整地保留了原始 信号中的信息,一般实际应用中保证采样频率为信号最高频率的 510 倍,采 样定理

16、又称奈奎斯特定理。1924 年奈奎斯特(Nyquist)就推导出:在理想低通信 道的最大码元传输速率=2W*log2 N (其中 W 是理想低通信道的带宽,N 是电平强 度)。 2.22.2 语音信号的采集语音信号的采集 利用 PC 机上的声卡和 WINDOWS 操作系统可以进行数字信号的采集。将 话筒输入计算机的语音输入插口上,启动录音机。按下录音按钮,接着对话筒说话 “语音信号处理”,说完后停止录音,屏幕左侧将显示所录声音的长度。点击放音按 钮,可以实现所录音的重现。以文件名“OriSound”保存入 c : MATLAB work 中。 可以看到,文件存储器的后缀默认为. wav ,这是

17、 WINDOWS 操作系统规定的声音 文件存的标准。 2.32.3 语音信号的时频分析语音信号的时频分析 在 MATLAB 软件平台下,利用 wavread 函数对语音信号进行采样,记住 采样频率和采样点数,Wavread 函数调用格式: y=wavread(file) %读取 file 所规定的 wav 文件,返回采样值放在向量 y 中 y,fs,bits=wavread(file) %采样值放在向量 y 中,fs 表示采样频率 (hz) ,bits 表示采样位数 y=wavread(file,N) %读取前 N 点的采样值放在向量 y 中 y=wavread(file,N1,N2) %读取

18、从 N1 到 N2 点的采样值放在向量 y 中 对语音信号 OriSound.wav 进行采样其程序如下: y,fs,nbits=wavread (OriSound); %语音信号加载入 MATLAB 仿真软件平台 中 画出语音信号的时域波形,再对语音信号进行频谱分析。MATLAB 提供了快速 傅里叶变换算法 FFT 计算 DFT 的函数 fft,其调用格式如下: Xk=fft(xn,N) (式 2-3-1) 参数 xn 为被变换的时域序列向量,N 是 DFT 变换区间长度,当 N 大于 xn 的长 度时,fft 函数自动在 xn 后面补零。 ,当 N 小于 xn 的长度时,fft 函数计算

19、xn 的前 N 个元素,忽略其后面的元素。在本次设计中,我们利用 fft 对语音信号 进行快速傅里叶变换,就可以得到信号的频谱特性。程序如下: y,fs,nbits=wavread(OriSound); %语音信号的采集 sound(y,fs,nbits); %语音信号的播放 n=length(y) ; Y=fft(y,n); %快速傅里叶变换 figure; subplot(2,1,1); plot(y); title(原始信号波形,fontweight,bold); axis( 78000 80000 -1 1); grid; subplot(2,1,2); plot(abs(Y); ti

20、tle(原始信号频谱,fontweight,bold); axis( 0 0 4000); grid; 程序结果如下图: 7.87.827.847.867.887.97.927.947.967.988 x 10 4 -1 -0.5 0 0.5 1 主 主 主 主 主 主 051015 x 10 4 0 1000 2000 3000 4000 主 主 主 主 主 主 图 2-2 原始信号采集波形图 2.42.4 语音信号加噪与频谱分析语音信号加噪与频谱分析 在 MATLAB 中产生高斯白噪声非常方便,我们可以直接应用两个函数: 一个是 WGN,另一个是 AWGN。WGN 用于产生高斯白噪声,AW

21、GN 则用于 在某一信号中加入高斯白噪声。也可直接用 randn 函数产生高斯分布序列。 在本次设计中,我们是利用 MATLAB 中的随机函数(rand 或 randn)产生噪 声加入到语音信号中,模仿语音信号被污染,并对其频谱分析。Randn 函数有 两种基本调用格式:Randn(n)和 Randn(m,n),前者产生 nn 服从标准高斯分布 的随机数矩阵,后者产生 mn 的随机数矩阵。在这里,我们选用 Randn(m,n)函数。语音信号添加噪声及其频谱分析的主要程序如下: y,fs,nbits=wavread(OriSound); sound(y,fs,nbits); n = length

22、 (y) ; Noise=0.2*randn(n,2); s=y+Noise; sound(s); figure; subplot(2,1,1); plot(s); title(加噪语音信号的时域波形,fontweight,bold); axis( 78000 80000 -1 1); grid; S=fft(s); subplot(2,1,2); plot(abs(S); title(加噪语音信号的频域波形,fontweight,bold); axis( 0 0 4000); grid; 程序结果如下图: 图 2-3 信号加噪时域波形图与频谱图 7.87.827.847.867.887.97

23、.927.947.967.988 x 10 4 -1 -0.5 0 0.5 1 主 主 主 主 主 主 主 主 主 主 主 051015 x 10 4 0 1000 2000 3000 4000 主 主 主 主 主 主 主 主 主 主 主 3 基于基于 LMS 自适应滤波器自适应滤波器的设计的设计 在实际应用中,常常无法得到信号和噪声统计特性的先验知识。在这种情 况下,自适应滤波技术能够获得极佳的滤波性能,因而具有很好的应用价值。 常用的自适应滤波技术有:最小均方(LMS)自适应滤波器、递推最小二乘 (RLS)滤波器、格型滤波器和无限冲激响应(IIR)滤波器等。这些自适应滤 波技术的应用又包括

24、:自适应噪声抵消、自适应谱线增强和陷波等。 LMS 自适应滤波器是使滤波器的输出信号与期望响应之间的误差的均方值 为最小,因此称为最小均方(LMS)自适应滤波器。 3.13.1 基本基本 LMSLMS 算法算法 构成自适应数字滤波器的基本部件是自适应线性组合器,如图 3-1 的所示。 设线性组合器的 M 个输入为 x(k-1),x(k-M),其输出 y(k)是这些输入加权后的 线性组合,即 y(k)= W x(k-i) (式 3-1- M i 0 i 1) 图 3-1 自适应线性组合器 定义权向量,W=W1,W2,W3,Wm ,且 T X(k)=X(k-1)T,X(k-M)T) (式 3-1-

25、 T 2) 在图 3-1 中,令 d(k)代表“所期望的响应”,并定义误差信号 (k)=d(k)-y(k)=d(k) -W X(k-i) (式 3-1- M i 0 i 3) 式(3-1-3)写成向量形式 (k)=d(k)- W X(k) T =d(k)-X (k)W (式 3-1- T 4) 误差平方为 (k)=d (k)-2d(k)X (k)W + W X(k)X (k)W 22TTT 上式两边取数学期望后,得均方误差 E (k)=Ed (k)-2Ed(k)X (k)W + W EX(k)X (k)W (式 3-1- 22TTT 5) 定义互相关函数行向量 R: T xd R= Ed(k)

26、X (k) (式 3-1- T xd T 6) 和自相关函数矩阵 R= EX(k)X (k) (式 3-1- XX T 7) 则均方误差(3-1-5)式可表述为 E (k)=Ed (k)-2RW+ W RW (式 3-1- 22T xd T XX 8) 这表明,均方误差是权系数向量 W 的二次函数,它是一个中间向上凹的抛物形 曲面,是具有唯一最小值的函数。调节权系数使均方误差为最小,相当于沿抛 物形曲面下降找最小值。可以用梯度来求该最小值。 将式(3-1-8)对权系数 W 求导数,得到均方误差函数的梯度 (k)=-2R+2RW (式 3-1-9) xdXX 令(k)=0,即可求出最佳权系数向量

27、 W= RR (式 3-1- opt 1 XXxd 10) 它恰好是研究 Wiener 滤波器遇到过的 Wiener- Hopf 方程。因此,最佳权系数向 量通常也叫作 Wiener 权系数向量。将 W代入式(3-1-8)得最小均方误差 opt E (k)=Ed (k)-RW (式 3-1- 2 min 2T xdopt 11) 利用式(3-1-10)求最佳权系数向量的精确解需要知道 R和 R的先验统计 XXxd 知识,而且还需要进行矩阵求逆等运算。Widrow and Hoff (1960)提出了一种在 这些先验统计知识未知时求 W的近似值的方法,习惯上称为 Widrow and opt H

28、off LMS 算法。这种算法的根据是最优化方法中的最速下降法。根据最速下降 法,“下一时刻”权系数向量 W(k+1)应该等于“现时刻”权系数向量 W(k)加 上一个负均方误差梯度(k)的比例项,即 W(k+1)=W(k)- (k) (式 3-1- 12) 式中, 是一个控制收敛速度与稳定性的常数,称之为收敛因子。 不难看出,LMS 算法有两个关键:梯度(k)的计算以及收敛因子 的选择。 (一)(k)的近似计算 精确计算梯度(k)是十分困难的,一种粗略的但是却十分有效的计算(k) 的近似方法是:直接取 (k)作为均方误差 E (k)的估计值,即 22 (k)= (k)=2(k)(k) (式 3

29、-1-13) 2 得到梯度估值 (k)=-2(k)X(k) 于是,Widrow Hoff LMS 算法最终为 W(k+1)=W(k)+ 2(k)X(k) (式 3-1-14) 式(3-1-14)的实现方框图如图 3-2 所示 图 3-2 LMS 算法的实现方框图 下面分析梯度估值(k)的无偏性。(k)的数学期望为 (式 3-1- 15) 在上面的推导过程中,利用了 d(k)和 (k)二者皆为标量的事实。在得到最后的 结果时,利用了式(3-1-9)。式(3-1-15)表明,梯度估值(k)是无偏估 (二) 的选择 对权系数向量更新公式(3-1-14)两边取数学期望,得 EW(k+1)=EW(k)+

30、 2E(k)X(k) =(I-2R)EW(k)+ 2R (式 3-1-16) XXxd 式中,I 为单位矩阵,R= Ed(k)X(k)和 R= EX(k)X (k)。 xdXX T 当时,k=0 时, EW(1)=(I-2R)EW(0)+ 2R XXxd 对于 k=1,利用上式结果,则有 EW(2)=(I-2R)EW(1)+ 2R XXxd (I-2R) EW(0)+ 2(I-2R) R XX 2 1 0i XX i xd 起始时, EW(0)=W(0) 故重复以上迭代至 k+1,则有 EW(k+1)= (I-2R)W(0)+ 2(I-2R) R (式 3-1-17) XX 1k k i 0

31、XX i xd 由于 R是实值的对称阵,我们可以写出其特征值分解式 XX R=QQ =QQ (式 3-1- XX T1 18) 这里,我们利用了正定阵 Q 的性质 Q =Q,且 =diag( ,)是对角阵, T1 1M 其对角元素 i 是 R的特征值。将式(3-1-18)代入式(3-1-19)后得 XX EW(k+1)= (I-2QQ)W+ 2(I-2QQ) R (式 3-1- 11k k i 0 1i xd 19) 注意到以下恒等式及关系式: (1) (I-2QQ) =Q(I-2) Q 1ii1 (2) (I-2QQ) =Q(2)Q lim k k i 0 1i 0i 11 (3) 假定所有

32、的对角元素的值均小于 1(这可以通过适当选择 实现),则 (I-2)=0 lim k 1k (4) R= QQ 1 XX 11 将上式代入式(8-1-19),结果有 EW(k+1)= QQR= RR= W (式 3-1- 11 xd 1 XXxdopt 20) 由此可见,当迭代次数无限增加时,权系数向量的数学期望值可收敛至 Wiener 解,其条件是对角阵(I-2)的所有对角元素均小于 1,即 0 (式 3-1-21) max 1 其中 max 是 R的最大特征值。 称为收敛因子,它决定达到式(3-1-20)的 XX 速率。事实上,W(k)收敛于 W由比值 d =max/min 决定,该比值叫

33、做谱动 opt 态范围。大的 d 值喻示要花费很长的时间才会收敛到最佳权值。克服这一困难 的方法之一是产生正交数据。 基本 LMS 自适应算法如下: 初始化: W(0)=0; R(0)=I; 选择 :0 max 1 For k=1 to n final do:W(k)=W(k-1)+2x(k)-W (k-1)X(k)X(k) T LMS 自适应滤波器如图 3-3 所示: 图 3-3 LMS 自适应滤波器 3.2 自适应噪声抵消原理自适应噪声抵消原理 自适应噪声抵消的目的是要去除主信号中的背景噪声。主信号由有用信号 和背景噪声组成,而背景噪声与参考信号中的噪声相关。因此,自适应噪声抵 消技术主要

34、依赖于从主信号和噪声中获取参考信号。 Widrow 和 Hoff 发展了最小均方误差(LMS)自适应算法和称为自适应线 性阈值逻辑单元(ADALINE)的模式识别方法。1965 年,基于最小均方误差 准则(LMS)的自适应噪声抵消首次得以实现,随后,自适应噪声抵消在信号处 理、地震和生物医学领域均获得成功应用。 基于维纳理论的自适应噪声抵消需要无限加权滤波器,以极小化输出误差。 为了实现维纳滤波方案,必须使用有限加权滤波器。换句话说,自适应滤波器 必须假定维纳滤波器是一个有限冲激响应(FIR)滤波器。 图 3-4 自适应噪声抵消原理方框图 如图 3-4(a)所示是基于维纳滤波器的自适应噪声抵消

35、原理方框图。主信号由 有用信号 x(n)和背景噪声 v(n)构成,其中 s(n)和 v(n)不相关。参考信号 r(n)可与 s(n)或 v(n)相关。 (n)是背景噪声的最佳估计。 (n)可以通过选择最佳 FIR 维纳 v v 滤波器的最佳加权(n)计算得出,即w (n)= (n)r(n-m) 0mM (式 3-2-1) v M i 0 m w 其中,M 表示滤波器的阶;r(n-m)由延时获得。 具有 M 个权重滤波器的估计误差 e(n)由下式定义: e(n)=x(n)- (n)=x(n)- (n) (n) (式 3-2-2) v w T r 由正交原理有,e(n)和 r(n)正交。对式(32

36、- 2)两边取平方和数学期望,可得 Ee(n) = Ex(n) -2P+ R (式 3-2-3) 22T ww T w 其中,输入信号 s(n)和参考矢量 (n)之间的互相关用表示,即rP =Ex(n) (n) (式 8-2-4) Pr T R 表示输入自相关矩阵,即 R= (n) (n) (式 3-2-rr T 5) 令均方估计误差函数的梯度等于 0,可得最佳 FIR 滤波器(维纳滤波器)权重 如下, =R (式 3-2-w 1 P 6) 实际上,通常和 R 的统计量是未知的。然而,用 Widrow 和 Hoff 提出的P 方法迭代求解式(3-2-6)能够克服这一限制。如果参考信号和主信号中

37、的噪声 相关,则自适应滤波器将在输出端去除其相关性,具体方法是:从参考信道的 噪声中产生一个主信道中背景噪声的估计值 (n),然后从主信道中减去这个估 v 计噪声 (n),那么自适应滤波器的输出就是有用信号的估计 (n)。 v s 用最速下降法(或梯度下降法)可得到式(3-2-6)的解。自适应滤波器的 加权值被更新的第(n+1)步迭代式为w (n+1)= (n)+(n)=(n)- (式 3-2-wwww w nw )( 7) 3.33.3 基于最小均方误差准则基于最小均方误差准则(LMS)(LMS)的自适应噪声抵消的自适应噪声抵消 如果没有关于参考信号向量 P 和输入自相关矩阵 R 的先验信息

38、,要实现最 优滤波器加权是不可能的。因此,Widrow 和 Hoff 提出了另一种可迭代的维纳 FIR 滤波实现方法。在这种方法中,滤波器的权重可被更新为: (n+1)= (n)+2e(n) (n) (式 3-3-wwr 1) 综上所述,基于最小均方误差准则(LMS)的自适应噪声抵消算法可按以下步骤 实现: 第一步:设一个初值;(0); m w 第二步:计算自适应 FIR 滤波器的输出 (n), v (n)=(n)r(n-m) (式 3-3- v M i 0 m w 2) 其中,M 表示滤波器的阶。 第三步:估计当前时刻 n 的误差 e(n), e(n)=x(n)- (n) (n) (式 3-

39、3- v s 3) 第四步:用最速下降 LMS 算法更新滤波器权重:(n): m w (n+1)= (n)+2e(n)r(n-m) 0 (式 3-3- m w m wMm 4) 第五步:校验误差是否满足标准。若满足,则停止迭代,否则进行下一步; 第六步:nn+1,到下一个时刻,重复以上步骤,直至满足要求为止。 收敛参数 必须是正数,并且满足: 0 (式 3-3- R 1 5) 0 (式 3-3- max 1 6) 其中,max 表示自相关矩阵 R 的最大特征值。然而,在实际应用中,R 的具体 值是不知道的,参数 的值也需要试探性地选择。若 取值小,能保证收敛, 但需要注意的是,如果取得过小,收

40、敛速度将非常慢;相反,若 取值大,可 以提高收敛速度,却是以噪声收敛为代价的。 如果参考输入信号 r(n)是频率为 的正弦信号,自适应滤波器将从主信号 0 中滤除所有的频率为 的正弦成分。基于最小均方误差准则(LMS)的自适应噪 0 声抵消算法的程序见下节。 3.43.4 LMSLMS 算法程序算法程序 function yn,W,en=LMS(xn,dn,M,mu,itr) % LMS(Least Mean Squre)算法 % 输入参数: % xn 输入的信号序列(列向量) % dn 所期望的响应序列(列向量) % M 滤波器的阶数(标量) % mu 收敛因子(步长)(标量)要求大于 0,

41、小于 xn 的相关矩阵最大特征值的倒 数 % itr 迭代次数(标量) 默认为 xn 的长度,Mitrlength(xn) % 输出参数: % W 滤波器的权值矩阵(矩阵) 大小为 M x itr, % en 误差序列(itr x 1) (列向量) % yn 实际输出序列 (列向量) % 参数个数必须为 4 个或 5 个 if nargin = 4 % 4 个时递归迭代的次数为 xn 的长度 itr = length(xn); elseif nargin = 5 % 5 个时满足 Mitrlength(xn) | itrM error(迭代次数过大或过小!); end else error(请

42、检查输入参数的个数!); end % 初始化参数 en = zeros(itr,1); % 误差序列,en(k)表示第 k 次迭代时预期输出与实际输入的误 差 W = zeros(M,itr); % 每一行代表一个加权参量,每一列代表-次迭代,初始为 0 % 迭代计算 for k = M:itr % 第 k 次迭代 x = xn(k:-1:k-M+1); % 滤波器 M 个抽头的输入 y = W(:,k-1). * x; % 滤波器的输出 en(k) = dn(k) - y ; % 第 k 次迭代的误差 % 滤波器权值计算的迭代式 W(:,k) = W(:,k-1) + 2*mu*en(k)*

43、x; end % 求最优时滤波器的输出序列 yn = inf * ones(size(xn); for k = M:length(xn) x = xn(k:-1:k-M+1); yn(k) = W(:,end).* x; end 4 4 滤波滤波并比较滤波前后信号的波形及频谱并比较滤波前后信号的波形及频谱 4.14.1 验证所设计的自适应滤波器验证所设计的自适应滤波器 为了验证滤波器的可使用性,我们用常用的 sin 函数来进行验证。其具体 程序及运行结果如下: 调用 LMS 算法: %function main() close all % 周期信号的产生 t=0:99; xs=10*sin(0

44、.5*t); figure; subplot(2,1,1); plot(t,xs);grid; ylabel(幅值); title(it输入周期性信号); % 噪声信号的产生 randn(state,sum(100*clock); xn=randn(1,100); subplot(2,1,2); plot(t,xn);grid; ylabel(幅值); xlabel(时间); title(it随机噪声信号); % 信号滤波 xn = xs+xn; xn = xn. ; % 输入信号序列 dn = xs. ; % 预期结果序列 M = 20 ; % 滤波器的阶数 rho_max = max(ei

45、g(xn*xn.); % 输入信号相关矩阵的最大特征值 mu = rand()*(1/rho_max) ; % 收敛因子 0 mu 1/rho yn,W,en = LMS(xn,dn,M,mu); % 绘制滤波器输入信号 figure; subplot(2,1,1); plot(t,xn);grid; ylabel(幅值); xlabel(时间); title(it滤波器输入信号); % 绘制自适应滤波器输出信号 subplot(2,1,2); plot(t,yn);grid; ylabel(幅值); xlabel(时间); title(it自适应滤波器输出信号); % 绘制自适应滤波器输出信

46、号,预期输出信号和两者的误差 figure plot(t,yn,b,t,dn,g,t,dn-yn,r);grid; legend(自适应滤波器输出,预期输出,误差); ylabel(幅值); xlabel(时间); title(it自适应滤波器); 运行结果 图 4-1 验证自适应滤波器可行性结果 由所得结果可知,所设计的滤波器符合要求。 4.24.2 对主麦克风音频信号滤波对主麦克风音频信号滤波 .1 程序流程图程序流程图 图 4-2 程序流程图 .2 LMSLMS 自适应滤波自适应滤波 用自己设计的滤波器对加噪的主麦克风语音信号进行滤波,主麦克风录制 的带噪

47、声的语音信号为 LMSprimsp.wav,参考麦克风录制的噪声语音信号为 LMSrefns.wav。 1)主麦克风录制的语音信号的读取 primary,fs,nbits=wavread(LMSprimsp.wav); 开始 用 wavread 读取主麦克风录制的受噪声干扰的语音信号,并进行采样,建立数据文 件,并用 plot 画出数据文件时域波形图和频谱图 用 wavread 读取参考麦克风录制的噪声信号,并用 plot 画出时域波 形图和频谱图 并对其进行频谱分析 回放语音信号得出所设计滤波器在语音处理中的优劣 结束 运用 LMS 算法设计自适应滤波器, 并对被噪声污染的语音信号进 行滤波

48、,分析滤波后信号的时域和频域特征 sound(primary,fs,nbits); %语音信号的播放 2)绘制主麦克风录制的语音信号波形及频谱 n=length(primary) ; P=fft(primary,n); %快速傅里叶变换 figure; subplot(2,1,1); plot(primary); ylabel(幅值); xlabel(时间); title(主麦克风录制的受噪声污染的语音信号,fontweight,bold); grid; subplot(2,1,2); plot(abs(P); title(主麦克风语音信号频谱,fontweight,bold); grid;

49、运行结果: 图4-3 主麦克风录制的语音信号 3)参考麦克风录制的噪声信号的读取,并绘制其波形及频谱 fref=wavread(LMSrefns.wav); 0123456 x 10 4 -1 -0.5 0 0.5 1 主 主 主 主 主 主 主 主 主 主 主 主 主 主 0123456 x 10 4 0 100 200 300 主 主 主 主 主 主 主 主 主 主 n=length(fref) ; F=fft(fref,n); figure; subplot(2,1,1); plot(fref);grid; ylabel(幅值); xlabel(时间); title(参考麦克风录制的噪声

50、信号,fontweight,bold); subplot(2,1,2); plot(abs(F); title(噪声信号频谱,fontweight,bold); grid; 运行结果: 图4-4 参考麦克风录制的噪声信号 4)调用LMS自适应滤波函数对主麦克风录制的语音信号进行滤波,得到增强后 的语音信号。 xs=primary -fref; 0123456 x 10 4 -1 -0.5 0 0.5 1 主 主 主主 主 主 主 主 主 主 主 主 主 主 主 主 0123456 x 10 4 0 50 100 150 200 主 主 主 主 主 主 xn =primary. ; % 输入信号

51、序列 dn = xs. ; % 预期结果序列 M = 20 ; % 滤波器阶数 rho_max = max(eig(xn*xn.); %输入信号相关矩阵的最大特征值 mu = rand()*(1/rho_max) ; %收敛因子 0 mu 1/rho yn,W,en = LMS(xn,dn,M,mu); 5)算法仿真收敛后,得到增强的语音信号,绘制滤波增强后的语音信号 figure; subplot(2,1,1); plot(primary);axis(1 length(primary) min(primary) max(primary); title(输入主麦克风信号); subplot(2

52、,1,2); plot(t,yn);grid; ylabel(幅值); xlabel(时间); title(LMS自适应滤波器输出信号); 运行结果: 图 4-5 LMS 自适应滤波结果 0.511.522.533.544.55 x 10 4 -0.5 0 0.5 主主 主主 主主 主主 0.511.522.533.544.55 x 10 4 -1 -0.5 0 0.5 1 LMS主主 主主 主主 主主 主主 6) 分别对增强前后的语音信号作频谱分析 %绘制输入带噪信号频谱 n=length(primary) ; P=fft(primary,n); %快速傅里叶变换 figure; subpl

53、ot(2,1,1); plot(abs(P); title(滤波前语音信号频谱,fontweight,bold); grid; %绘制滤波增强后信号频谱 n=length(yn) ; Y=fft(yn,n); figure subplot(2,1,2); plot(abs(Y);grid; title(LMS自适应滤波后信号频谱,fontweight,bold); 运行结果 图4-6 滤波增强前后信号频谱 0123456 x 10 4 0 100 200 300 主 主 主 主 主 主 主 主 主 0123456 x 10 4 0 10 20 30 40 50 LMS主 主 主 主 主 主 主

54、 主 主 主 7)回放增强后的语音信号 wavplay(yn) ; %语音输出降噪后的语音 wavwrite(yn,output); %生成语音文件 output.wav 文件 4.34.3 调试分析调试分析 结果分析: 1)通过对滤波前后主麦克风语音信号波形的分析可知,滤波前信号波 形受噪声干扰严重,有用信号被噪声覆盖,几乎都是噪声;滤波后 滤除了信号中的噪声分量,有用信号被提取出来,起到了信号增强 的目的。 2)通过对滤波前后主麦克风语音信号频谱的观察分析可知,滤波前后 频谱分量明显减弱,滤波后频谱分量较集中,有明显改善。 经过以上的降噪处理后,可在 Matlab 中用函数 sound 对

55、声音进行回放。其 调用格式:sound(y,Fs),sound(y)和 sound(y,Fs,bits)。可以察觉滤波前后 的声音有明显的变化。 对主麦克风输入的受噪声干扰的语音信号,进行基于 LMS 自适应滤波的源 程序代码见附录。 心得体会心得体会 本次课程设计通过给定主麦克风录制的受噪声污染的语音信号和参考麦克 风录制的噪声,实现语音增强的目标,得到清晰的语音信号。运用数字信号处 理理论,基于 LMS 算法设计自适应滤波器,并对被噪声污染的语音信号进行滤 波,分析滤波前后信号的时域和频域特征,回放语音信号。 这次课设对我来说有一定的难度,之前学习过数字信号处理的基础知识, 会一些基本的 MATLAB 语句,但仅仅凭借这些知识无法完成本次课设的要求任务。 我首先上网搜集资料,去图书馆借阅有关语音信号处理方面的书籍,查阅 LMS 算法,自适应滤波器的原理等。通过阅读参考资料和文献,明晰算法的计算过 程,理解 LMS 算法基本过程和自适应滤波器的设计原理及方法。然后阅读了基 于 MATLAB 的语音信号处理方面的书籍,查阅了常用的语音信号处理函数的格式, 如:语音信号读取 wavread 函数,语音回放 wavplay 函数,声音回放 sound 函 数,生成语音信号 wavwrite 函数等。在打下了这些基础后

温馨提示

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

评论

0/150

提交评论