% 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); % ------------------------------------------------------------------------