# Bandpass filter is not working as expected

The sampling rate that I have currently is at 384kHz and I want to downsample it down to 44.1kHz. I want to use a bandpass from 5kHz to 200kHz but I am only able to bandpass up to 192kHz for some reason.

The following is my code:

# Importing data
datapath = "./Data/"
x, fs = sf.read(datapath + 'example_audio.WAV')

# Filtering function

def butter_bandpass(lowcut, highcut, fs, order=5):
nyq = 0.5 * fs
low = lowcut / nyq
high = highcut / nyq
b, a = butter(order, [low, high], btype='band')
return b, a

def butter_bandpass_filter(data, lowcut, highcut, fs, order=5):
b, a = butter_bandpass(lowcut, highcut, fs, order=order)
y = lfilter(b, a, data)
return y

# Main code

downsampling_rate = 44100
original_rate = 384000
rate_ratio = downsampling_rate/original_rate

listing = os.listdir(datapath)

for file in listing:
print("Before: ")
print(file)
plot_spectrogram(file)

x, fs = sf.read(datapath + file)

# TO DO: figure out 191kHz limit situation and conceptual reason why
x = butter_bandpass_filter(x, 5000, 191000, fs, order=5)

x = scipy_signal.resample(x, int(len(x)*rate_ratio))

print("After: ")
print(file)
plot_spectrogram(file)


But, the spectrogram and the PSD graph looks exactly the same (before and after) which makes me think that the band pass filter is not working properly.

Any insight would be greatly appreciated!