基于LMS算法和Matlab的自适应滤波器的设计
LMS算法自适应滤波器的MATLAB仿真与DSP实现

据存储器,64k字的程序存储器.具有高度并行性.用DSP特有的汇编语言实现以上3种LMS算法自适应滤波器.在TMS320C54X的指令系统中,单周期乘/累加指令MAC和循环寻址方式可使滤波器在一个周期内完成每个样值的计算.在实现LMS自适应算法时,由于要计算两组数对应项乘积的累加和,还有要采用循环寻址方式,因此,本文滤波器程序中采用DSP指令中的RPTZ和MAC结合循环寻址方式实现两累加和的运算.RPTZA,#F1LTERMAC℃OFF_DP+0%,*DATA_DP+0%,A其中,RPTZ指令用于将累加器A清零,将立即数10(本实验中滤波器阶数取11)装入到重复计数器,使下条MAC指令重复执行10+1次.MAC指令实现将两存储区数据的乘积累加到累加器A,使存储器的指针以循环寻址的方式指向下一个存储区.其中,FILTER,COFF_DP,DATA—DP分别为自适应滤波器的阶数,自适应滤波器系数缓冲区指针和输入样值缓冲区指针.为了提高算法效率,程序中使用了TMS320C54X特有的LMS指令,来快速实现本文的几种自适应滤波器.设计中,采用1500Hz的期望信号与312Hz的噪声信号叠加作为11个系数的自适应滤波器的一个输入信号,对于每一个时刻r/,,计算自适应滤波器的输出,误差信号是输出信号与期望信号的差值.固定步长LMS算法,变步长LMS算法和归一化LMS算法在SZ—EPP5416评估板上实现的结果如图3所示.70(d)归一化LMS算法滤波结果图3DSP实现结果Fig.3TherealizationDSP图3中,横坐标为仿真时间,竖坐标为波形幅值,图3(a)为输入含噪声的叠加信号,图3(b)为固定步长LMS算法滤波器实现结果,从图3(b)中可以看出,在滤波初始阶段,滤波结果不明显,输入的叠加信号经过自适应滤波器后在初始阶段噪声没有得到明显抑制,存在较大稳态误差,收敛速度比较慢,收敛速度和稳态误差都有待改善.图3(c)为变步长LMS算法滤波结果,从图3(c)中可以看出,在滤波初始阶段,稳态误差已得到改善,但仍有较小稳态误差浮动,初始收敛速度有所加快,输入的叠加信号经过自适应滤波器后噪声得到较明显抑制,滤波性能优于固定步长LMS算法.图3(a)为归一化LMS算法滤波结果,从图3(d)中可以看出,在滤波初始阶段,稳态误差已经得到明显改善,稳态误差浮动已经得到改善,输入的叠加信号经过自适应滤波器后噪声得到更明显抑制,更好的克服了固定步长存在的矛盾.可见,此滤波器滤波效果最为明显.4结论初始收敛速度与稳态误差是衡量自适应滤波算法性能优劣的两个重要技术指标,本文通过对固定步长,变步长LMS算法和归一化LMS算法自适应滤波器进行MATLAB仿真与DSP实现,比较滤波结果,证明了归一化LMS算法能够保证具有更快的收敛速度与更小的稳态误差,能有效去除不相关的独立噪声的干扰,克服了固定步长在增大初始收敛速度与减小稳态误差之间存在的矛盾,优化了自适应滤波器的性能,滤波效果明显.参考文献:【l】1ShireenW,LiT.ADSP-Nmedactivepowerfilterforlowvoltagedistributionsystems田.F_如2tricPowersyBtel璐Research,2008,78:1561—1567.【2】吕振肃,熊景松.一种改进的变步长LMS自适应算法【刀.信号处理,2008,24(1):144-146.LvzS,XiongJS.Anovdi呻r--ovedvariablestep-sizeLMS妇riⅡ姗田.SigllalProcessing,2008,24(1):144一146.【3】KukrerO.№caniIIA.Frequency-response-shapedLMSadaptivefilter田.Digitalsil}IalPro∞s*ing,2006,16:855—869.【4】叶永生,余容桂.一种新的自适应最小均方算法及其应用研究【刀.电测与仪表,2008,45(7):19—22.YeYS。
使用LMS算法设计FIR自适应滤波器

使用LMS算法设计FIR自适应滤波器自适应滤波器是统计信号处理的一个重要组成部分。
在实际应用中,由于没有充足的信息来设计固定系数的数字滤波器,或者设计规则会在滤波器正常运行时改变,因此我们需要研究自适应滤波器。
凡是需要处理未知统计环境下运算结果所产生的信号或需要处理非平稳信号时,自适应滤波器可以提供一种吸引人的解决方法,而且其性能通常远优于用常方法设计的固定滤波器。
此外,自适应滤波器还能提供非自适应方法所不可能提供的新的信号处理能力。
通过《现代信号处理》这门课程的学习,掌握了自适应滤波器的基本理论、算法及设计方法。
本文中对最小均方误差(LMS)算法进行了认真的回顾,最终采用改进的LMS 算法设计FIR结构自适应滤波器,并采用MATLAB进行仿真。
一、自适应滤波器理论基础1、基本概念凡是有能力进行信号处理的装置都可以称为滤波器。
在近代电信装备和各类控制系统中,滤波器应用极为广泛;在所有的电子部件中,使用最多,技术最复杂要算滤波器了。
滤波器的优劣直接决定产品的优劣,所以,对滤波器的研究和生产历来为各国所重视。
滤波器是一种用来消除干扰杂讯的器件,将输入或输出经过过滤而得到纯净的交流电。
您可以通过基本的滤波器积木块——二阶通用滤波器传递函数,推导出最通用的滤波器类型:低通、带通、高通、陷波和椭圆型滤波器。
传递函数的参数——f0、d、hHP、hBP 和hLP,可用来构造所有类型的滤波器。
转降频率f0为s项开始占支配作用时的频率。
设计者将低于此值的频率看作是低频,而将高于此值的频率看作是高频,并将在此值附近的频率看作是带内频率。
阻尼d用于测量滤波器如何从低频率转变至高频率,它是滤波器趋向振荡的一个指标,实际阻尼值从0至2变化。
高通系数hHP是对那些高于转降频率的频率起支配作用的分子的系数。
带通系数hBP是对那些在转降频率附近的频率起支配作用的分子的系数。
低通系数hLP是对那些低于转降频率的频率起支配作用1的分子的系数。
基于LMS算法的自适应滤波器的设计

( 1964—) ,女,副教 授,研 究 方 向: 扩 频 通 信 技 术 及 应 用、信号处理等.
应用,在 70 年代自适应滤波器主要朝着低功耗、 高精度、小体积、多功能、高稳定等方向发展; 如今 主要致力于将各类滤波器应用于各类产品[2]。我 国在 50 年代开始广泛使用滤波器,主要用于话路 的滤波,以 及 回 声 的 抵 消。 随 着 微 电 子 技 术 的 高 速发展,FPGA 内部资源的逐渐丰富,为数字滤波 器的硬件实现开辟了宽广的领域。对于普通的基 于 LMS 算法的自适应滤波器来说其系数更新和 滤波不能同时进行,必须等滤波结果产生后,才能 得出误差信 号 进 行 系 数 更 新,各 部 分 不 能 同 时 进 行,系统的工作效率不高; 而本文所设计的 FIR 自 适应滤波器通过对 LMS 算法的改进,使数据在时
商英娜等: 电路板绝缘电阻的曲线拟合
91
过模型了解印制电路板的性能。
间大于 1480h 时绝缘电阻可以判断为失效。
利用软件 Matlab 对数据进行处理和拟合回归
分析,可以提高拟合结果的综合分析和判断水平, 参考文献:
了解数据的变化规律和趋势。
实际环境中 温 度 的影响很大。将温度与湿度的关 系应用到经 验 模 型 中,将 使 建 立 的 经 验 模 型 更 加 准确。
( 沈阳理工大学 信息科学与工程学院,辽宁 沈阳 110159)
摘 要:设计了基于 LMS 算法的 FIR 自适应滤波器,采用 MATLAB 仿真软件对其进行 了仿真。根据自顶向下的设计流程,采用 DDS 技术和流水线设计方法,在 Quartus II 开 发平台上采用 Verilog HDL 语言对其进行了硬件实现。实验结果证明该设计比普通自 适应滤波器具有结构简单、易于实现、滤波速度快的优点.
自适应滤波LMS与RLS的matlab实现

自适应滤波LMS与RLS的matlab 实现MATLAB 仿真实现LMS 和RLS 算法的二阶AR 模型及仿真结果分析一、题目概述:二阶AR 模型如图1a 所示,可以如下差分方程表示:)()()2()1()()(21n d n v n x a n x a n v n x +=----= (1)图1a其中,v(n)是均值为0、方差为0.965的高斯白噪声序列。
a 1,a 2为描述性参数,.95,0,195.021=-=a a 设x(-1)=x(-2)=0,权值w 1(0)=w 2(0)=0,μ=0.04①推导最优滤波权值(理论分析一下)。
②按此参数设置,由计算机仿真模拟权值收敛曲线并画出,改变步长在此模拟权值变化规律。
③对仿真结果进行说明。
④应用RLS 算法再次模拟最优滤波权值。
解答思路:(1)高斯白噪声用normrnd函数产生均值为0、方差为0.965的正态分布随机1*N矩阵来实现。
随后的产生的信号用题目中的二阶AR模型根据公式(1)产生,激励源是之前产生的高斯白噪声。
(2)信号长度N取为2000点,用以观察滤波器权值变化从而估计滤波器系数,得到其收敛值。
(3)仿真时分别仿真了单次LMS算法和RLS算法下的收敛性能以及100次取平均后的LMS和RLS算法的收敛性能,以便更好的比较观察二者的特性。
(4)在用不同的分别取3个不同的μ值仿真LMS算法时,μ值分别取为0.001,0.003,0.006;用3个不同的λ值仿真RLS算法时λ值分别取为1,0.98,0.94,从而分析不同步长因子、不同遗忘因子对相应算法收敛效果的影响。
二、算法简介上式越旧的数据对()n ε的影响越小。
通过计算推导得到系数的迭代方程为:w (n )=w (n −1)+k (n )e ∗(n) (5)式(5)中,增量k(n)和误差e ∗(n)计算公式如下:(n 1)x(n)k(n)(n)T(n 1)x(n)T T x λ-=+- (6)e ∗(n )=d ∗(n )−x T (n )∗w(n −1)(7) 式(6)中T(n)= R̂−1(n ),也就是当前时刻自相关矩阵的逆。
自适应滤波器MATLAB仿真

自适应滤波器MATLAB仿真摘要:本文介绍了自适应滤波器的工作原理,以及推导了著名的LMS(Least mean squares)算法。
以一个例子演示了自适应滤波器的滤波效果。
实验结果表明,该滤波器滤波效果较好。
关键词:自适应滤波器 MATLAB7.0 LMS算法Simulate of adaptive filter based on MATLAB7.0Abstract:This article described the working principle of adaptive filter and deduced the well-known LMS algorithm. Take an example to demonstrate the adaptive filters filtering effects. The results show that the filter has an effective way to filter single.Key words:LMS algorithm Adaptive Filter Matlab7.01 引言由Widrow B等提出的自适应滤波理论,是在维纳滤波、卡尔曼滤波等线性滤波基础上发展起来的一种最佳滤波方法。
由于它具有更强的适应性和更优的滤波性能,从而广泛应用于通信、系统辨识、回波消除、自适应谱线增强、自适应信道均衡、语音线性预测和自适应天线阵等诸多领域[1]。
自适应滤波器最大的优点在于不需要知道信号和噪声的统计特性的先验知识就可以实现信号的最佳滤波处理。
本文通过一个具体例子和结果论证了自适应滤波器的滤波效果。
2 自适应滤波原理及LMS算法2.1 自适应滤波原理自适应滤波原理图[2],如图1所示。
图1自适应滤波原理图在自适应滤波器中,参数可调的数字滤波器一般为FIR数字滤波器,IIR数字滤波器或格型数字滤波器。
自适应滤波分2个过程。
第一,输入信号想x(n)通过参数可调的数字滤波器后得输出信号y(n),y(n)与参考信号d(n)进行比较得误差信号e(n);第二,通过一种自适应算法和x(n)和e(n)的值来调节参数可调的数字滤波器的参数,即加权系数,使之达到最佳滤波效果。
自适应信号处理论文-基于MATLAB的自适应滤波算法研究

自适应信号处理论文基于MATLAB 的自适应滤波算法研究摘要:自适应滤波算法是自适应滤波器设计的核心部分,本文主要介绍了两种算法: LMS 算法和DCT 变换。
LMS 算法是时域变换,DCT 是频域变换,文章采用 MATLAB 相关函数实现了对信号变换的仿真,并对这两种算法进行了一定的对比。
关键词:Matlab ,LMS 算法,DCT 变换1、引言LMS 算法是自适应滤波算法中最基本的算法,它包含了自适应滤波的许多基本的概念,是其它许多算法的基础,是实际中使用的最广泛的一种算法。
LMS 算法是在最陡下降法的基础上导出的,可以说LMS 算法是最陡下降法的随机实现。
表1详细地给出LMS 算法,其中x(n)为n 时刻滤波器的输入信号,w(n)为n 时刻的滤波器系数,y(n)为滤波器的输出信号,d(n)为滤波器的期望信号,e(n)为滤波器的估计误差,u 为更新步长。
表 1LMS 算法1.滤波(Filtering ):T ()()()y n n n =w x2.误差估计(Error estimation ):()()()e n d n y n =-3.权值更新(Tap-weight update ):(1)()2()()n n e n n μ+=+w w x为了保证最陡下降法收敛,步长μ的取值决定于特征值最大的那个收敛模式。
max10μλ<<其中max λ为特征值中的最大值。
这必然导致其它收敛模式的收敛速度下降,输入信号自相关矩阵R 的特征值分散度在很大程度上影响了算法的收敛性能。
针对LMS 算法存在特征值分散度的问题,我们可以采用牛顿法来进行克服,牛顿法使得滤波器各系数(各收敛模式)的收敛速度一致,与特征值分布无关,从根本上消除了最陡梯度下降法受特征值分布影响的缺陷。
牛顿方法其实就是KL 变换域的最陡下降法,由于KL 变换是最理想的正交变换,它依赖于自相关矩阵R 特征矢量,统计特性不同的输入信号有不同的KL 变换,所以很难在实际中使用。
基于LMS算法自适应滤波器的设计
基于LMS算法自适应滤波器的设计
李艳丽
【期刊名称】《河南机电高等专科学校学报》
【年(卷),期】2009(017)006
【摘要】对语音信号及噪声信号的特点进行了分析研究,提出了基于LMS算法自适应滤波噪声抵消模型,能够根据背景噪声的能量分布特征,将被污柒的语音信号降噪提出,并且不发生信息丢失现象.采用Matlab软件完成数字滤波去噪声的功能.实验数据表明,该算法简单,可靠性高,能在受坦克、卡车噪声污染且较低的信噪比情况下,对语音信号起到去噪增强作用.
【总页数】2页(P83-84)
【作者】李艳丽
【作者单位】荆楚理工学院,电子信息工程学院,湖北,荆门,448000
【正文语种】中文
【中图分类】TP273.2
【相关文献】
1.基于LMS算法和Matlab的自适应滤波器的设计 [J], 陈黎霞;李亚萍;姚淑霞
2.LMS算法的自适应滤波器FPGA设计与实现 [J], 刘开健;吴光敏;张海波
3.一种基于FIR的自适应滤波器LMS算法设计与实现 [J], 周飚;汪烈军
4.基于FPGA和符号LMS算法的自适应滤波器设计 [J], 邱陈辉;李锋;徐祖强
5.基于LMS算法的自适应滤波器的设计 [J], 杨阳;李环
因版权原因,仅展示原文概要,查看原文内容请购买。
子带自适应滤波器matlab代码
子带自适应滤波器matlab代码以下是一个简单的MATLAB代码示例,用于实现子带自适应滤波器。
```matlab% 定义参数N = 100; % 信号长度M = 10; % 子带数量alpha = 0.01; % LMS算法步长mu = 0.01; % 子带滤波器步长% 生成信号x = randn(N,1);y = filter([1 0.5],1,x);d = y + 0.1*randn(N,1); % 目标信号% 子带分割subbands = cell(M,1);for i=1:Msubbands{i} = x((i-1)*ceil(N/M)+1:i*ceil(N/M),:);end% 子带滤波器初始化subband_filters = cell(M,1);for i=1:Msubband_filters{i} = filter([1 0],1,subbands{i}); % LMS算法初始化end% 子带滤波器训练for t=1:Nx_t = x(t,:);d_t = d(t,:);for i=1:Mif t <= M*(ceil(N/M))subband_filters{i} =lms(subband_filters{i},x_t,d_t,alpha); % LMS算法训练子带滤波器endx_t = x_t -subband_filters{i}.b*subband_filters{i}.a'*x_t; % 子带滤波器处理ende = d_t - sum(x_t,2); % 误差计算end% LMS算法更新子带滤波器参数function f = lms(f,x,d,alpha)f.a = f.a + 2*alpha*(d - f.b*f.a'*x) * x;f.b = f.b + alpha * (d - f.b*f.a'*x);end```该代码使用LMS算法训练子带滤波器,并使用子带滤波器对信号进行处理。
自适应滤波matlab
自适应滤波matlab什么是自适应滤波?自适应滤波是一种信号处理方法,其主要目的是通过根据信号的特性动态调整滤波器参数,从而提高信号处理的效果。
与传统的固定滤波器相比,自适应滤波器可以更好地适应信号的变化,从而实现更高的滤波性能。
自适应滤波器的基本原理是:根据输入信号和期望输出信号之间的差别,调整滤波器的权值,使得输出信号与期望输出信号之间的差别最小化。
通过不断迭代这个过程,自适应滤波器会自动调整权值,从而达到最优的滤波效果。
自适应滤波在许多领域都有广泛的应用,比如语音信号处理、图像处理、雷达信号处理等。
在这些应用中,信号通常会受到噪声、干扰等因素的干扰,而自适应滤波可以有效地减少这些干扰,提取信号中的有用信息。
在Matlab中,有多种方法可以实现自适应滤波。
下面将介绍一种常用的自适应滤波方法——最小均方(LMS)自适应滤波算法的Matlab实现步骤。
首先,在Matlab中,我们可以使用内置的函数“nlms”来实现LMS自适应滤波。
nlms函数的语法如下:matlaby = nlms(x, d, L, mu)其中,x是输入信号,d是期望输出信号,L是滤波器的长度,mu是步长因子。
接下来,我们需要准备输入信号和期望输出信号。
可以使用Matlab中的随机数函数来生成一个输入信号,例如:matlabN = 1000; 输入信号长度x = randn(N, 1);假设我们期望输出信号是输入信号的加权和,可以定义一个权值向量w,然后计算期望输出信号:matlabw = [0.3, 0.5, 0.2]; 权值向量d = filter(w, 1, x);在这里,使用filter函数可以将输入信号与权值向量进行卷积,得到期望输出信号。
接下来,我们可以使用nlms函数来实现自适应滤波。
首先,我们需要初始化滤波器的权值向量w0,可以将其设为全零向量:matlabw0 = zeros(L, 1); 初始权值向量然后,我们可以调用nlms函数进行自适应滤波:matlaby = nlms(x, d, L, mu);其中,L是滤波器的长度,mu是步长因子。
基于LMS的自适应滤波器典型应用的MATLAB实现
LM S 算法一般包括滤波过程和自适应过程, 这两个过程一起工作组成一个反馈环。 图 1 中, x ( n) 为输入信号, y ( n ) 为输出信号, d ( n ) 为参 考信号或期望信号 , e( n) 是 d ( n) 与 y ( n) 的误 差信号。 自适 应滤波 器的滤 波系数 受误差 信号 e( n) 控制 , 根据 e( n) 的值和自适应算法自动调 整。 推导如下: 假设 x ( n) 是一长度为 M 的序列, 由图 1 有:
e2 ( n ) =
n= 0
[ d( n) k= 0
h( k ) x ( n
- k ) ] 这个平方误差的和 是这个滤波器系数的 二次函数。 因此 , 对于滤波器系数 { h ( k) } 的 最 小化就会产生一组线性方程。 为了求解这组方程 组, 有很多种算法, L MS 算法是其中的一种。 1. 2 LM S 算法的具体步骤 LM S 算法基本上是一种递推算法, 它用任意
2
选择的{ h( k ) } 的初始值作为开始 , 然后将每一新 的输入样本{ x ( n ) } 输入到这个自适应 FIR 滤波 器, 计算相应的输出 { y ( n ) } , 形成误差信号 e( n) = d ( n) - y ( n ) , 并按方程 h n ( k ) = h n- 1 ( k ) + ! N- 1 更新滤波器系数, 这里 称为步长参数, x ( n - k ) 是输入信号在时间 n 位于滤波器的第 k 个样 本, 而 e( n ) x ( n- k) 是对第 k 个滤波器系数的一 个梯度负值的近似( 估计 ) 。 2 MAT LAB 实现 M AT L AB 有专门的函数 ADAPT L MS 实现自 适应滤波 , ADAP T LM S 函数的用法为 : [ y , e, s ] = ADAPT LM S( x , d , s) 其中 y 为滤波器的输出信号 , x 为滤波器的 输入信号 , d 为期望信号, e 为误差信号, s 为包含 构体 [ y, e, S] = adaptlms( x , d, S) ; % 自适应滤 波 st em ( [ b. ∀ , S. coeffs. ∀ ] ) ; % 画出识 别的 系统和未知系统的参数。 e( n) x ( n - k ) , 0 ! k
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第29卷第4期
2008年8月
华 北 水 利 水 电 学 院 学 报
Journal of North China I nstitute of W ater Conservancy and Hydr oelectric Power
Vol 129No 14Aug .2008
收稿日期:2008-04-30
作者简介:陈黎霞(1979—),女,河南周口人,助教,硕士,主要从事信号检测与处理方面的研究.
文章编号:1002-5634(2008)04-0051-03
基于LM S 算法和M a tl ab 的自适应滤波器的设计
陈黎霞,李亚萍,姚淑霞
(华北水利水电学院,河南郑州450011)
摘 要:根据LMS 算法性能特点,在Matlab 环境下编写了基于L M S 算法的有限长自适应滤波器的程序
(3.m ),用所设计的滤波器对受白噪声干扰的语音信号及正弦波信号进行滤波.理论分析和仿真结果表明,
所设计的自适应滤波器具有快速的跟踪能力和收敛性能,且稳态误差较小.关键词:LMS 算法;自适应滤波器;Matlab 中图分类号:T N273.2 文献标识码:A
自适应滤波器在信号处理领域占有极其重要的
地位,广泛应用于通信、雷达、导航系统和工业控制等方面.在一些无法预知信号和噪声特性的场合,无法使用具有固定滤波器系数的滤波器对信号实现最优滤波,其惟一的解决办法是引入自适应滤波器.使用Matlab 的信号处理功能及工具箱能够快速有效地实现自适应滤波器的分析、设计及仿真,在设计中可以随时更改参数,以达到滤波器设计的最优化,节约开发时间.
1 基于LMS 算法的自适应滤波原理
自适应滤波器与普通滤波器的区别是它能够随着外界信号特性动态地改变参数,保持最佳滤波状态.如何根据外界信号的变化来调整参数是由自适
应算法决定的,因此自适应算法的好坏直接影响滤
波的效果[1]
.L MS 算法是利用梯度估计值来代替梯度向量的一种快速搜索算法,具有计算量小、易实现的优点[2]
;其基本思想是通过调整滤波器的权值参数,使滤波器的输出信号与期望信号之间的均方误差最小.
自适应滤波一般包括2个基本过程:滤波过程和滤波器参数调整过程.这2个过程组成1个反馈环,如图1所示,x (n )为输入信号,y (n )为输出信号,d (n )为参考信号,e (n )为
y (n )与
d (n )的误差信号.自适应滤波器的滤波系数受误差信号
e (n )控制.虽然F I R 和II R 结构都可以用于自适应滤波器,由于II R 的稳定性问题,所以设计时采用自适应横
向F I R 滤波器,其结构如图2所示[1]
.
图1 自适应滤波器原理图
图2 基于LM S 算法的自适应横向
F I R 滤波器原理图
在滤波过程中其输入为
X (n )=[x (n ),x (n -1),…,x (n -N +1)]
T
N 阶F I R 滤波器的权系数
W (n )=[w 1(n ),w 2(n ),…,w N (n )]
T
滤波器的输出
y (n )=
∑
N
i =1
w i x (n -i +1)=X T
(n )W (n )
估计误差为
e (n )=d (n )-y (n )=d (n )-X T
(n )W (n )
根据最小均方误差准则,最佳滤波器参量应使
得性能函数———均方误差E [e 2
(n )]为最小,因此自适应滤波的优化准则为
m in
∑
n
k =1
(e (k ))
2
=m in
∑
n
k =1
(d (k )-y (k ))
2
估计误差与输入向量都被加到自适应控制部分,可以采用最优化方法中的最速下降法求自适应
滤波器的最佳权向量
[2]
W (n +1)=W (n )+2
μe (n )X (n )式中:μ为步长因子,是控制收敛速度和稳态误差的参量,且0<μ<1/λmax ;λmax 为输入信号自相关矩阵的最大特征值[3]
.
当选择合适的步长因子μ,采用瞬时输出误差功率的梯度作为均方误差梯度的估计时,可使均方误差
E [e 2
(n )]趋于最小值,因此加快滤波器的收敛速度可以从滤波器长度控制和步长因子控制着手.
2 Matlab 仿真设计
2.1 语音通信中噪声消除仿真
在通信中,语音信号不可避免地受到周围环境、通信设备内部电噪声等因素的影响,使接受者收到的语音信号被污染,影响通话质量,因此在语音通信
中滤波是必不可少的过程[4]
.考虑到实际通信中噪声频谱很宽,因此在仿真中对纯净语音的干扰设置为均值为零的高斯白噪声,为加速Matlab 的运行速
度,在程序设计时使用向量和矩阵化的算法[5]
.信噪比不同时所需滤波器阶数和步长也不同,图3和图4分别是信噪比为0.1dB 时的语音信号时域滤波效果及滤波器学习曲线图,自适应滤波器长度为50,计算出最大步长因子μmax =0
.6157,选取μ=0.0040.从图3中可观察到滤波后的信号逼近原始语音信号,且通过回放的语音可证实这一点.部分仿真程序如下:
…;
[x,fs]=wavread (’D:\hy .wav ’,[1654043080]);
number =length (x );
t =0:1/fs:(size (x )-1)/fs;
noise =[wgn (1,length (x ),-15)]’;
Sn =x +noise;tic L =50;
b =fir1(L -1,0.5);mu max =maxstep (ha,x );
…;
wn =adap tfilt .l m s (L,mu );m =10;m se =m sesi m (wn,x,d,m );t =t oc;…;s ound (ys );
…
2.2 正弦波信号除噪
图5是用该自适应滤波器对含随机噪声单频正
弦波信号滤波处理的效果.滤波器长度30,步长因
25 华 北 水 利 水 电 学 院 学 报 2008年8月
子μ=0.0020.从图5中看出该滤波器能完成除噪.图6为自适应滤波器学习曲线,其收敛速度较快
.
3 仿真结果分析
1.在信噪比较大时,L MS 自适应滤波器滤波结
果很好,要求的滤波器长度也较短,收敛速度较快.
2.在信噪比较小时,自适应滤波器的输出结果不十分理想,但可以通过适当调整步长参数及适当增加滤波器长度来进行改进,且效果较明显.
3.自适应滤波器的收敛速度在很大程度上取决于步长因子μ.当步长参数较大时,滤波器收敛到稳态需要迭代次数较少,但滤波效果比μ较小时差,而且均方误差的稳态值随着μ的变大而增大;但是当步长参数较小时,收敛速度则会降低,因此只有选择合适的步长参数μ,才能使该滤波器的性能稳定.
4 结 语
仿真结果显示,采用基于L MS 算法设计出的自
适应滤波器有良好的收敛性、较小的稳态误差,噪声功率较大的情况下也能完成数字滤波任务,在噪声
消除方面具有很好的效果和性能.由于Matlab 具有强大的接口功能,仿真后的结果可以很方便地移植到数字信号处理器、可编程逻辑器件等中,为自适应滤波器的硬件实现打下了良好的理论基础.
参 考 文 献
[1]张贤达.现代信号处理(第二版)[M ].北京:清华大学
出版社,2002.
[2]邹艳碧,高鹰.自适应滤波算法综述[J ].广州大学学
报,2007,1(2):44-48.
[3]黄振远,朱剑平.自适应滤波LMS 类算法探究[J ].现代
电子技术,2006,24:52-54.
[4]编著责任者不详.离散语音信号处理[M ].赵胜辉,译.
北京:电子工业出版社,2004.
[5]钟麟.Matlab 仿真技术与应用教程[M ].北京:国防工业
出版社,2004.
[6]丁元力.M atlab 语言在数字语音处理上的应用[J ].电
声技术,2001,25(9):7-9.
D esi gn of Adapti ve F ilter Ba sed on LM S A lgor ithm i n M a tl ab
CHE N L i 2xia,L I Ya 2p ing,Y AO Shu 2xia
(North China I nstitute of W ater Conservancy and Hydr oelectric Power,Zhengzhou 450011,China )
Abstract:According t o the character of L M S algorith m,the p r ogram s (3.m )of finite adap tive filter based on LMS in Matlab is com 2p iled,and the designed filter is used t o accomp lish the filter of audi o signal and sine wave which are disturbed by white noise .The con 2clusi on fr om the theoretic analysis and si m ulati on result show that,the designed filter has fast track and convergency capability al ong with s mall steady 2state err or .
Key words:L M S algorith m;Adap tive Filter;Matlab
3
5第29卷第4期陈黎霞等: 基于L M S 算法和M atlab 的自适应滤波器的设计 。