码迷,mamicode.com
首页 > 其他好文 > 详细

LMS自适应维纳滤波器

时间:2014-11-03 12:51:02      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   ar   os   for   sp   文件   

一、研究背景

维纳滤波器参数是固定的,适合于平稳随机信号。卡尔曼滤波器参数是时变的,适合于非平稳随机信号。然而,只有在信号和噪声的统计特性先验已知的情况下,这两种滤波术才能获得最优滤波。在实际应用中,常常无法得到信号和噪声统计特性的先验知识。在这种情况下,自适应滤波技术能够获得极佳的滤波性能,因而具有很好的应用价值。常用的自适应滤波技术有:最小均方(LMS)自适应滤波器、递推最小二乘(RLS)滤波器、格型滤波器和无限冲激响应(IIR)滤波器等。这些自适应滤波技术的应用又包括:自适应噪声抵消、自适应谱线增强和陷波等。

 二、LMS自适应维纳滤波器理论知识

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣 

 

 

bubuko.com,布布扣

三、利用上述结论的Matlab仿真

首先用Matlab自带函数读取一段音频并保存,随即对其加上高斯白噪声干扰,对处理后的信号LMS算法滤波。并产生相应的音频文件并保存,我们可以从试听音频和观察图像两种方式查看LMS滤波的效果。

M脚本代码

bubuko.com,布布扣
 1 %-- 14-10-25 下午3:36 --%
 2 %功能:LMS自适应噪声抵消
 3 % Inputs:
 4 % Outputs:
 5 clc;
 6 clear;
 7 [ref,fs] =wavread(‘in.wav‘);
 8 apm = 1;   %噪声幅度
 9 firLen = 160;  %定义滤波器长度
10 mu = 0.002;      %迭代步长
11 a = zeros(1,firLen);   %产生一行160列向量
12 dataLen = length(ref);   %赋值ref信号向量
13 eout = zeros(1,dataLen);   %产生一列dataLen长的向量且赋值
14 e=zeros(1,dataLen);
15 firIn = zeros(1,firLen);
16 firOut=zeros(1,dataLen);
17 noise = apm*rand(1,dataLen);  %产生随机噪声
18 near = ref‘+noise;   %在原始音频基础上加入噪声
19 for i=firLen:dataLen
20 firOut(i) = a*(near(i-firLen+1:i))‘;  %fir滤波,实现横向滤波器操作
21 e(i) = ref(i)-firOut(i);  %求误差信号
22 a = a+2*mu*e(i)*(near(i-firLen+1:i));   %lms 系数更新
23 eout(i) = e(i)*e(i);
24 end
25 wavwrite(firOut,fs,‘firOut.wav‘);
26 wavwrite(eout,fs,‘eout.wav‘);
27 wavwrite(near,fs,‘speech_noise.wav‘);
28 wavplay(firOut,fs);
29 figure(1)
30 subplot(411);
31 plot(ref);
32 title(‘原始信号‘);
33 subplot(412);
34 plot(near);
35 title(‘语音加噪信号‘);
36 subplot(413);
37 plot(noise);
38 title(‘噪声信号‘);
39 subplot(414);
40 plot(firOut);
41 title(‘自适应消噪信号‘);
wave.m

运行效果图

bubuko.com,布布扣

四、源文件下载

LMS filter1.0.rar
115网盘礼包码:5lbagoebt972
http://115.com/lb/5lbagoebt972

LMS自适应维纳滤波器

标签:style   blog   http   color   ar   os   for   sp   文件   

原文地址:http://www.cnblogs.com/guluxuanyuan/p/4062176.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!