fs = 20e3;
tr = randn(fs*10,1)-60;
padlen=2;
padn=padlen*fs;
f_lo=0.5;
f_hi=100;
tvec=(1/fs:1/fs:1/fs*length(tr));
figure
ax1=subplot(3,1,1);
ax2=subplot(3,1,2);
ax3=subplot(3,1,3);
nutr=[tr(padn:-1:1);tr;tr(end:-1:end-(padn-1))];
N = 2;
[B,A] = butter(N,f_lo*2/fs,'high');
filtr= filtfilt(B,A,nutr);
N = 2;
[B,A] = butter(N,f_hi*2/fs,'low');
filtr2= filtfilt(B,A,filtr);
filtr2=filtr2(padn+1:end-padn);
tr1=filtr2;
nutr=[tr(padn:-1:1);tr;tr(end:-1:end-(padn-1))];
N = 2;
[B,A] = butter(N,[f_lo f_hi]*2/fs);
filtr= filtfilt(B,A,nutr);
filtr=filtr(padn+1:end-padn);
tr2=filtr;
plot(ax1,tvec,tr)
plot(ax2,tvec,tr1)
plot(ax3,tvec,tr2)
xlabel(ax3,'Time (s)')
title(ax1,'Original signal, fs=20kHz')
title(ax2,'Sequential high pass and lowpass (0.5 to 100 Hz)')
title(ax3,'Bandpass (0.5 to 100 Hz)')