What is the correct way to apply multiple IIR filters to a signal in MATLAB
If you filter out all frequencies above a certain cut-off frequency by a low pass filter, and if the filter is good, then there's hardly anything left above that cut-off frequency. If you then filter out everything below a certain cut-off frequency using a high pass filter, and if that cut-off frequency is greater than the cut-off of the low pass, then you eliminate the rest. There's not much left to do for the band pass filter afterwards, because you've basically suppressed your whole signal. That's why you don't hear anything.

What you probably wanted to do was apply the filters separately, i.e. create one low pass output, one high pass output, and one band pass output. In this case you have to filter the original signal x with the three different filters to generate three different output signals.


yl = filter(lowpass,x);
yh = filter(highpass,x);
yb = filter(bandpass,x);