最小均方误差

最小均方误差(LMS)算法简单易行,故在系统识别、噪声去除以及信道估计等方面已得到广泛的应用。

在图像处理方面,最小均方误差法通过计算数字半调图像与原始图像在人眼视觉中的均方误差,并通过算法使其最小来获得最佳的半调图像。该算法设计两个人眼视觉滤波器,分别对原始图像和半调处理图像进行滤波,得到两个值,进而求得两值的均方差。在实际操作中,通常假定一个半调处理的估计值,通过迭代算法优化该估计值,最后确定一个局部收敛的实际值。该算法由于采用了迭代算法,所以在计算量上和别的算法相比会大几个数量级。

图像方面:评价一个半调处理的好坏可以通过分析该算法在图像的大面积相同区域、灰度渐变区域、灰度突变区域的人工纹理(Artifacts)翻及图像灰度误差的大小。大面积相同灰度相同区域时,块置换算法和抖动算法都以单位模板序列为基础,容易产生有规律的周期纹理,误差分散法和最小均方算法引进了误差和均方差的补偿没有明显的人工纹理;灰度渐变区域块置换算法和抖动算法容易产生伪轮廓。在灰度突变区域,误差分散算法采用误差传递,使原始图像灰度突变的硬边界和阈值误差变得柔和分散,产生边缘钝化;块置换算法能够保证区域灰度接近,但无法保证图像细节;随机抖动算法产生大量的噪声,无法保证图像的质量。有序抖动算法能够比较好的反映图像的变化,表达图像细节。

在音频方面在滤波去噪方面也有对应的应用,相关代码:

 
 
close all ; clear ; clc ;
%% 导入音频
filedir =[]; % 设置路径
filename = 'bluesky1.wav' ; % 设置文件名
fle =[ filedir filename ]; % 构成完整的路径和文件名
[ s , fs ] = audioread ( fle ); % 读入数据文件
s = s - mean ( s ); % 消除直流分量
s = s / max ( abs ( s )); % 幅值归一
N = length ( s ); % 语音长度
time =( 0 : N - 1 ) / fs ; % 设置时间刻度
SNR = 5 ; % 设置信噪比
r2 = randn ( size ( s )); % 产生随机噪声
b = fir1 ( 32 , 0.5 ); % 设计FIR滤波器,代替H
r21 = filter ( b , 1 , r2 ); % FIR滤波
[ r1 , r22 ]= add_noisedata ( s , r21 , fs , fs , SNR ); % 产生带噪语音,信噪比为SNR 
%% 训练阶段
h_length = 100 ;
h = zeros ( h_length , 1 ); % 滤波器的初始化
miu = 1e-4 ;
y_out = zeros ( size ( s ));
Ntimes = 3 ;
err2 = zeros ( length ( s ) * Ntimes , 1 );
counter = 1 ;
% 开始滤波
for kk = 1 : Ntimes
for k = h_length : N
idx = k : - 1 :( k - h_length + 1 );
r1_in_sub = r1 ( idx );
filter_out = h . ' * r1_in_sub;
y_out(k) = filter_out;
dk = s(k);
err = dk - filter_out;
err2(counter) = err^2;
h = h + miu * err * r1_in_sub;
counter = counter + 1;
end
end
% sound(s,fs);
% sound(r1,fs);
% sound(y_out,fs);
%% 作图
figure
plot(err2);
grid on;
title('均方误差 ');
figure;
subplot 311; plot(time,s,' k ' ); ylabel ( '幅值' )
ylim ([ - 1 1 ]); title ( '原始语音信号' );
subplot 312 ; plot ( time , r1 , 'k' ); ylabel ( '幅值' )
ylim ([ - 1 1 ]); title ( '带噪语音信号' );
subplot 313 ; plot ( time , y_out , 'k' );
ylim ([ - 1 1 ]); title ( 'LMS滤波输出语音信号' );
xlabel ( '时间/s' ); ylabel ( '幅值' )

归根结底:这是一个需要“训练”(或者说“学习”)的滤波器,在“学习”的过程中,希望把滤波器的输出与期望信号(训练信号)之差,作为算法的反馈。




                     

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值