Help with Signal Pattern Recognition using HMM

조회 수: 7 (최근 30일)
Matt
Matt 2013년 4월 11일
댓글: Vimalraj PM 2018년 6월 28일
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