Help with Signal Pattern Recognition using HMM

7 Ansichten (letzte 30 Tage)
Matt
Matt am 11 Apr. 2013
Kommentiert: Vimalraj PM am 28 Jun. 2018
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 Kommentare
Matt
Matt am 11 Apr. 2013
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 am 28 Jun. 2018
Hi matt,i am working on the same problem,can u please guide me

Melden Sie sich an, um zu kommentieren.

Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by