📄 wienerfiltering.m
字号:
% File: WienerFiltering.m
% -----------------------
% This file integrates the sequence generation module and correlation
% calculation module.
function WienerFiltering(L, N)
% L: Sample length
% N: Filter length
WienerFilter_SeqGen(L, N); % Sequence Generation Module
% for sample length L = 500,
% filter length N = 10.
WienerFilter_Core(); % Correlation Calculation Module
load WienerFilter_SeqGen.mat;
load WienerFilter_Core.mat;
% FIR Wiener Filtering
output_vector_fir = conv(signalvector_x, h_fir); % FIR convolution L+N-1 samples
output_fir = zeros(L, 1);
for n = 1: L
output_fir(n) = output_vector_fir(n); % L samples cutoff
end
% Ideal Wiener Filtering
%signalvector_x_cat = vertcat(signalvector_x, zeros(N - 1, 1));
s_ide_0 = 0; % for s_ide(1) = 0 + 0.238 x(1)
%output_vector_ide(1) = 0.724 * s_ide_0 + 0.238 * signalvector_x_cat(1);
%for n = 2: (L + N - 1)
% output_vector_ide(n) = 0.724 * output_vector_ide(n - 1) + 0.238 * signalvector_x_cat(n);
%end
output_vector_ide = zeros(L, 1);
output_vector_ide(1) = 0.724 * s_ide_0 + 0.238 * signalvector_x(1);
for n = 2: L
output_vector_ide(n) = 0.724 * output_vector_ide(n - 1) + 0.238 * signalvector_x(n);
end
output_ide = output_vector_ide;
%h_ide_cat = vertcat(h_ide, zeros((length(signalvector_x) - length(h_ide)), 1));
%
%output_vector_ide = conv(signalvector_x, h_ide_cat); % test point
%for n = 1: L
% output_ide(n) = output_vector_ide(n); % L samples cutoff
%end
savefile = 'WienerFiltering.mat';
save(savefile, 'output_vector_fir', 'output_fir', 'output_vector_ide', 'output_ide');
clear;
WienerFilter_MSE();
%WienerFilter_Plot();
clear;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -