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')