Help with Signal Pattern Recognition using HMM

5 次查看(过去 30 天)
Hi all, I am trying to use a HMM with the HMM Statistics Toolbox to recognize patterns in waveforms. What I am doing is similar but simpler than speech pattern recognition so I know it can be done. We are measuring current draw of appliances during start up, steady state operation, and shut down. I have measured signatures, and want to have a model that can recognize new incoming signals and categorize them to either of the three, or come back that it is neither of the three.
There will be three events: Start up, Steady State, and Shut Down for each device.
I have discrete integer (converted to that) vectors of the signals for each event, and wish to use a discrete HMM (at least to get started). However, I am having a lot of difficulty understanding how to implement this. I have been reading and researching HMM's for a couple weeks and haven't made much progress. I really need some help.
I'm pretty sure my emission matrix will be a row vector containing my signal I want to match, or train the model to, correct? This will be the signatures I already have measured.
My real confusion is what should the transition matrix be? Is the "state" the current step, or state in time, or is it the current condition (start, steady, turn off)? I'm playing around with the Markov Model toolbox but some guidance would be greatly appreciated. Right now I am trying to train or estimate transition and emission matrices using my signal as the sequence "seq" and a vector from 1 to the length of the sequence at my state vector.
I know this isn't a hard problem but I can't figure it out. I am also a ME trying to do a EE's work right now which doesn't help much.
Thanks!
  2 个评论
Matt
Matt 2013-4-11
I have been able to use hmmestimate, using my recorded signal vector that was quantized into integers as the sequence and a states vector containing [1:1:length(signal_vector)] as states to estimate a transmission and emission matrix. I did: [TRANS, EMIS] = hmmestimate(signal_vector, states)
Then I used [sequence, state] = hmmgenerate(length(signal_vector), TRANS, EMIS) to generate a sequence.
When I plot the sequence and states outputted by hmmgenerate I get exactly the same as the sequence and state vector used in hmmestimate, so I think I am on the right track.
Vimalraj PM
Vimalraj PM 2018-6-28
Hi matt,i am working on the same problem,can u please guide me

请先登录,再进行评论。

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Speech Recognition 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by