83 lines
1.9 KiB
Matlab
Executable File
83 lines
1.9 KiB
Matlab
Executable File
% dtdet3
|
|
function [a,rxds,xs,xl,ds,dl,dtf] = dtdet(x,d,e,dti)
|
|
nstates = 11;
|
|
xsi = 1;
|
|
xli = 2;
|
|
dtsi = 3;
|
|
dsi = 4;
|
|
dli = 5;
|
|
eli = 6;
|
|
rxdi = 7;
|
|
psxi = 8;
|
|
psdi = 9;
|
|
dtalki = 10;
|
|
esi = 11;
|
|
% ------------------------------------------------------------------------
|
|
% Double-Talk-Detector params
|
|
ar = 0.05;
|
|
af = 0.005;
|
|
arrxd = 0.0004;
|
|
afrxd = 1.0;
|
|
al = 0.0001;
|
|
pa = 0.7;
|
|
pl = 2.0;
|
|
po = 0.93;
|
|
arf = 0.0006;
|
|
htime = 80;
|
|
|
|
% ------------------------------------------------------------------------
|
|
if (lge(dti) == 1);
|
|
dti = zeros(nstates,1);
|
|
dti(xli)=0.1;
|
|
dti(dli)=0.1;
|
|
dti(xsi)=0.0;
|
|
dti(dsi)=0.0;
|
|
dti(eli)=0.1;
|
|
dti(dtalki) = 0;
|
|
end;
|
|
% ------------------------------------------------------------------------
|
|
|
|
fa = 8000;
|
|
fc = 800;
|
|
L = lge(x);
|
|
M = 1;
|
|
% ------------------------------------------------------------------------
|
|
|
|
%d = iirtp(fa,fc,1,8,d);
|
|
%x = iirtp(fa,fc,1,8,x);
|
|
|
|
d = dosa(d,fa,M);
|
|
x = dosa(x,fa,M);
|
|
e = dosa(e,fa,M);
|
|
|
|
|
|
[xs,dti(xsi)] = sm2(x,dti(xli),arf);
|
|
[xl,dti(xli)] = sm2(x,dti(xli),arf/M);
|
|
%[xl,dti(xli)] = phxl(x,xs,al,pl,dti(xli));
|
|
%[ds,dti(dsi)] = phxs(d,ar,af,dti(dsi));
|
|
[dl,dti(dli)] = sm2(d,dti(dli),arf/M);
|
|
[el,dti(eli)] = sm2(e,dti(eli),0.5*arf/M);
|
|
%[es,dti(esi)] = sm2(e,dti(esi),10*arf/M);
|
|
%[dl,dti(dli)] = phxl(d,ds,al,pl,dti(dli));
|
|
xs = zeros(L,1);
|
|
ds = zeros(L,1);
|
|
|
|
%rxd = max(abs(correlt(x,d,40/M)));
|
|
|
|
%[es,dti(esi)] = phxs(e,0.008,0.005,dti(esi));
|
|
%[el,dti(eli)] = phxl(e,es,0.0001,pl,dti(eli));
|
|
%[rxds,dti(rxdi)] = phxs(rxd*ones(L,1),arrxd,afrxd,dti(rxdi));
|
|
|
|
%[nl,dti(nli)] = phnl(e,es,el,xs,xl,al,pl,dti(nli));
|
|
%a = alpha(xs,xl,nl,pl,es,(rxd > po),pa);
|
|
a = zeros(L,1);
|
|
|
|
rxd = max(corrph(xl,dl,30));
|
|
a = (((xl(1:1.0/M:L/M)*rxd) > (pl*dl(1:1.0/M:L/M))));
|
|
rxds=0*ones(L,1);
|
|
dtf = dti;
|
|
xl = zeros(L,1);
|
|
dl = zeros(L,1);
|
|
|
|
% ------------------------------------------------------------------------
|