⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hmmupdatev.m

📁 Mathematical Methods by Moor n Stiling.
💻 M
字号:
function hmmo = hmmupdatev(y,HMM)
% 
% Compute updated HMM model from observations y using Viterbi methods
% Assumes only a single observation sequence.
%
% function HMM = hmmupdatev(y,HMM) 
%
% y = sequence of observations
% HMM = old HMM (to be updated)
%
% hmmo = updated HMM

% Copyright 1999 by Todd K. Moon

hmmo = HMM;
[n,n] = size(hmmo.A);
[d,T] = size(y);
hmminitvit(HMM,3*n);
% find state sequence
plist = [];
for yk = y
  p = viterbi1(yk);
  if(p) plist = [plist p]; end
end
plist = [plist vitflush(find(HMM.final ~= 0))]; % flush to valid final states

% Now update the transition probabilities and initial probabilities
hmmo.pi = 0*hmmo.pi; 
hmmo.pi(plist(1)) = 1;      % initial probability based on observation
for state=1:n
  for nextstate=1:n
    ntrans = sum(plist(1:T-1)==state & plist(2:T) == nextstate);
    nfrom = sum(plist(1:T-1)==state);
    if(nfrom) hmmo.A(nextstate,state) = ntrans/nfrom; end
  end
end
hmmo.f = hmmupfv(y,plist,n,HMM.f);  % update the distribution

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -