Cascade filters and amplify
8 views (last 30 days)
Show older comments
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
0 Comments
Accepted Answer
Mathieu NOE
on 24 Jun 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 Comments
More Answers (0)
See Also
Categories
Find more on Analog Filters in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!