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

📄 hmmabn.m

📁 Mathematical Methods by Moor n Stiling.
💻 M
字号:
function [alphahat,betahat,f,c] = hmmabn(y,HMM)
% 
% compute the normalized forward and backward probabilities for the model HMM
% and the output probabilities and the normalization factor
%
% function [alphahat,betahat,f,c] = hmmabn(y,HMM)
%
% y = input sequence y[1],y[2], ..., y[T]
% HMM = HMM data
%
% alphahat = [ alphahat(:,1) alphahat(:,2) ... alphahat(:,T)]
%            (alphahat(:,t) = alphahat(y_t^T,:))
% betahat = [betahat(:,2) ... betahat(:,T-1) betahat(:,T) betahat(:,T+1)]
%            (betahat(:,t) = betahat(y_{t+1}^T|:))
% f = initial probability types
% c = normalizing factors

% Copyright 1999 by Todd K. Moon

[m,T] = size(y);
[S,S] = size(HMM.A);
betatilde = HMM.final;       % initial value=valid final states

for s=1:S                % find initial alpha
    f(1,s) = hmmf(y(:,1),HMM.f,s);
end
alphatilde = f(1,:)' .* HMM.pi;
c(1) = 1/sum(alphatilde);
alphahat = alphatilde*c(1);
for t=2:T
  for s=1:S
    f(t,s) = hmmf(y(:,t),HMM.f,s);
  end
  alphatilde = f(t,:)' .* (HMM.A*alphahat(:,t-1));
  c(t) = 1/sum(alphatilde);
  alphahat = [alphahat alphatilde*c(t)];
end
betahat = c(T)*betatilde';
for t=T:-1:2
  betatilde = HMM.A' * (betahat(:,1) .* f(t,:)');
  betahat = [c(t-1)*betatilde betahat];
end

⌨️ 快捷键说明

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