1
$\begingroup$

I want to implement basic noise reduction. I'm recording audio using a microphone mounted on a drone. I would like to filter the audio file from drone noise. What's the best way to do it ?

My first idea is to first record sound that is emitted by a drone only and convert it using fourier transform to see which frequency has the most energy. Then I could do the same thing with audio file with drone noise.

My question is how to cancel this drone noise ?

This is the spectrum of the sound emitted by propellers: enter image description here

Most of its power is in the low frequencies.

Edit. Community noise, including aircraft and motor vehicles, typically ranges between 50 Hz and 5,000 Hz. So basically if I filter noise from propellers I might also filter sound from vehicles?

$\endgroup$
  • $\begingroup$ You are going to have multiple types of noise coming from the drone and affecting different parts of your recording. Can you please edit your question to include a representative audio clip of the kind of interference you are trying to suppress? This would help in focusing the question. $\endgroup$ – A_A Jan 25 '18 at 8:49
  • $\begingroup$ @A_A I updated me question. $\endgroup$ – dawzaw Jan 25 '18 at 15:30
  • $\begingroup$ Take a look here.. You'll need Pure Data to use it. It comes with a demo that works on live audio, but it could easily be modified to read from a file. $\endgroup$ – JRE Jan 26 '18 at 20:29
0
$\begingroup$

It really depends on the purpose of your project. If you want to do it from scratches, it will not be easy. However, if you want to do it for just one file, and the goal is to suppress the noise of the drone on that file, I recommend you to download free processing tool: audacity: http://www.audacityteam.org/download/, and use their feature where you can pick a period with a typical noise, analyze it and remove so analyzed noise from the whole file. I think that you may find their source code as well for free, which may include the implementation of the feature as well. However, if you want to do it from scratches, there is a whole nice theory how to do it, but it is not easy.

$\endgroup$
  • $\begingroup$ Could you provide some algorithms that might be useful ? Could A-weighting be enough ? I think it might filter most of drone noise. $\endgroup$ – dawzaw Jan 25 '18 at 18:09
  • $\begingroup$ I am not sure about A-weighting, although it may be useful for more than just measuring the sound pressure, which is its original purpose. $\endgroup$ – VladP Jan 26 '18 at 15:40
  • $\begingroup$ Audacity uses spectral noise gating algoirthm, which can reduce the noise for , I don't know, maybe 25-35dB: this: makeuseof.com/tag/remove-ambient-noise-audio-files-audacity, wikihow.com/Remove-Background-Noise-in-Audacity In a nutshell signal is FFTed divided into the frequency bands, and thresholds are set to determine what is the noise and what is not. $\endgroup$ – VladP Jan 26 '18 at 16:02
  • $\begingroup$ There is so called BRIL algorithm which is a blind algorithm that you need: dspalgorithms.com/www/bril/bril.php, but that one is not free. Here is a good book about the problem, with a lot of background algorithms: Advanced Digital Signal Processing and Noise Reduction By Saeed V. Vaseghi $\endgroup$ – VladP Jan 26 '18 at 16:03
  • $\begingroup$ There are other more complicated method, which are originating from the control theory systme modeling. They may be still not implemented to the noise reduction. $\endgroup$ – VladP Jan 26 '18 at 16:03
0
$\begingroup$

You can't just assume your drone will always emit the same noise print, for example acceleration will change the pitch of the noise. So you can't cancel the noise effectively with equalization - as you say, this would also cancel much of the background signal you want to keep. Treat your propeller noise as a signal rather than noise. Your best bet here is using machine learning for single source separation. Implementing this yourself is not easy. Luckily, there's the freeware ISSE which does just what you need, and it does it incredibly well.

$\endgroup$
  • $\begingroup$ But if assume that measurement is being made when propellers rotate at constant speed - how will it simplify the problem ? $\endgroup$ – dawzaw Jan 26 '18 at 7:54
  • $\begingroup$ Even then, you will get best results with single source separation and as I mentioned, that is not trivial. $\endgroup$ – HENDRIX Jan 26 '18 at 9:00

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