Azzera filtri
Azzera filtri

Cascade filters and amplify

5 visualizzazioni (ultimi 30 giorni)
David Jones
David Jones il 24 Giu 2021
Commentato: Mathieu NOE il 25 Giu 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

Risposta accettata

Mathieu NOE
Mathieu NOE il 24 Giu 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 Commenti
David Jones
David Jones il 25 Giu 2021
Thanks for all your great help Mathieu
Mathieu NOE
Mathieu NOE il 25 Giu 2021
My pleasure

Accedi per commentare.

Più risposte (0)

Prodotti


Release

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by