Extracting (clearing) useful true data from a noisy temperature signal

3 ビュー (過去 30 日間)
mehmet alper
mehmet alper 2023 年 1 月 25 日
コメント済み: mehmet alper 2023 年 1 月 30 日
Hi everyone, I have a temperature sensor signal with peak values. Sensor was setted for 0-275 K and 150-900 for two step of measurement but real temperatures were really high. I purposed to measure cooled points with my sensor between the peaks. Thus, temperature curve contains cooled points between the peaks. Many piece of frame after peaks, temperature getting down slowly relative to increasing of peaks and this cooled temperature trend is changing till the last frame.My point is acquiring this cooled temperature points between peaks. I called high temperature peaks as maximum pekas and low temperature peaks as min peaks. I tried findpeaks, localmax commands but I have to come up with a smart algorithm because peak widths are changing firstly at 381000th frame, secondly 445500th frame. I also attached data file with figure version of data file. How can I extract this cooled points along the frame? Are there anyone who can help me??
Thanks.
Here the link of .mat and .fig file;
I tried all combinations of findpeaks, locmin or locmax commands.
  3 件のコメント
mehmet alper
mehmet alper 2023 年 1 月 25 日
Of course right now. Just could not find the attachment button.
mehmet alper
mehmet alper 2023 年 1 月 25 日
.mat file can be easily plot with plot command by the way

サインインしてコメントする。

採用された回答

Image Analyst
Image Analyst 2023 年 1 月 25 日
Looks like you want to extract data only where the local range in y values is low. Here's a start:
s = load('temps3-combinedloandhi.mat')
s = struct with fields:
sumlohi: [1547847×1 double]
t = s.sumlohi;
x = 1 : numel(t);
subplot(3, 1, 1);
plot(x, t, 'b.-')
title('Original Data')
grid on;
% Filter data
windowWidth = 181;
tMax = movmax(t, windowWidth);
tMin = movmin(t, windowWidth);
tRange = tMax - tMin;
subplot(3, 1, 2);
plot(tRange, 'b-');
grid on;
title('Plot of the local y ranges')
% Plot histogram of local ranges.
subplot(3, 1, 3);
histogram(tRange, 128);
grid on;
title('Histogram of local range')
% Find where range is low.
mask = tRange < 10;
% Extract only data where the local range is low.
x2 = x(mask);
t2 = t(mask);
subplot(3, 1, 1);
hold on;
plot(x2, t2, 'r-')
  6 件のコメント
mehmet alper
mehmet alper 2023 年 1 月 28 日
Need a serious help anyone who can help is out there dear friends??
mehmet alper
mehmet alper 2023 年 1 月 30 日
Anyway, I found a way with using findpeaks reversely. Thanks you for your interest dear Image Analyst...

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeDescriptive Statistics についてさらに検索

製品


リリース

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by