## Documentation |

Hidden Markov model states and emissions

`[seq,states] = hmmgenerate(len,TRANS,EMIS)hmmgenerate(...,'Symbols',SYMBOLS)hmmgenerate(...,'Statenames',STATENAMES)`

`[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

`seq`of emission symbolsA random sequence

`states`of 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`.

a with
probability _{k1}E. _{i1k11}hmmgenerate returns
i_{1} as the first entry of states,
and a as
the first entry of _{k1}seq. |

`hmmgenerate(...,'Symbols',SYMBOLS)` specifies
the symbols that are emitted. `SYMBOLS` can be a
numeric array or a cell array of the names of the symbols. 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 a numeric
array or a cell array of the names of the states. 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.

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'})

Was this topic helpful?