Skip to content
Snippets Groups Projects

Fix time-domain calculations of the optimal observation filter

Merged Imported Achilles Kappis requested to merge ObsFiltTDFix into main
1 file
+ 8
2
Compare changes
  • Side-by-side
  • Inline
@@ -251,7 +251,11 @@ function [O, Rme, Rmm, Ovec, RmeMtx, RmmMtx, condNum, mMtx, Omean, RmeMean, RmmM
end
% "Split" observation filter vector to observation filters per monitoring and virtual microphone
O = permute(reshape(permute(Ovec, [2, 1, 3]), filtLen, size(m, 2), size(e, 2), size(m, 3)), [3, 1, 2, 4]);
for jIdx = size(Ovec, 3):-1:1
for mIdx = size(m, 2):-1:1
O(:, :, mIdx, jIdx) = Ovec(:, mIdx:size(m, 2):end, jIdx);
end
end
% ====================================================
% Provide additional output arguments
@@ -278,7 +282,9 @@ function [O, Rme, Rmm, Ovec, RmeMtx, RmmMtx, condNum, mMtx, Omean, RmeMean, RmmM
Oopt = RmeMtxMean.'/(RmmMtxMean + beta * eye(size(RmmMtxMean)));
% Reshape
Omean = permute(reshape(Oopt.', filtLen, size(m, 2), size(e, 2)), [3, 1, 2]);
for mIdx = size(m, 2):-1:1
Omean(:, :, mIdx) = Oopt(:, mIdx:size(m, 2):end);
end
end
% Mean cross-correlations between monitoring and virtual microphones over trials/sound field realisations
Loading