logo资料库

基于RLS算法的多麦克风降噪.doc

第1页 / 共28页
第2页 / 共28页
第3页 / 共28页
第4页 / 共28页
第5页 / 共28页
第6页 / 共28页
第7页 / 共28页
第8页 / 共28页
资料共28页,剩余部分请下载后查看
摘要
Abstract
目录
1.MATLAB简介
1.1 MATLAB产生的历史背景
1.2 MATLAB的语言特点和开发环境
1.3 MATLAB应用领域
2.基本原理
2.1自适应滤波
2.2RLS算法原理
3.RLS算法的多麦克风降噪
3.1设计任务
3.2设计要求
3.3设计方案讨论
3.4语音信号提取
3.5直接设计算法方案
3.5.1主要算法实现
3.5.2仿真结果
3.6调用库函数设计方案
3.6.1库函数介绍
3.6.2主程序
3.6.3仿真结果
3.7 使用Simulink工具箱进行仿真
3.8 GUI设计
4.设计小结
参考文献
附件
1方案一程序清单
2方案二程序清单
3 方案三原理图
摘要 自适应滤波器是统计信号处理的一个重要组成部分。在处理未知统计环境下运算结果 所产生的信号或需要处理非平稳信号时,自适应滤波器可以提供一种吸引人的解决方法, 而且其性能通常远优于用常方法设计的固定滤波器。此外,自适应滤波器还能提供非自适 应方法所不可能提供的新的信号处理能力。 本次课程设计使用 MATLAB 软件,运用自适应滤波中的 RLS 算法实现麦克风降噪。采 用 m 文件、simulink 工具箱两种方式,使用生成函数与调用库函数两种方法,对比实现对 带噪语音信号的去噪处理,得到了非常理想的仿真结果。 关键词:MATLAB,自适应滤波,RLS 算法,麦克风降噪 I
Abstract Statistical signal processing adaptive filter is an important component. Unknown statistical processing result of the operation environment of the signal generated or to deal with non-stationary signals, the adaptive filter can provide an attractive solution, and its performance is usually far superior to the regular fixed filter designed. In addition, the adaptive filter also provides non-adaptive method may not provide a new signal processing capability. This course is designed to use MATLAB software, the use of the RLS adaptive filtering microphone noise reduction algorithm. Using m file, simulink toolbox in two ways, using the generating function call library functions with both methods, compared to realize the noisy speech signal denoising, has been very good simulation results. Keywords: MATLAB, adaptive filter, RLS algorithm, microphone noise reduction II
目录 摘要..................................................................................................................................................I Abstract........................................................................................................................................... II 1.MATLAB 简介............................................................................................................................... 1 1.1 MATLAB 产生的历史背景................................................................................................ 1 1.2 MATLAB 的语言特点和开发环境.................................................................................... 2 1.3 MATLAB 应用领域............................................................................................................ 3 2.基本原理......................................................................................................................................4 2.1 自适应滤波.......................................................................................................................4 2.2RLS 算法原理..................................................................................................................... 5 3.RLS 算法的多麦克风降噪........................................................................................................... 8 3.1 设计任务...........................................................................................................................8 3.2 设计要求...........................................................................................................................8 3.3 设计方案讨论...................................................................................................................8 3.4 语音信号提取...................................................................................................................9 3.5 直接设计算法方案...........................................................................................................9 3.5.1 主要算法实现........................................................................................................9 3.5.2 仿真结果..............................................................................................................10 3.6 调用库函数设计方案.....................................................................................................11 3.6.1 库函数介绍..........................................................................................................11 3.6.2 主程序..................................................................................................................12 3.6.3 仿真结果..............................................................................................................13 3.7 使用 Simulink 工具箱进行仿真....................................................................................15 3.8 GUI 设计..........................................................................................................................16 4.设计小结....................................................................................................................................18 参考文献.......................................................................................................................................19 附件...............................................................................................................................................20 1 方案一程序清单................................................................................................................20 2 方案二程序清单................................................................................................................22 3 方案三原理图...................................................................................................................25 III
1.MATLAB 简介 1.1MATLAB 产生的历史背景 MATLAB 是美国 MathWorks 公司生产的一个为科学和工程计算专门设计的交互式大型 软件,是一个可以完成各种精确计算和数据处理的、可视化的、强大的计算工具。它集图 示和精确计算于一身,在应用数学、物理、化工、机电工程、医药、金融和其他需要进行 复杂数值计算的领域得到了广泛应用。它不仅是一个在各类工程设计中便于使用的运算工 具,而且也是一个在数学、数值分析和工程计算等课程教学中的优秀的教学工具,在世界 各地的高等院校中十分流行,在各类工业应用中更有不俗的表现。MATLAB 可以在几乎所有 的 PC 机和大型计算机上运行,适用于 Windows、UNIX 等多种系统平台。 MATLAB 名称是由两个英文单词 Matrix 和 Laboratory 的前二个字母组成。20 世纪 70 年代后期,美国新墨西哥大学计算机系主任 Cleve.Moler 教授为了便于教学,减轻学生 编写 Fortran 程序的负担,为两个矩阵运算软件包 Linpack 和 Eispack 编写了接口程序, 这也许就算 MATLAB 的第一个版本。1984 年,在 JackLittle(也称 JohnLittle)的建议推动 下,由 Little、Moler、SteveBangert 三人合作,成立 rMathWorks 公司,同时把 MATLAB 正式推向市场。从那时开始,MATLAB 的源代码采用 C 语言编写,增加了数据图形的可视化 功能。1993 年,MathWorks 公司推出了 MATLAB 的 4.0 版本,系统平台由 DOS 改为 Windows, 推出了功能强大的、可视化的、交互环境的用于模拟非线性动态系统的工具 Simulink,为 MATLAB 进行实时数据分析、处理和硬件开发而推出了与外部直接进行数据交换的组件,为 MATLAB 能融科学计算、图形可视、文字处理于一体而制作了 Notebook,MathWorks 使 MATLAB 成为国际控制界公认的标准计算软件。 MATLAB 拥有了更丰富的数据类型和结构,更好的面向对象的快速精美的图形界面, 更多的数学和数据分析资源,MATLAB 工具也达到了 25 个,几乎涵盖了整个科学技术运算 领域。在大部分大学里,应用代数、数理统计、自动控制、数字信号处理、模拟与数字通 信、时间序列分析、动态系统仿真等课程的教材都把 MATLAB 作为必不可少的内容。 1
1.2MATLAB 的语言特点和开发环境 MATLAB 作为一种科学计算的高级语言之所以受欢迎,就是因为它有丰富的函数资源和 工具箱资源,编程人员可以根据自己的需要选择函数,而无需再去编写大量繁琐的程序代 码,从而减轻了编程人员的工作负担。被称为第四代编程语言的 MATLAB 最大的特点就是 简洁开放的程序代码和直观实用的开发环境。具体地说 MATLAB 主要有以下特点: (1)库函数资源丰富:数百种库函数大大减轻了用户子程序的编写工作量,也避免了 一些不必要的错误,因而用户也不必担心程序的可靠性问题。 (2)语言精炼,代码灵活:MATLAB 的编程语言符合人们的思维习惯,对代码的书写也 没有特别严格的控制,语言精炼,程序的亢余度非常小。 (3)运算符多而灵活:MATLAB 的内核是用 c 语言编写的,它为用户提供了和 C 语言一 样多的运算符,用户运用这些运算符可以使程序更加简炼。 (4)面向对象,控制功能优良:MATLAB 在 5.x 各版本中优化了数据结构,使得程序 的结构化控制更精良,面向对象的功能更加友善。特别是当前的 7.0 版,在可视化编程 方面比以前的版本又有了更大的提高,使界面编程更方便、自由。 (5)程序设计自由:MATLAB7.0 版支持长变量名达到 63 个字符,用户可以不对矩阵 进行预定义就使用,变量和数组的应用也有了很大的扩展,这为用户编写程序提供了更大 的自由度,使编程更加简单、方便。 (6)图形功能强大:在很多程序语言中,绘制图形是一件很麻烦的事情。但在 MATLAB 中,只需调用相应的绘图函数即可,既方便又迅速。随着硬件的发展和 MATLAB7.0 推出, MATLAB 的图形功能更好,可视化编程能力得到更进一步的提高。 (7)程序的兼容性好:MATLAB 可以在各种 PC 机、大型计算机和各种操作系统上运行。 (8)源代码开放:MATLAB 的最重要的特点是源代码的开放性,除了内部函数,所有的 MATLAB 核心文件和工具箱文件都完全开放,都可渎可改。用户对源文件修改就可以生成适 合自己的源代码文件。 (9)形形色色的工具箱:凡有工具箱的软件大都分为两大部分,就是核心部分和形形 色色的工具箱。MATLAB 有数百个核心内部函数,数十个形形色色的工具箱。工具箱大致可 以分为两大类,——类是学科性工具箱,另一类是功能性工具箱。学科性工具箱大都涵盖 2
了本学科所有的已有的基本概念和基本运算,大都十分专业。如符号数学工具箱,简直就 是一个高等数学、工程数学解题器。极限、导数、微分、积分、级数运算与展开、微分方 程求解、Laplace 变换等应有尽有。还有控制系统、信号处理、模糊逻辑、神经网络、小 波分析、统计;优化、金融预测等工具箱,无一不是非常优秀的运算工具。这些工具箱都 可以添加自己根据需要编写的函数,用户可以不断更新自己的工具箱,使之更适合于自己 的研究和计算。 1.3MATLAB 应用领域 MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测 量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特定类型的问题。 MATLAB 产品族可以用来进行以下各种工作: (1)数值分析 (2)数值和符号计算 (3)工程与科学绘图 (4)控制系统的设计与仿真 (5)数字图像处理技术 (6)数字信号处理技术 (7)通讯系统设计与仿真 (8)财务与金融工程 MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测 量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特定类型的问题。 3
2.基本原理 2.1 自适应滤波 常用的滤波器如维纳滤波器和卡尔曼滤波器,维纳滤波器参数是固定的,适合于平稳 随机信号;卡尔曼滤波器参数是时变的,适合于非平稳随机信号。然而,只有在信号和噪 声的统计特性先验已知的情况下,这两种滤波技术才能获得最优滤波。在实际应用中,常 常无法得到信号和噪声统计特性的先验知识。在这种情况下,自适应滤波技术能够获得极 佳的滤波性能,因而具有很好的应用价值。 自适应滤波器是一种能够自动调节自身的冲激响应 h[n]以达到最优化的维纳滤波器。 自适应滤波器的设计,事先未必一定要知道信号与噪声的自相关函数。而且当信号与噪声 的自相关函数即使随时间发生某些变化,它也能够自动调节到最佳滤波的要求。基于维纳 理论的自适应噪声抵消需要无限加权滤波器,以极小化输出误差。为了实现维纳滤波方案, 必须使用有限加权滤波器。换句话说,自适应滤波器必须假定维纳滤波器是一个有限冲激 响应(FIR)滤波器。 图 2-1(a).最佳噪声抵消器 图 2-1(b).自适应噪声抵消器 4
图 a 所示是基于维纳滤波器的自适应噪声抵消原理方框图。主信号 是由有用信 号 和背景噪声 构成,其中 和 不相关。参考信号 可与 或 相关。 是背景噪声 的最佳估计。 可以通过选择最佳 FIR 维纳滤波器的最佳加权 计算得出,即 具有 M 个权重滤波器的估计误差 输入信号 与参考矢量 之间的互相关用 P 表示,即 R 表示输入自相关矩阵,即 令均方估计误差函数的梯度等于 0,可得最佳 FIR 滤波器(维纳滤波器)权重如下, 实际上,通常 P 和 R 的统计量是未知的。然而,用 Widrow 和 Hoff 提出的方法迭代求 解式(8 – 2-9)能够克服这一限制。图 8-4(b)表示了自适应滤波器的方框图。如果参考 信号 和主信号中的噪声 相关,则自适应滤波器将在输出端去除其相关性,具体方 法是:从参考信道的噪声中产生一个主信道中背景噪声的估计值 ,然后从主信道中减 去这个估计噪声 ,那么自适应滤波器的输出就是有用信号的估计 。 2.2RLS 算法原理 RLS(递推最小二乘)算法是一种基于最小二乘准则的精确方法,它具有快速收敛和稳 定的滤波器特性,因而被广泛地应用于实时系统识别和快速启动的信道均衡等领域。但对 于某些应用来说,这种算法的计算量会很大,因为它每次更新需要 次运算。 RLS 算法的基本思想是:给定 n-1 次迭代滤波器抽头权向量最小二乘估计,依据新到达的 数据计算 n 次迭代权向量的最新估计。递规最小二乘算法利用二乘方的平均最小化准则, 即使得误差的平方和最小。依这一准则我们可以得出方程组: ( ) k n  1  1 ( ) (  P n U n  1 1) ( ) H  U P n U n  1)   ( (1) 5
分享到:
收藏