Skip to content
Snippets Groups Projects
Commit 039885ea authored by Achilles Kappis's avatar Achilles Kappis
Browse files

Changed variable name of srcCsd to Svv in obsFiltEst.m

parent cbb81fe8
Branches
No related tags found
1 merge request!2Update the MATLAB implementation of the optimal frequency domain observation filter
...@@ -28,10 +28,10 @@ ...@@ -28,10 +28,10 @@
% matrix must be NxM, where N is the number of % matrix must be NxM, where N is the number of
% virtual microphones and M the number of sources. % virtual microphones and M the number of sources.
% %
% srcCsd [numeric] (Optional): The source cross spectral density matrix. % Svv [numeric] (Optional): The source cross spectral density matrix. This
% This must be a square (MxM) symmetric matrix % must be a square (MxM) symmetric matrix with
% with the cross power spectral density of the % the cross power spectral density of the
% sources. [Default: eye(M)] % sources. [Default: eye(M)]
% %
% -------------------------------------------------- % --------------------------------------------------
% Output % Output
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
% Notes % Notes
% %
% -------------------------------------------------- % --------------------------------------------------
function [est, err, errSqr, normErrSqr, See] = obsFiltEst(Pm, O, Pe, srcCsd) function [est, err, errSqr, normErrSqr, See] = obsFiltEst(Pm, O, Pe, Svv)
% ==================================================== % ====================================================
% Check for number of arguments % Check for number of arguments
% ==================================================== % ====================================================
...@@ -82,17 +82,17 @@ function [est, err, errSqr, normErrSqr, See] = obsFiltEst(Pm, O, Pe, srcCsd) ...@@ -82,17 +82,17 @@ function [est, err, errSqr, normErrSqr, See] = obsFiltEst(Pm, O, Pe, srcCsd)
Pe = NaN; Pe = NaN;
end end
if nargin > 3 && ~isempty(srcCsd) if nargin > 3 && ~isempty(Svv)
validateattributes(srcCsd, "numeric", {'2d', 'nonnan', 'finite'}, mfilename, "Source cross spectral density matrix", 3) validateattributes(Svv, "numeric", {'2d', 'nonnan', 'finite'}, mfilename, "Source cross spectral density matrix", 3)
% Check for correct dimensions % Check for correct dimensions
if diff(size(srcCsd)) if diff(size(Svv))
error("The source power spectral density matrix must be a square matrix"); error("The source power spectral density matrix must be a square matrix");
elseif size(srcCsd, 1) ~= size(Pe, 1) elseif size(Svv, 1) ~= size(Pe, 1)
error("The number of rows of the source power spectral density matrix must be equal to the number of sources"); error("The number of rows of the source power spectral density matrix must be equal to the number of sources");
end end
else else
srcCsd = eye(size(Pe, 2)); Svv = eye(size(Pe, 2));
end end
...@@ -110,7 +110,7 @@ function [est, err, errSqr, normErrSqr, See] = obsFiltEst(Pm, O, Pe, srcCsd) ...@@ -110,7 +110,7 @@ function [est, err, errSqr, normErrSqr, See] = obsFiltEst(Pm, O, Pe, srcCsd)
% Sum of squared estimation errors % Sum of squared estimation errors
if nargout > 2 if nargout > 2
for eIdx = size(Pe, 1):-1:1 for eIdx = size(Pe, 1):-1:1
errSqr(eIdx) = err(eIdx, :) * srcCsd * err(eIdx, :)'; errSqr(eIdx) = err(eIdx, :) * Svv * err(eIdx, :)';
end end
errSqr = errSqr.'; errSqr = errSqr.';
...@@ -119,7 +119,7 @@ function [est, err, errSqr, normErrSqr, See] = obsFiltEst(Pm, O, Pe, srcCsd) ...@@ -119,7 +119,7 @@ function [est, err, errSqr, normErrSqr, See] = obsFiltEst(Pm, O, Pe, srcCsd)
% Normalised squared errors % Normalised squared errors
if nargout > 3 if nargout > 3
for eIdx = length(errSqr):-1:1 for eIdx = length(errSqr):-1:1
See(eIdx) = Pe(eIdx, :) * srcCsd * Pe(eIdx, :)'; See(eIdx) = Pe(eIdx, :) * Svv * Pe(eIdx, :)';
normErrSqr(eIdx) = errSqr(eIdx)/See(eIdx); normErrSqr(eIdx) = errSqr(eIdx)/See(eIdx);
end end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment