Cascade filters and amplify

8 visualizaciones (últimos 30 días)
David Jones
David Jones el 24 de Jun. de 2021
Comentada: Mathieu NOE el 25 de Jun. de 2021
Hi
I don’t have much experience in MATLAB but I have a circuit that amplifies low frequency breathing it consists of four op-amps each amplify by 10 and each have a second order bandpass set to .1Hz to .4Hz.
I have now used one op-amp as above and a 24bit ADC sampling at 100Hz and my number of samples is 6000 (60 Seconds of data)
I have managed to bring the data in to MATLAB (please see attached) but I am struggling to implement the filters and gain could somebody please assist me.
Many thanks in anticipation
Kind Regards
David

Respuesta aceptada

Mathieu NOE
Mathieu NOE el 24 de Jun. de 2021
Here you are my friend
the demo is done on a second order bandpass Butterworth filter ; you ca simply increase the order to match was was done in your analog filters
hope it helps
all the best ,
clearvars
load('Raw_Data.mat');
Fs = sample_rate;
samples = number_of_samples;
x = raw_ad_data_sine;
dt = 1/Fs;
t = (0:samples-1)'*dt;
% IIr filter : bandpass butterworth
order = 2;
[numd,dend] = butter(order,2/Fs*[0.1 0.4]);
figure(1)
dbode(numd,dend,dt); % bode plot
y = filtfilt(numd,dend,x); % Zero-phase forward and reverse digital IIR filtering.
figure(2) % time plot
plot(t,x,t,y);
legend('input signal','output signal');
  4 comentarios
David Jones
David Jones el 25 de Jun. de 2021
Thanks for all your great help Mathieu
Mathieu NOE
Mathieu NOE el 25 de Jun. de 2021
My pleasure

Iniciar sesión para comentar.

Más respuestas (0)

Productos


Versión

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by