Mercurial > hg > camir-aes2014
annotate toolboxes/FullBNT-1.0.7/bnt/examples/dynamic/HHMM/Old/remove_hhmm_end_state.m @ 0:e9a9cd732c1e tip
first hg version after svn
author | wolffd |
---|---|
date | Tue, 10 Feb 2015 15:05:51 +0000 |
parents | |
children |
rev | line source |
---|---|
wolffd@0 | 1 function [transprob, termprob] = remove_hhmm_end_state(A) |
wolffd@0 | 2 % REMOVE_END_STATE Infer transition and termination probabilities from automaton with an end state |
wolffd@0 | 3 % [transprob, termprob] = remove_end_state(A) |
wolffd@0 | 4 % A(i,k,j) = Pr( i->j | Qps=k), where i in 1:Q, j in 1:(Q+1), and Q+1 is the end state |
wolffd@0 | 5 |
wolffd@0 | 6 if ndims(A)==2 % top level |
wolffd@0 | 7 Q = size(A,1); |
wolffd@0 | 8 transprob = A(:,1:Q); |
wolffd@0 | 9 termprob = A(:,Q+1)'; |
wolffd@0 | 10 |
wolffd@0 | 11 % rescale |
wolffd@0 | 12 for i=1:Q |
wolffd@0 | 13 for j=1:Q |
wolffd@0 | 14 denom = (1-termprob(i)); |
wolffd@0 | 15 denom = denom + (denom==0)*eps; |
wolffd@0 | 16 transprob(i,j) = transprob(i,j) / denom; |
wolffd@0 | 17 end |
wolffd@0 | 18 end |
wolffd@0 | 19 else |
wolffd@0 | 20 Q = size(A,1); |
wolffd@0 | 21 Qk = size(A,2); |
wolffd@0 | 22 transprob = A(:, :, 1:Q); |
wolffd@0 | 23 termprob = A(:,:,Q+1)'; |
wolffd@0 | 24 |
wolffd@0 | 25 % rescale |
wolffd@0 | 26 for k=1:Qk |
wolffd@0 | 27 for i=1:Q |
wolffd@0 | 28 for j=1:Q |
wolffd@0 | 29 denom = (1-termprob(k,i)); |
wolffd@0 | 30 denom = denom + (denom==0)*eps; |
wolffd@0 | 31 transprob(i,k,j) = transprob(i,k,j) / denom; |
wolffd@0 | 32 end |
wolffd@0 | 33 end |
wolffd@0 | 34 end |
wolffd@0 | 35 |
wolffd@0 | 36 end |
wolffd@0 | 37 |