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?
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
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.
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/