📄 discretehmm.h
字号:
/************************************************
*
*离散HMM封装类头文件
*作者:周庚涛
*时间:2006.03.29
*
*第一次修改者:周庚涛
*第一次修改时间 :2006.6.21
*第二次此改者:周庚涛
*第二次修改时间 :2006.9.18
*************************************************/
#ifndef _DISCRETEHMM_H
#define _DISCRETEHMM_H
#define VITHUGE 10000000000.0
#define DELTA 0.001
#include "myconst.h"
class CDiscreteHmm
{
protected:
/*enum { N = 3, M = 59 , T= 640, NUM = 4};*///N:状态个数,M:观察值个数,T观察序列长度;
enum { N = 3, M = 59, T=FEATURENUM-EYEFEATURENUM, NUM =TRAINNUM};
public:
double A[N][N]; //状态转移距阵
double B[N][M]; //观查值概率距阵
double pi[N]; //初始状态分布
public:
CDiscreteHmm();
~CDiscreteHmm();
void ForwardWithScale(int O[T], double alpha[T][N],double scale[T], double & pprob);
void BackwardWithScale(int O[T], double beta[T][N],double scale[T]/*,double & pprob*/);
int BaumWelch(int O[NUM][T]);
void ComputeGamma(double alpha[T][N], double beta[T][N], double gamma[T][N]);
void ComputeXi(int O[T], double alpha[T][N], double beta[T][N], double xi[T][N][N]);
void ViterbiLog(int O[T], int q[T], double &pprob);
int GetN()
{
return N;
}
int GetM()
{
return M;
}
int GetT()
{
return T;
}
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -