标签:style blog http color ar os for sp 文件
一、研究背景
维纳滤波器参数是固定的,适合于平稳随机信号。卡尔曼滤波器参数是时变的,适合于非平稳随机信号。然而,只有在信号和噪声的统计特性先验已知的情况下,这两种滤波术才能获得最优滤波。在实际应用中,常常无法得到信号和噪声统计特性的先验知识。在这种情况下,自适应滤波技术能够获得极佳的滤波性能,因而具有很好的应用价值。常用的自适应滤波技术有:最小均方(LMS)自适应滤波器、递推最小二乘(RLS)滤波器、格型滤波器和无限冲激响应(IIR)滤波器等。这些自适应滤波技术的应用又包括:自适应噪声抵消、自适应谱线增强和陷波等。
二、LMS自适应维纳滤波器理论知识
三、利用上述结论的Matlab仿真
首先用Matlab自带函数读取一段音频并保存,随即对其加上高斯白噪声干扰,对处理后的信号LMS算法滤波。并产生相应的音频文件并保存,我们可以从试听音频和观察图像两种方式查看LMS滤波的效果。
M脚本代码
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(‘自适应消噪信号‘);
运行效果图
四、源文件下载
LMS filter1.0.rar
115网盘礼包码:5lbagoebt972
http://115.com/lb/5lbagoebt972
标签:style blog http color ar os for sp 文件
原文地址:http://www.cnblogs.com/guluxuanyuan/p/4062176.html