High-pass filtering pre-processing before computing audio features I want to compute acoustic features on a set of audio files. These features can be classical audio features as spectral flux, but also acoustic indices as proposed in the seewave R package ). 

I need, in a pre-processing step, to remove low frequency noise (approximatively inferior at 200 Hz), that could be caused for example by wind or a distant road, and are not appropriated for the analysis.

As my features can be computed both from temporal and spectral values extracted from the audio signal, I am considering the use of a temporal high pass filter. This approach seem to me more adequate than a filtering on the spectral domain (with a reconstruction of the signal by an inverse Fourier transform). Am I right?  

Therefore I am looking for an high-pass digital filtering method that will remove low frequencies, but preserve as much as possible the high frequencies. If it is possible, I would like that the amplitudes of the fft bins above the cutoff frequency could stay the same after the filtering. 

What is the best method for this application? Is it relevant to use a temporal filter rather than a filtering on the fft bins? 

Concretely, I will use a python implementation (with scipy). I am now considering the use of a butterworth filter with the filtfilt function. Is this method appropriate? Is there a better solution for this issue?

Ant help or suggestion will be appreciate.



Edit


Sampling rate of the audio files: 48 kHz 
Low frequency band to remove: around 0-300 Hz
I agree that a large-order (12 taps+) high-pass Butterworth filter will be sufficient. 

Why?  Well, Butterworth filters are commonly used in professional audio-editing applications to do filtering, because their frequency response is designed to be as flat as possible in the passband. This means that the filtered audio is of higher quality/fidelity, as there are less frequency "ripples" or "artifacts" in the passband than other comparable filter types (Chebyshev, elliptic). In other words, Butterworth has a more linear phase response in the pass-band.

The downside is that the Butterworth filter has a slower roll-off, and will require a higher-order to implement a particular stopband specification. But this shouldn't be an issue for you.



To answer your second question, this is why the above solution is preferable to using an FFT and zeroing out the bins: Why is it a bad idea to filter by zeroing out FFT bins?