diff --git a/track_audio.m b/track_audio.m index b85b5a0313fee9b8c85eff474bb80bd52eb13e0f..c4a97a1b9906c399441c5e633fe53c7a2e7e0ac4 100644 --- a/track_audio.m +++ b/track_audio.m @@ -5,30 +5,42 @@ clc; % To be modified -%% Request interaural time differences (ITDs) -requests = {'itd'}; - -% Parameters of the auditory filterbank processor -fb_type = 'gammatone'; -fb_lowFreqHz = 80; -fb_highFreqHz = 8000; -fb_nChannels = 32; - -% Parameters of innerhaircell processor -ihc_method = 'dau'; - -% Parameters of crosscorrelation processor -cc_wSizeSec = 0.02; -cc_hSizeSec = 0.01; -cc_wname = 'hann'; - -% Summary of parameters -par = genParStruct('fb_type',fb_type,'fb_lowFreqHz',fb_lowFreqHz,... - 'fb_highFreqHz',fb_highFreqHz,'fb_nChannels',fb_nChannels,... - 'ihc_method',ihc_method,'cc_wSizeSec',cc_wSizeSec,... - 'cc_hSizeSec',cc_hSizeSec,'cc_wname',cc_wname); - - +% % % % % %% Request interaural time differences (ITDs) +% % % % % requests = {'itd'}; +% % % % % +% % % % % % Parameters of the auditory filterbank processor +% % % % % fb_type = 'gammatone'; +% % % % % fb_lowFreqHz = 80; +% % % % % fb_highFreqHz = 8000; +% % % % % fb_nChannels = 32; +% % % % % +% % % % % % Parameters of innerhaircell processor +% % % % % ihc_method = 'dau'; +% % % % % +% % % % % % Parameters of crosscorrelation processor +% % % % % cc_wSizeSec = 0.02; +% % % % % cc_hSizeSec = 0.01; +% % % % % cc_wname = 'hann'; +% % % % % +% % % % % % Summary of parameters +% % % % % par = genParStruct('fb_type',fb_type,'fb_lowFreqHz',fb_lowFreqHz,... +% % % % % 'fb_highFreqHz',fb_highFreqHz,'fb_nChannels',fb_nChannels,... +% % % % % 'ihc_method',ihc_method,'cc_wSizeSec',cc_wSizeSec,... +% % % % % 'cc_hSizeSec',cc_hSizeSec,'cc_wname',cc_wname); + +%% Setup objects +% Initialize localization models using braodband and subband settings +dObj = dataObject([],fsHz,10,2); + +% Settings for subband approach +par_sub = genParStruct('cc_bBroadband',0,'cc_wSizeSec',winSec,... + 'cc_hSizeSec',winSec/2,'cc_maxDelaySec',1.25e-3,... + 'fb_lowFreqHz',fLowHz,'fb_highFreqHz',fHighHz,... + 'fb_nERBs',1,'ihc_method','none',... + 'loc_NSources',nSpeakers(hh)); + +% Initialize localization models using braodband and subband settings +mObj = manager(dObj,'localization',par_sub); %% Model parameters @@ -84,15 +96,13 @@ posteriorCovariance = zeros(size(A, 1), size(A, 1), N); % ======================================================= for l = 1:N audio = get_audio(); - dObj = dataObject(audio,fsHz); - % Create a manager - mObj = manager(dObj,requests,par); + % TODO: Put the audio in the data object! % Request processing mObj.processSignal(); - y = get_measurement(dObj); + azimEst = dObj_sub.localization{1}.Data(end); % Perform Kalman filter prediction and update [x, P] = kf_predict(x, P, A, Q); - [x, P] = kf_update(x, P, y, c', R); + [x, P] = kf_update(x, P, azimEst, c', R); posteriorMean(:, l) = x; posteriorCovariance(:, :, l) = P;