D1 = readmatrix('SensorValues.xlsx');
s = D1;                                                             
L = size(s,1);                                                      
Fs = 1;                                                             
Ts = 1/Fs;                                                          
Fn = Fs/2;                                                          
t = linspace(0, L, L)*Ts;                                           
sc = s - mean(s);                                                   
FTs = fft(sc)/L;                                                    
Fv = linspace(0, 1, fix(L/2)+1)*Fn;                                 
Iv = 1:numel(Fv);                                                   
figure
plot(Fv, abs(FTs(Iv))*2)
grid
xlim([0  0.001])
title('Fourier Transform')
xlabel('Frequency (Hz)')
ylabel('Amplitude')
Wp = [0.001 0.075]/Fn;                                              
Ws = [0.9 1.1].*Wp;                                                 
Rp =  1;                                                            
Rs = 60;                                                            
[n,Wp] = ellipord(Wp,Ws,Rp,Rs);                                     
[z,p,k] = ellip(n,Rp,Rs,Wp);                                        
[sos,g] = zp2sos(z,p,k);                                            
figure
freqz(sos, 2^20, Fs)                                                
set(subplot(2,1,1), 'XLim',Wp*Fn.*[0.8 1.2])                        
set(subplot(2,1,2), 'XLim',Wp*Fn.*[0.8 1.2])                        
s_filtered = filtfilt(sos, g, s);                                   
figure
plot(t, s)
hold on
plot(t, s_filtered)
hold off
grid
xlabel('Time (Units Estimated)')
ylabel('AMplitude (Units Not Specified)')
legend('Original Signal', 'Bandpass-Filtered Signal', 'Location','W')