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

Changed variable name of srcCsd to Svv in obsFilt.m

parent 80575f59
No related branches found
No related tags found
1 merge request!2Update the MATLAB implementation of the optimal frequency domain observation filter
......@@ -22,10 +22,10 @@
% where K is the number of monitoring microphones and M is
% the number of sources.
%
% srcCsd [numeric] (Optional): The source cross spectral density matrix.
% This must be a square (MxM) symmetric matrix
% with the cross power spectral density of the
% sources. [Default: eye(M)]
% Svv [numeric] (Optional): The source cross spectral density matrix. This
% must be a square (MxM) symmetric matrix with
% the cross power spectral density of the
% sources. [Default: eye(M)]
%
% regFacs [numeric] (Optional): The regularisation factors used for the
% inversion of the cross-spectra of the
......@@ -75,7 +75,7 @@
% for local active sound control" by W. Jung, S. J. Elliott and J. Cheer.
%
% --------------------------------------------------
function [oOpt, Sme, Smm, condNum] = obsFilt(Pe, Pm, srcCsd, regFacs, snrVal)
function [oOpt, Sme, Smm, condNum] = obsFilt(Pe, Pm, Svv, regFacs, snrVal)
% ====================================================
% Check for number of arguments
% ====================================================
......@@ -90,17 +90,17 @@ function [oOpt, Sme, Smm, condNum] = obsFilt(Pe, Pm, srcCsd, regFacs, snrVal)
validateattributes(Pm, "numeric", {'nonnan', 'nonempty', 'finite'}, mfilename, "Monitoring microphone pressure", 2);
% Validate optional arguments
if nargin > 2 && ~isempty(srcCsd)
validateattributes(srcCsd, "numeric", {'2d', 'nonnan', 'finite'}, mfilename, "Source cross spectral density matrix", 3)
if nargin > 2 && ~isempty(Svv)
validateattributes(Svv, "numeric", {'2d', 'nonnan', 'finite'}, mfilename, "Source cross spectral density matrix", 3)
% Check for correct dimensions
if diff(size(srcCsd))
if diff(size(Svv))
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");
end
else
srcCsd = eye(size(Pe, 2));
Svv = eye(size(Pe, 2));
end
if nargin > 3 && ~isempty(regFacs)
......@@ -134,7 +134,7 @@ function [oOpt, Sme, Smm, condNum] = obsFilt(Pe, Pm, srcCsd, regFacs, snrVal)
% Calculate optimal filters
% ====================================================
% Calculate needed quantities
tmpVal = srcCsd * Pm';
tmpVal = Svv * Pm';
Sme = Pe * tmpVal; % Virtual-Monitor mics cross-spectra
Smm = Pm * tmpVal; % Monitor-Monitor mics cross-spectra
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment