Current Short Term Goal
1. Obtain "noisy" heartbeat recordings of heart problems and filter them to test if we can successfully identify them
1. Audio level of the heartbeat is too low to be recorded over the noise - Fixed (Victor + Aleks)
2. We don't know what potential problems look like / we may be filtering them out
Similar Projects by other people
Sheila Messer and the use of wavelets to filter out noise in hearbeats
StethoMemoria by eXist Co. - Product that utilizes stethoscope like devices to record sounds to a .wav file
Audacity Noise Removal
based on this review...
i'd probably recommend a Littmann stethoscope for our quality one - they aren't the necessarily the best, but seem to be the most popular high quality version. The "best" one apparently is a sprague but the tubes introduce artifacts that would make it difficult for us to read, especially at our early stages.
Do we need to / want to get a "good" one this early in our project?
Looks like the Littman is more appropriate for our project than the Sprague or the DLX.
Before we buy it, would you search the Web more? Let's also think a little "outside the box." Are there better approaches, such as the ones you mentioned last time ---- all electronic ---- that we should try first, or try at the same time?
I purchased one of these on Ebay: about $5 including shipping.
Update: this arrived yesterday (6/22/2009) and works well. At least, I can hear my own heartbeat, which is reassuring. I made a very quick test: I detached the chrome head piece from the forked blue tubing, plugged one of the tube ends, and placed the other tube end over the mic hole on my Android G1. I then made a recording (with the G1 software that Victor and I found yesterday), placing the stethoscope pad on my chest. I then copied this recording to my desktop, where I was able to play it back in Windows Media Player. I could not hear the heartbeat, but I didn't listen too carefully. One problem is that the files produced by the recorder application are .3gp format, which is a part of the MP4 spec, and a little unusual. Consequently, Audacity cannot import the file. (Audacity is an excellent freeware audio processing tool which can do e.g. spectral analysis.)
Thus I am looking for a converter that will move .3gp to .wav ... I tried "RetroCode" from SourceForge, but it failed to decode the source file.
Based on a lot of reviews, the Littmann and the Sprague models keep appearing when people refer to the best stethoscopes. The Littmann III is considered the best by a significant margin and tends to be used the most by doctors and professionals. Next up would be the Littmann II and the Omron Sprague Rappaport. The Sprague received higher ratings than the Littmann II but is less commonly used due to the noise artifacts it creates. In fact, if there were no noise artifacts, it would have been rated higher than the Litmann III. The Littmann II is popularly used by nurses and medical students as their instruments of choice.
Looking at the prices, Littmann III is about $160, Sprague is the "best buy" at $19, and the Littmann II is about $90 (prices obviously may vary)
For our project I think we should start with the Littmann III to minimize difficulty in design. If price is a concern, then Littmann II would be a good alternative. I would not recommend starting with the Sprague since at this point we barely understand the finer details of stethoscopes and will not recognize the noise artifacts. However, it would be a nice long term goal due to its cost efficiency (and a computer program might be able to easily filter out the artifacts).
I looked more in depth at Sheila Messer's research. In order to get her recordings, she used the Escope from Cardionics. This is an electronic stethoscope that can be used both to listen to heart sounds, as well as to record them.
I did some research on electronic stethoscopes. For the most part, it is not recommended for interns and nurses to use these because using regular stethoscopes supposedly builds their skills. However, due to the sound amplifications, these instruments can prove invaluable to doctors, as they can hear things in noisy hospitals and get much better quality readings, much faster.
For our purposes, I feel that we do not necessarily 'need' an electronic stethoscope, but one may be helpful for research purposes. Currently we are still struggling to get quality heartbeat recordings, but a large part of that is due to low volume generated by our stethoscope and the fact that we haven't really done anything that would permanently damage our cheap stethoscope (such as sealing tubes to microphones, etc). At this point, it appears that our eventual goal will include building some sort of cheap amplifier (or in essence parts of an electronic stethoscope). An electronic stethoscope could be purchased at this stage in order to begin working on some software that could deal with connecting to the cellphone and filtering noise, while simultaneously working on the hardware (issues of connecting a cheap stethoscope).
Based on the models I've been looking at, it would cost roughly $300-$400. (Note that for this price, it would amplify sounds, and even record them so that we could download onto computers etc).
Do you guys think we should get one? Price is rather high.
Makeshift Electronic Stethoscope
Used Command Poster Strips (dual-sided tape with Styrofoam center) as a sealant between microphone and stethoscope. Recording successfully done on computer and on Samsung Phone (Victor's cellphone).
Initial Results - we could see that the heartbeat was there based on the waveform especially in media players like Windows Media Player due to the background pulsing in time with the heartbeat. In order to pull out said heartbeat, we had to do extensive filtering.
Progress - We now can see/hear the heartbeat even prior to filtering, and now only use minor noise filtering to make the signal more clear
1. Audio recording much louder and clearer when done with Alek's heart (possibly because he is thinner?)
2. Audio recording much louder and clearer when done with Littmann III as opposed to Julian's blue stethoscope
We should probably use Java. Since a good high-end target device is perhaps the Google G1 (also known as the HTC Dream), initial application development could proceed using the Google Android OS (which the G1 runs), an SDK for which is available, as well as emulator plug-ins for the Eclipse IDE. Thus an actual 'phone is not needed (although Julian has one).
The latest Android release, version 1.5, nicknamed "cupcake" contains new support for access to low level audio data from the device's microphone.
Using the emulator with Android 1.5, I wrote a simple application that gathers real time audio data from the microphone and shows it as an amplitude/time graph, together with the spectral content (obtained from an FFT of the data). Here's a screenshot of the application: the top graph shows the audio samples, the lower graph an FFT of them (I was whistling into the mic at the time, so there is a clear frequency peak).
Heart Sound Recordings (7/13/09)
I got two sets of recordings (one made by Littman) and used audacity to take screenshots of the waveforms. Also, a set of samples is available here: http://filer.case.edu/~dck3/heart/listen.html (I think this site may prove useful later on since it is an exam site that describes proper stethoscope use, among other things). Here are the images from the Littman recordings:
-Aortic Stenosis (incomplete opening of the aortic valve)
-Aortic Regurgitation (leaking aortic valve)
-Mitral Stenosis (incomplete opening of the mitral valve)
-Mitral Regurgitation (leaking mitral valve)
-Midsystolic Click (a clicking noise followed by a mid systolic or late systolic murmur)
-Atrial Septal Defect (a form of congenital heart defect that enables blood flow between the left and right atria via the interatrial septum. - Wikipedia: "Atrial Septal Defect")
-Ventricular Septal Defect (a defect in the ventricular septum, the wall dividing the left and right ventricles of the heart. - Wikipedia: "Ventricular Septal Defect")
The differences between these are more easily heard than seen, but it fairly easy to see that a defect exists, if not which one it is.
Another excellent waveform reference I found while getting descriptions of these murmurs: http://www.cardiologysite.com/index.html
Continuous Wavelet Transforms (7/13/09)
I found a free program called Wavelet Sound Explorer. It's very limited, but performs the continuous wavelet transform. I applied it to three of the above waveforms:
The website for this program is currently down, unfortunately, so I'm not entirely sure on the details of how this program works. However, if I'm not mistaken, the vertical axis is the scale of the wavelet and the horizontal is time; coloring is the value at that position analogous to a heat map.
Plans for July 14
We will commit to either identifying anomalous stethoscope readings for a collection of individuals or to identifying anomalous periods for a single individual by analyzing the individual's long-term readings.
In either case, for how long the stethoscope should be read?... presumably a couple of minutes?
The wavelet explorer figures and even the raw data seems reasonably clean. I couldn't talk to my daughter before she had to leave for the hospital in Sacramento. We'll talk to Danny Petrasek on Friday.
Summary of July 14 meeting
The group has committed to identifying abnormal readings of an individual. The idea is that all the people in a village (for example) can use a stethoscope and cell phone to determine if somebody in the village has an abnormal measurement. The algorithm may have quite a large number of false positives (though too many false positives will result in scaring people unnecessarily and eventually the system being turned off).
Aleks pointed out that his inexpensive cellphone (LG PM225) and an $8 cable could be used with J2ME. The phone is slow, so any computation must be minimal. Julian pointed out that J2ME allows use of "Midlets" which are like Applets, but with a limited GUI and using only a subset of the full JDK. Midlets could be used to upload abnormal readings to a server.
A cheap homemade electrocardiograph can be constructed for under 5$. Instructions for step by step process, see link.
General Requirements for this particular design - Uses a computer (mainly for the analog to digital converter chip found in the sound card, which exists in cell phones as well) and a 9 Volt battery
I'll construct one of these to test, and then see if we can port it over to cell phones.
Week of July 20
Aleks - Phone Issues:
2ME runs on top of two frameworks: the CLDC (connected limited device configuration) and MIDP (Mobile Information Device Profile). There are multiple version of these things (CLDC 1.0 and 1.1, MIDP 1.0 and 2.0). The J2ME mobile sensor API, however, requires CLDC 1.1. Older versions of the phone only have 1.0.
Decision: Focus on Android now. After getting Android to work, make CLDC 1.1 work.
Victor - EKG:
Victor will build a prototype of an inexpensive EKG device. We should also find out if there are other inexpensive EKG devices available that produce signals that can be fed into the phone.
Spent about 9$ so far on parts. Note that 4.85 of it is from buying a breadboard dedicated to this project (and cost shouldn't really be counted) and that parts were purchased from the EE shop meaning parts can be gotten for cheaper (in bulk or via internet etc).
Talked to several EE graduate students and others to understand circuit design. It appears that some of it may be either unnecessary and/or overly complicated. I will proceed to prototype this model while noting that we may be able to build it for even cheaper.
Final Note: Last part I'm missing is a 3.5 mm male phone plug (couldn't find it in the shop). Will check around to see if anyone has one readily available. If worst comes to worst, I can just cut apart a cheap set of headphones and take it from that.
Aleks: Algorithms for differentiating normal from abnormal stethoscope readings. Use data from the Web site. Work with Mani on algorithm details.
Talk to SURF office about a joint presentation with Victor
Finish progress report for SURF office and get it signed by Mani
Victor: Build prototype of EKG.
Talk to SURF office about a joint presentation with Aleks. (I will do this tomorrow - Victor, 7/22/09)
Finish progress report for SURF office and get it signed by Mani.
Mani: Remind Danny Petrasek about getting collection of data for stethoscope readings from normal people and patients, and the same for EKG.
Set up SVN (Subversion) code repository. You will all need to get accounts on infospheres. Please send a message to Michael Olson at
"Michael Olson" <firstname.lastname@example.org>,
Ideas for Algorithm to Detect Abnormality