i have .wav files acquired through putting android cell phone MIC directly on chest of person.For feature extraction, i have to made them noise free. These recordings were taken in rooms with no noise but there is always noise in such recordings no matter how noise free environment you have. How can i achieve this using FFT or any way?

  • $\begingroup$ the base, below the armpit, to the left of the heart is likely a better spot. in any case, i would be very surprised you collected anything useful using a phone $\endgroup$ – Stanley Pawlukiewicz Sep 21 at 19:26
  • $\begingroup$ @StanleyPawlukiewicz: It can be done using just a smartphone. I have done it - though I did use the microphone of a headset rather than placing the phone itself on my chest. $\endgroup$ – JRE Sep 22 at 7:15
  • $\begingroup$ a head set would be better but laying a phone on someone’s chest is doubtful. how did you deal with motion artifacts? $\endgroup$ – Stanley Pawlukiewicz Sep 22 at 13:42
  • $\begingroup$ @StanleyPawlukiewicz: By fastening it securely to minimize microphone movement. Strap around the chest. $\endgroup$ – JRE Sep 22 at 13:50
  • $\begingroup$ @JRE where did you collect? along the sternum or at the base? $\endgroup$ – Stanley Pawlukiewicz Sep 22 at 13:53

The "lub dub" sound of a heart beat is primarily between about 30Hz and 40Hz.

A steep band pass filter for about 20Hz to 50Hz followed by amplification should bring out the beats themselves.

If you need other heart sounds, then it gets difficult.

Heart murmurs are a kind of wide band swishing noise - difficult or impossible to isolate using filters.

Valve opening or closing sounds are wide band impulses. Their spectrum "looks" much like the spectrum of a thump on the microphone. Again, difficult or impossible to reliably pick out of noise with just a filter.

Before you go to the extent of writing your own program, I suggest you first make sure there's something there to recover.

Download something like Audacity and use it to clean up a copy of one of your recordings.

  • High pass with cutoff of 20Hz
  • Low pass with cutoff of 100Hz
  • Normalize

That will not get it perfectly clean, but it should be enough to tell if the heartbeats were really recorded.

If you can hear heart beats after applying those steps then you can look into writing your own program.

If you can't hear heartbeats after the filtering then you'll need to make new, better recordings.

  • $\begingroup$ I am not allowed to use Audacity like softwares. I have to write my own code to remove noise from noisy signals. $\endgroup$ – Noman marwat Sep 22 at 10:37
  • $\begingroup$ The suggestion to use Audacity is so that you can see if there's any signal in your recordings at all before you write your own software. If there's nothing in the recording to be recovered, then you could spend a lot of time trying to figure out if your code is doing what it should or not. $\endgroup$ – JRE Sep 22 at 10:39

The simplest way I can think of to remove noise from this kind of recording would be to use the noise removal functions in Audacity (https://manual.audacityteam.org/man/noise_reduction.html). This allows you to select a section of noise with none of the target signal and get a noise profile. You then remove spectral content that fits with this profile, leaving most of the target signal intact. There are better software packages for this but it's probably worth experimenting with Audacity before paying money for those. If you're comfortable with Python it may also be worth checking out this: https://pypi.org/project/noisereduce/

  • $\begingroup$ collecting clean heart sounds is not easy. the problem is the movement of the subject during collection. people also like to breath. the sounds are low intensity and when a subject moves, the analog signal conditioning tends to clip and saturate. subjects need to lie very still. $\endgroup$ – Stanley Pawlukiewicz Sep 22 at 13:29
  • $\begingroup$ @StanleyPawlukiewicz It will help me alot. Thanks for advice $\endgroup$ – Noman marwat Sep 22 at 18:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.