Very nice video! You can see the noise, and with other more complex filter
functions can reduce that (Kaiser, Blackham-Harris, etc.). But that may not
be necessary. It will depending on aspects such as noise leaking into the
higher frequency harmonics. Good choice with the window size.

As can be 'seen' the higher frequency harmonics can be now be tracked and
used as features in SDR encoding. The age of the person associated with the
ECG can be used to help work out where those harmonics are likely to be in
the FFT, ALONG WITH information from the signal (how often the main peaks
in the original ECG occur). Together with FFT extracted information various
encoders can be used to make an SDR for input to a SP and then a TM. With
the temporal memory(s) able to 'monitor' over time the SDR and a classifier
to detect anomalies (If my understanding is correct?).

Regards, Richard.

On Wed, Nov 4, 2015 at 2:33 AM, Kentaro Iizuka <[email protected]>
wrote:

> Richard,
>
> First, I have some additional information about my ECG data.
> My ECG device can take 190 samples per second.
> And, window size is 500 samples now.
> 500 sample/window is not based on scientific reason, based on my
> intuition...
>
> These graphs show the window size.
>
> https://cloud.githubusercontent.com/assets/478824/10927182/fa0e663c-82e0-11e5-92d4-0cf4b3d579b0.png
>
> https://cloud.githubusercontent.com/assets/478824/10927183/fa0e8946-82e0-11e5-9f59-67e86a972966.png
>
> https://cloud.githubusercontent.com/assets/478824/10927181/fa0d72d6-82e0-11e5-9624-82e030690837.png
>
> Each window have 3~4 QRS pars.
>
> Next, noise.
> As you write, I found some noise like motion in FFT converted data.
> https://www.youtube.com/watch?v=zYTr1Msab7A
> This is another visualization for my FFT converted ECG data.
> Some noise exist right of the graph.
> I’ll read your suggested paper.
>
> Thank you.
>
> 2015-11-04 11:33 GMT+09:00 Kentaro Iizuka <[email protected]>:
> > Pascal,
> >
> > Coordinate Encoder looks great.
> > Chandan’s youtube is also useful for me.
> >
> > I found this sample repository.
> > https://github.com/numenta/nupic.geospatial
> > It’s use Geospatial Coordinate Encoder not Coordinate Encoder,
> > But I think it’s useful.
> >
> > Your Idea that make models for each frequency is interesting.
> > I’ll try if Coordinate Encoder dose not work enough good.
> >
> > Thank you.
> >
> > 2015-11-03 22:45 GMT+09:00 Richard Crowder <[email protected]>:
> >> Hi,
> >>
> >> I mentioned briefly some things on Numenta Gitter chat [1], and will
> >> elaborate further here.
> >>
> >> You are now at a crucial stage of analyzing continuous time varying
> signals.
> >> Our brains, and neo-cortex, can make us jump too far ahead when seeing
> these
> >> graphs of the time-domain signal plotted in the frequency domain. As
> babies
> >> we work out Newton's laws of motion using complex evolving parts of our
> old
> >> and new (neo) brain (e.g. Force = mass x acceleration, F=ma [2]).
> Starting
> >> to crawl, walk, and catch objects. For example, multiple sensory input
> >> (visual, somatosensory, etc) using and adapting Purkinje cells in the
> >> cerebellum, and the constant looping and evolving of sensorimotor
> >> information to affect our muscle movements. This knowledge from
> childhood
> >> has to an extent hampered progress when machines are programmed to look
> into
> >> the time and frequency domain, using techniques such as Fourier
> Transforms.
> >> We look at the FFT (DFT) data and can see how the graphs change over
> time,
> >> almost automatically seeing the velocity and acceleration as the data
> >> changes (motion derivatives).
> >>
> >> With ECG data the heart makes a lower and upper limit on how the time
> domain
> >> signal changes. As mentioned in the other email thread [3] we can use
> that
> >> to limit the sliding sampling window over the signal (1000 samples a
> second
> >> as possible upper limit?). The repetitive nature of the signal is great
> for
> >> Fourier based spectral analysis. The heart beats also limits upper
> frequency
> >> to go to, with 8000 Hz being ok.
> >>
> >> One factor that you are aware of is noise. That can leak into the FFT
> plots
> >> and make lower frequencies get messy. Power line noise at 50/60 Hz, for
> >> example, can fluctuate and confuse things. And with the low rate of
> heart
> >> beating can interfere with the signal and get messy in the FFT [4]. BUT
> as
> >> you can now see in the FFT, the harmonics can now be 'seen' and add to
> >> features that can be tracked over time with Temporal Memories (SP +TM).
> >> Along with possible feature tracking of the original ECG signal in the
> time
> >> domain (no one has Max Heart Rate, 220-age beats per minute, unless
> stressed
> >> on a treadmill running very fast). Where those harmonics are is related
> to
> >> how fast the heart is beating. With greater harmonics for the QRS parts
> of
> >> the signal.
> >>
> >> The use of window and filter function on the ECG signal before Fourier
> >> Transform can be used to limit and decrease noise. But care must be
> taken
> >> with the size of windows, how many samples of the signal to consider in
> the
> >> window, and low/high pass and other filter functions (Hamming, Blackman,
> >> etc.). All help reduce noise, but never get rid of it. Here again,
> there is
> >> less noise in the higher frequency harmonics. And have helped Apple's
> Siri
> >> out a lot in analyzing speech, for example.
> >>
> >> Finding features will need information from the signal, e.g. how often
> the
> >> QRS part occurs, and then looking in the FFT data at roughly where the
> >> harmonics are (no need to go to too high number of them, up to 5 at
> max.).
> >> Which can tie in with the presentation by Chetan on Coordinate Encoder,
> but
> >> could be done with other encoders. First is finding all the features to
> >> track. My knowledge of using NuPIC to do that is limited, so hopefully
> >> others like Pascal can help here. The features can include beats per
> minute
> >> from the signal, and then limited information from the FFT (Pascals
> idea of
> >> a TM for a group of frequencies around the harmonics).
> >>
> >> Enough for now? Best regards, Richard.
> >>
> >> 1 https://gitter.im/numenta/htm-challenge and
> >> https://gitter.im/numenta/public
> >> 2 https://en.wikipedia.org/wiki/Newton%27s_laws_of_motion
> >> 3
> >>
> http://lists.numenta.org/pipermail/nupic_lists.numenta.org/2015-October/012047.html
> >> 4
> >>
> http://www.ijarcce.com/upload/2013/march/8-bhumika%20Chandrakar%20-%20a%20survey%20of%20noise-c.pdf
> >>
> >> On Tue, Nov 3, 2015 at 5:49 AM, Pascal Weinberger
> >> <[email protected]> wrote:
> >>>
> >>> Hey :)
> >>>
> >>> Currently there is the coordinate Encoder, which encodes for an
> >>> n-dimensional Vektor in n-Dimensional space.
> >>> Here is Chandan explaining it or better a slightly modified version
> >>> http://youtu.be/KxxHo-FtKRo
> >>>
> >>> The code:
> >>>
> >>>
> https://github.com/numenta/nupic/blob/master/src/nupic/encoders/coordinate.py
> >>>
> >>> You can Try that as a start, and what I'd also do is maybe have a model
> >>> for each frequency band, which you can probably the easiest get with
> the
> >>> htmengine :) the second method will also help you interpret the
> results as
> >>> you'll know what frequency was unexpected at a given time.
> >>>
> >>> Hope that helps :)
> >>>
> >>>
> >>>
> >>> Best,
> >>>
> >>> Pascal Weinberger
> >>>
> >>> ____________________________
> >>>
> >>> BE THE CHANGE YOU WANT TO SEE IN THE WORLD ...
> >>>
> >>>
> >>> PLEASE NOTE:  This email and any file transmitted are strictly
> >>> confidential and/or legally privileged and intended only for the
> person(s)
> >>> directly addressed. If you are not the intended recipient, any use,
> copying,
> >>> transmission, distribution, or other forms of dissemination is strictly
> >>> prohibited. If you have received this email in error, please notify the
> >>> sender immediately and permanently delete the email and files, if any.
> >>>
> >>> Please consider the environment before printing this message.
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> On 03 Nov 2015, at 04:12, Kentaro Iizuka <[email protected]>
> wrote:
> >>>
> >>> Hello, NuPIC,
> >>>
> >>> I'm currently working for ECG anomaly detection with NuPIC as HTM
> >>> Challenge project.
> >>>
> >>> Here is two graph.
> >>>
> >>> [first]
> >>>
> >>>
> https://cloud.githubusercontent.com/assets/478824/10900146/9b3a85a8-821f-11e5-83d4-4970e77bb623.png
> >>>
> >>> [second]
> >>>
> >>>
> https://cloud.githubusercontent.com/assets/478824/10900145/9b17a376-821f-11e5-9987-45c2634aa77c.png
> >>>
> >>> This is visualization of FFT converted ECG data.
> >>> First is the normal ECG data, second contain anomalous part.
> >>> Vertical axis is time step and horizontal axis is frequency,
> >>> color shows value of each frequency.
> >>>
> >>> You can see mottled part in second graph.
> >>> Actually, mottled part show anomalous in ECG data.
> >>>
> >>> FFT Converted data is times series of VECTOR(about 120 dimension)
> >>> I want to input time series of vector data into the NuPIC!
> >>> Is there any example or document for deal with time series of vector
> with
> >>> NuPIC?
> >>>
> >>> I want to know
> >>> * How to input vector data into the NuPIC
> >>> * What kind of Encoder I should use
> >>> * How to write swarming setting file
> >>>
> >>> Here are sample converted data.
> >>>
> >>>
> https://github.com/iizukak/ecg-htm/blob/master/data/healthy_person1_fft_converted.csv
> >>>
> >>>
> https://github.com/iizukak/ecg-htm/blob/master/data/disease_person1_fft_converted.csv
> >>>
> >>> Data form.
> >>> TIME1: [11.13, 10.36,..., 1.92]
> >>> TIME2: [11.22, 10.35,..., 2.65]
> >>> ...
> >>> TIME_END: [1.11, 10.20,..., 1.84]
> >>>
> >>>
> >>> In previous thread,very thank you for your helpful replies.
> >>> I’m an amateur of signal processing but I read all of your replies
> >>> carefully.
> >>> "Please help Ken with his HTM Challenge project"
> >>>
> >>>
> http://lists.numenta.org/pipermail/nupic_lists.numenta.org/2015-October/012047.html
> >>>
> >>> Thanks.
> >>>
> >>> --
> >>> Kentaro Iizuka<[email protected]>
> >>>
> >>> Github
> >>> https://github.com/iizukak/
> >>>
> >>> Facebook
> >>> https://www.facebook.com/kentaroiizuka
> >>>
> >>
> >
> >
> >
> > --
> > Kentaro Iizuka<[email protected]>
> >
> > Github
> > https://github.com/iizukak/
> >
> > Facebook
> > https://www.facebook.com/kentaroiizuka
>
>
>
> --
> Kentaro Iizuka<[email protected]>
>
> Github
> https://github.com/iizukak/
>
> Facebook
> https://www.facebook.com/kentaroiizuka
>
>

Reply via email to