www.pudn.com > AR_MATLAB.rar > WienerFilter_MSE.m


% File: WienerFilter_MSE.m 
% ------------------------ 
% This file is used to compute various mean square errors (MSE) incounted in 
% Wiener filtering process. 
 
function WienerFilter_MSE() 
load WienerFilter_SeqGen.mat; 
load WienerFilter_Core.mat; 
load WienerFiltering.mat; 
 
% compute the MSE of x(n) and s(n) 
mse_xs = 0; % mean square error between x(n) and s(n) 
for i = 1: L 
    mse_xs = mse_xs + (signalvector_x(i) - signalvector_s(i)) * (signalvector_x(i) - signalvector_s(i)); 
end 
mse_xs = mse_xs / L; 
 
% compute the MSE of h_fir(n) and h_ide(n) 
mse_hh = 0; % mean square error between h_fir(n) and h_ide(n) 
for i = 1: N 
    mse_hh = mse_hh + (h_fir(i) - h_ide(i)) * (h_fir(i) - h_ide(i)); 
end 
mse_hh = mse_hh / N; 
 
% compute the MSE of s_I(n) and s(n) 
mse_sis = 0; % mean square error between s_I(n) and s(n) 
for i = 1: L 
    mse_sis = mse_sis + (output_ide(i) - signalvector_s(i)) * (output_ide(i) - signalvector_s(i)); 
end 
mse_sis = mse_sis / L; 
 
% compute the MSE of s_R(n) and s(n) 
mse_srs = 0; % mean square error between s_R(n) and s(n) 
for i = 1: L 
    mse_srs = mse_srs + (output_fir(i) - signalvector_s(i)) * (output_fir(i) - signalvector_s(i)); 
end 
mse_srs = mse_srs / L; 
 
sprintf('mse_xs:  %f\nmse_hh:  %f\nmse_sis: %f\nmse_srs: %f', mse_xs, mse_hh, mse_sis, mse_srs) 
 
savefile = 'WienerFilter_MSE.mat'; 
save(savefile, 'mse_xs', 'mse_hh', 'mse_sis', 'mse_srs'); 
 
clear;