Filtering Overlapping Frequencies in sound file I have been given a sound file of a plane passing over a rain forest filled with birds. I am supposed to filter out the sound of the plane as it flies over.  I've accomplished this with various types of filters in MATLAB, but I always run into one problem. I can either cut out all of the plane and lose some of the background rain forest noise, or leave (almost) all of the rainforest noise and leave a decent amount of airplane noise. This is the frequency spectrum of the original sound file:

(Sorry for the crappy image.) Note the different colors represent left and right channels. From the plot, the majority of the plane's frequency is in the 0-1000 Hz range. The plane is clearly heard however until I use a high pass filter to remove everything from around 1700 Hz to 0 like so:

I suspect that the plane is causing that spike around 1700 Hz but evidently the rain forest is still producing lower frequency noise than that. 

What would be the best method to remove that spike while keeping all that extra rain forest frequency?

EDIT:

Here is the plot of the time domain. Note how the plane gradually gets louder than fades away. 


The sampling frequency is 22050 samples/sec. 

And the spectrogram.
In my opinion, the best approach for this kind of spectrally-overlapping noise is to use blind source separation techniques, like independent component analysis (ICA) or time-frequency masking, or sparse source decomposition.  Look up the work of Emmanuel Vincent, Kostas Kokkinakis, or Philipos Loizou.  These methods work best when some statistics of the noise are time-independent, and the SNR is small or negative, as appears to be the case in your example.  Vincent has some MATLAB code available on the web.