Brief introduction: I am working on my university project. My task is to develop application that captures sound from mobile phone and removes/reduces noise (this simpilied version of task).

I never faced with DSP before, I spend a lot of time to figure out how to get audio signal from phone (no direct API is porvided), so I have only few weeks left to study DSP. There are a lot of information on that field, my basic source of information was: http://www.dspguide.com/.

My work, to be accepted should include some work(algorithms) in the field of DSP (so I should avoid ready libraries).

What I need simple algorithm(easy to understand) for noise reduction, I am very limited in time (I got only one day left, after that I should present my work)

refernces to resources for understanding FFT & inverse FFT (although I implemented that algorithms in code, I simply adopted code from the book)

what I have done FFT, Inverse FFT I tried to remove frequencies by applying FFT to signal in time domain and zeroing needed ranges in result frequency domain (ranges < 300 && ranges >3700 - as human voice is in range [300;3700] - so doing that I tried to remove sounds not related to human voice, but I got very bad results (https://stackoverflow.com/questions/24101814/why-ideal-band-pass-filter-not-working-as-expected)

Could you please suggest me how I can based on the results of FFT reduce noise (I don't need super efficient method, I need something that I can present in my work and explain how I did it)

Please help!


1 Answer 1


Fast convolution filtering with an FFT/IFFT requires zero padding and using overlap add or overlap save methods to remove circular convolution artifacts.

You should also use a frequency domain response that has a shorter impulse response than a rectangle (which zeroing bins is).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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