remove trend in temperature data
조회 수: 4 (최근 30일)
이전 댓글 표시
Hello,
In attachment you can find a figure of temperature data over the next 2.2 days. This temperature is the leg temperature of a chicken measured by a leg temperature sensor. During night, the temperature fluctuates approximately around a constant value. When chickens woke up at 9 AM in the morning, there is an immediate temperature drop since they are not sitting on the leg sensor anymore and thus consecutive temperature drop is observed.
After the chicken wakes up, temperature keeps rising throughout the day (until 6 PM when light fall out and chickens go back to sleep). This temperature rise during the day, is caused by the building warming up and also by the heat loss of all the chickens inside this building. I want to detrend my data, so that this temperature rise during day isn't contaminating my data anymore.
I want to analyze my data as if the experiments were done in a environmental control chamber where the ambient temperature has a continuous constant value of 21°C.
So far, I've used the 'detrend' function, but without any good results (it just shifts my data around 0...).
Can anyone help or suggest some other methods I could use?
Thanks
detrendchick = detrend(temp_PW_Chick3);
t = linspace(0,((((length(temp_PW_Chick3)/fs)/60)/60)/24),length(temp_PW_Chick3));
figure(1)
plot(t,temp_PW_Chick3)
hold on
plot(t,detrendchick)
xlabel('Time (days)')
ylabel('Temperature (°C)')
댓글 수: 0
채택된 답변
Peng Li
2020년 3월 24일
You may try to use wavelet decomposition (wavedec). You can estimate how many layers you may need to proximate the approximation coefficients to the component you need, and asign them to either 0 or the mean. And reconstruct the signal through waverec.
댓글 수: 1
Peng Li
2020년 3월 24일
Another thought came to my mind when I was cooking this morning. The rise and drop of temperature show clearly a circadian rhythm. Will that 24 hour rhythm be a component that you may want to keep instead of be treated as a "trend" and removed? wavedec may help extract this 24-hour component of course. And the other commonly used way to fit the data with a 24-hour cos/sin signal is so called cosinor fitting. Try to search the literature and you will find a bunch of papers in the chronobiology field.
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!