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;