Matlab: is a highpass filter what I want, to obtain my required spectrogram? How do I design/apply this? (pic included) The axes are wrong in the spectrogram. I have an audio wav file, and I know the sampling rate. this is read into the audioData variable. The audio is 1 channel. selected window length I believe (can't remember) is 512. I believe overlap is 50% ( the default?), 1024 fourier points. sampling rate is 250,000.

Using Matlab 2014a.

spectrogram made using this:
    s = spectrogram(audioData, 512, [], 1024, 250e3); 

In the spectrogram, the bottom bit is near the 20kHz range and I want to get rid of this and concentrate on the thing at the centre (which is around 25khz). To my knowledge, I need a high pass filter to allow all of the frequencies above 20kHz.
It seems like there are many ways to design filters which involve a lot of parameters and I'm a bit overwhelmed with how to start.

I essentially just want to cut out the bottom bit, so that I can image process the upper bit (ideally kept as close to intact, if not exactly, as possible)
If you don't have any specification for the filter besides the cut-off frequency, I believe the simplest way is to use the fir1 function. Note that the frequencies are normalised to half the sampling rate. For example:

b = fir1(n,20e3/(250e3/2),'high'); %Wn = Cutoff_req/(Fs/2)
figure; freqz(b,1,[],250e3); %visualize the filter if you wish
FilteredData = filter(b,1,audioData);


If you wish to have more control over the specifications (attenuation, ripple, etc.), I suggest using fdatool.