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


% File: WienerFilter_Core.m 
% ------------------------- 
% This file is uesd to compute the autocorrelation matrix of x(n), the 
% crosscorrelation vector of s(n) and x(n), and the Winer FIR filter h(n). 
 
function WienerFilter_Core() 
load WienerFilter_SeqGen.mat 
crosscorrelation_vector = zeros(N, 1); % column vector 
for k = 1: N 
    for m = 1: N 
        autocorrelation_matrix(k, m) = autocorrelation(k - m, signalvector_x); 
    end 
    crosscorrelation_vector(k) = crosscorrelation(k - 1, signalvector_x, signalvector_s); 
end 
 
% FIR Wiener Filter 
h_fir = inv(autocorrelation_matrix) * crosscorrelation_vector; 
 
% Ideal Wiener Filter 
h_ide = zeros(N, 1); 
for n = 1: N 
    h_ide(n) = 0.238 * realpow(0.724, n - 1); 
end 
 
savefile = 'WienerFilter_Core.mat'; 
save(savefile, 'autocorrelation_matrix', 'crosscorrelation_vector', 'h_fir', 'h_ide'); 
 
clear;