For reference; http://www.intmath.com/blog/mathematics/math-of-ecgs-fourier-series-4281
On Sun, Oct 25, 2015 at 2:16 PM, Richard Crowder <[email protected]> wrote: > Also, covering Sergey's first question, what anomalies are you looking for? > See this report that uses a Fourier Transform and it's inverse for R-peak > detection; > > http://www.egr.msu.edu/classes/ece480/capstone/spring13/group03/documents/SignalProcessingofECGSignalsinMatlab.pdf > > PS: I have Matlab if required/helps. Although other ways in Python can be > used, see nupic.critic for example. > > On Sat, Oct 24, 2015 at 6:13 PM, Richard Crowder <[email protected]> wrote: > >> Kentaro, Sergey, >> >> I've been trying to get my head around available data for >> training/testing. >> >> For example, https://physionet.org/physiobank/ Graph viewing and >> download via >> https://physionet.org/cgi-bin/atm/ATM?database=mimic2wdb&tool=plot_waveforms >> (River >> view applicable?) >> >> Any idea what could be the best form of data, and which kind of data to >> obtain (ECG only?, with arterial blood pressure, need for labeling?). See >> graph here https://physionet.org/physiobank/database/mimic2wdb/ >> >> Best regards, Richard. >> >> >> On Thu, Oct 22, 2015 at 1:12 PM, 飯塚健太郎 <[email protected]> wrote: >> >>> Richard, Sergey, >>> Thank you for replies. >>> >>> I read replies carefully, and noticed some fact. >>> >>> Currently, My code using raw ECG data with NuPIC’s Scalar Encoder and >>> TemporalAnomaly for inferenceType. >>> >>> But It is another way, >>> use pre encoded ECG data to learn and predict anomalies. >>> >>> I found FFT used in Audio Stream example. >>> >>> https://github.com/numenta/nupic/blob/master/examples/audiostream/audiostream_tp.py#L249 >>> >>> It might be better to use Wavelet or another encoding technique, >>> That technique make data more discretely and might be suitable for >>> detect anomalies. >>> >>> I think I should learn about Encoding technique. >>> I’ll read the paper Richard suggested, too. >>> >>> Thanks! >>> >>> 2015-10-22 19:36 GMT+09:00 Richard Crowder <[email protected]>: >>> >>>> Hello Kentaro, >>>> >>>> Sergey's questions, response, and paper link are important. The linked >>>> paper is the first I've read on ECG signal analysis, but has a lot of >>>> cross-over with audio and speech signal analysis and recognition. Plus >>>> recently research into steganalysis [1]. >>>> >>>> For example - >>>> The use of Wavelet transform, or Fourier Transform / DCT (both >>>> magnitude AND phase), >>>> Perceptual linear prediction, as opposed to Mel-Frequency Cepstral >>>> analysis, >>>> Very importantly, statistical analysis of spectral features - >>>> Wavelet/DCT with Hilbert transform, spectral envelope curve analysis and >>>> derivative tracking (velocity and acceleration of curve changes, can limit >>>> up to 5th order). >>>> >>>> A lot of this occurs within animal's brains, with mammals adding >>>> addition feedback and inference through the neocortex. As humans, we have >>>> exploited the spectral analysis within our 'old brain' to listen, detect, >>>> and track spectral features. Such as ECG signals, and sonar signals >>>> (hunting for shoals of fish and submarines), for example. Cross-over and >>>> similar analysis occurs in vision sensory analysis too (e.g. edge >>>> detection). >>>> >>>> Which points to the key questions of how you are encoding the ECG >>>> signals? As well as classification techniques? >>>> >>>> Best regards, Richard. >>>> >>>> 1 http://www.shsu.edu/~qxl005/new/publications/tifs_audiosteg.pdf >>>> >>>> On Thu, Oct 22, 2015 at 10:18 AM, Sergey Alexashenko < >>>> [email protected]> wrote: >>>> >>>>> Actually, I can write out the scenarios here. >>>>> >>>>> NuPIC should definitely be able to learn different people's heartbeats >>>>> in one model. You have to give it plenty of data to learn on. Also, make >>>>> sure to resetSequenceStates every time you start feeding in data from a >>>>> new >>>>> person. Finally, you might want to shuffle the data so that you don't feed >>>>> it person 1, then person 2, then person 3, but rather a mixture of all the >>>>> data to reduce bias towards the latest people (but I don't think that this >>>>> is necessary to be honest). >>>>> >>>>> There is, however, the issue of encoding. I'm assuming that you are >>>>> using a scalar encoder produced by swarming. That's fine, that's a quick >>>>> approach and it might work (in fact I would bet that it will produce >>>>> usable >>>>> results - be mindful of swarming on a data set including different >>>>> people's >>>>> data, though!). >>>>> >>>>> However, if you think about the data type - ECG data, unlike, say, EEG >>>>> data, consists of almost perfectly discrete steps (heartbeats) which could >>>>> be matched to NuPIC timesteps very well. If you run through the trouble of >>>>> extracting features from your data (there is ample literature on how to do >>>>> it - see [1] for example), and creating encoders for all the >>>>> intervals/amplitudes, I think that NuPIC would do a marvelous job. Note >>>>> that this approach condenses the time interval per step to one per >>>>> heartbeat and, thus, is not going to work if you are trying to do >>>>> super-rapid detection or prediction (on a time scale shorter than one >>>>> heartbeat). It is also more time-consuming for you - once again, swarming >>>>> could work well enough. >>>>> >>>>> Hope this helps, >>>>> >>>>> Sergey >>>>> >>>>> [1] http://arxiv.org/pdf/1005.0957.pdf >>>>> >>>>> >>>>> >>>>> On Thu, Oct 22, 2015 at 1:58 AM, Sergey Alexashenko < >>>>> [email protected]> wrote: >>>>> >>>>>> Hello Kentaro, >>>>>> >>>>>> I think that NuPIC can definitely work with ECG data, but I need a >>>>>> little more information about your project to make any helpful >>>>>> suggestions. >>>>>> Two questions: >>>>>> >>>>>> 1) Are you trying to predict or detect anomalies? You use both terms, >>>>>> but they involve somewhat different mechanisms. >>>>>> >>>>>> 2) How are you encoding ECG data? >>>>>> >>>>>> Best, >>>>>> >>>>>> Sergey >>>>>> >>>>>> >>>>>> On Wed, Oct 21, 2015 at 10:07 PM, Kentaro Iizuka < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> Hello NuPIC. >>>>>>> >>>>>>> Thank you Matt for post. >>>>>>> >>>>>>> Here is my question detail. (It is same as gitter post) >>>>>>> https://gist.github.com/iizukak/72526863d3f504f2ff5e >>>>>>> >>>>>>> I hope somebody have good idea for that. >>>>>>> >>>>>>> Thank you! >>>>>>> >>>>>>> >>>>>>> 2015-10-22 13:29 GMT+09:00 Matthew Taylor <[email protected]>: >>>>>>> > Hello NuPIC, >>>>>>> > >>>>>>> > Check this out: >>>>>>> https://gitter.im/numenta/htm-challenge/archives/2015/10/21 >>>>>>> > >>>>>>> > Watch the ECG anomaly in the video: >>>>>>> https://youtu.be/5KdwV-trMhE?t=1m41s >>>>>>> > >>>>>>> > He has an interesting question about how to train a model on a >>>>>>> healthy >>>>>>> > heartbeat, and it is expressed well with pictures in the link >>>>>>> above. He >>>>>>> > wants to train a model with the ECG history of more than one >>>>>>> person to get a >>>>>>> > representation of a "healthy heartbeat". The problem is that every >>>>>>> person's >>>>>>> > heartbeat is a little different. Is it feasible to train a model >>>>>>> on multiple >>>>>>> > heartbeats in sequence? I'm not sure if it will work, but maybe >>>>>>> someone has >>>>>>> > a better idea? >>>>>>> > >>>>>>> > Solving this problem would help in a lot of different signal >>>>>>> analysis >>>>>>> > applications of HTM... >>>>>>> > >>>>>>> > --------- >>>>>>> > Matt Taylor >>>>>>> > OS Community Flag-Bearer >>>>>>> > Numenta >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Kentaro Iizuka<[email protected]> >>>>>>> >>>>>>> Github >>>>>>> https://github.com/iizukak/ >>>>>>> >>>>>>> Facebook >>>>>>> https://www.facebook.com/kentaroiizuka >>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >>> >>> -- >>> 飯塚健太郎([email protected]) >>> >>> 埼玉大学理工学研究科 >>> 暗号基盤研究室 >>> 博士前期課程一年次 >>> >> >> >
