Remove drift from signal

How do I remove the drift from this signal? I want the "flat" lines in beginning and the end to be at the same level.

7 Comments

You forgot to attach a screenshot or data, so until you read this link about all I can suggest is to use polyfit and subtract the fitted/smoothed signal.
Sorry, I forgot to click upload. Image added and attached the data here.
Tried with code:
opol = 1;
[p,s,mu] = polyfit(t1,phase1,opol);
f_y = polyval(p,t1,[],mu);
dt_phase1 = phase1 - f_y;
plot(t1,dt_phase1,'.');
Is there a way to only take the baseline into account for the slope?
We need to have your time vector as well, since that is required to write code specific to your data. Add that, and upload the .mat file.
Exactly what/where do you consider the baseline to be? Can you draw it on there?
There seems to be an integrated square-wave pulse in the centre half of the data. What are your data and how are you acquiring and initially processing them?
thestargazer
thestargazer on 19 Jul 2016
Edited: thestargazer on 19 Jul 2016
Image shows what I meant with baseline. Baseline 1 and Baseline 2 are suppose to be at same level, but I had a drift in my measurement (signal = intensity). I want to remove the drift without distorting (changing) the amplitude of my bump.
What I am interested of here is the amplitude of this "bump" and the response time.
Many thanks!

Sign in to comment.

Answers (1)

Star Strider
Star Strider on 19 Jul 2016

0 votes

Use the detrend function.

Products

Tags

Asked:

on 18 Jul 2016

Answered:

on 19 Jul 2016

Community Treasure Hunt

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

Start Hunting!