hmmgenerate
Hidden Markov model states and emissions
Syntax
[seq,states] = hmmgenerate(len,TRANS,EMIS)
hmmgenerate(...,'Symbols',SYMBOLS)
hmmgenerate(...,'Statenames',STATENAMES)
Description
[seq,states] = hmmgenerate(len,TRANS,EMIS) takes
a known Markov model, specified by transition probability matrix TRANS and
emission probability matrix EMIS, and uses it to
generate
A random sequence
seqof emission symbolsA random sequence
statesof states
The length of both seq and states is len. TRANS(i,j) is
the probability of transition from state i to state j. EMIS(k,l) is
the probability that symbol l is emitted from state k.
Note
The function hmmgenerate begins with the
model in state 1 at step 0, prior to the first emission. The model
then makes a transition to state i1, with probability T1i1,
and generates an emission ak1 with
probability Ei1k11. hmmgenerate returns
i1 as the first entry of states,
and ak1 as
the first entry of seq.
hmmgenerate(...,'Symbols',SYMBOLS) specifies the symbols that are
emitted. SYMBOLS can be specified as a numeric array, a string array,
or a cell array of character vectors. The default symbols are integers
1 through N, where N is the
number of possible emissions.
hmmgenerate(...,'Statenames',STATENAMES) specifies the names of the
states. STATENAMES can be specified as a numeric array, a string
array, or a cell array of character vectors. The default state names are
1 through M, where M is the
number of states.
Since the model always begins at state 1, whose transition probabilities
are in the first row of TRANS, in the following
example, the first entry of the output states is
be 1 with probability 0.95 and 2 with probability 0.05.
Examples
trans = [0.95,0.05;
0.10,0.90];
emis = [1/6 1/6 1/6 1/6 1/6 1/6;
1/10 1/10 1/10 1/10 1/10 1/2];
[seq,states] = hmmgenerate(100,trans,emis)
[seq,states] = hmmgenerate(100,trans,emis,...
'Symbols',{'one','two','three','four','five','six'},...
'Statenames',{'fair';'loaded'})Version History
Introduced before R2006a