Filter time-variant data and reduce its length

1 回表示 (過去 30 日間)
zhi liu
zhi liu 2020 年 4 月 26 日
コメント済み: Ameer Hamza 2020 年 4 月 26 日
Hi experts,
I have a time-variant test data. The 1st column is time, and the 2nd column is data. There is a serious fluctuation of it. I want to filter the data and at the same time want to reduce its length.
Could somebody guide me how to do this? Thank you!

採用された回答

Ameer Hamza
Ameer Hamza 2020 年 4 月 26 日
It seems like you are trying to plot step-response of a system. Try something like this
data = load('data.csv');
t = data(1:100,1);
y = data(1:100,2);
y = smoothdata(y, 'sgolay', 20);
plot(t, y)
It reduces the length by taking the first 100 elements and smoothening the signal.
  2 件のコメント
zhi liu
zhi liu 2020 年 4 月 26 日
I want to get the full-response but a shorter data is needed. Is there suitable method? Thank you!
Ameer Hamza
Ameer Hamza 2020 年 4 月 26 日
Yes, The system reaches its steady-state after a few seconds. The rest of the data is redundant. This gives the full response of the system.

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

その他の回答 (1 件)

Thiago Henrique Gomes Lobato
Thiago Henrique Gomes Lobato 2020 年 4 月 26 日
Take a look at medfilt1 and/or movmean. They sould help you reduce the fluctuations. To reduce the data length you just index the time you want:
idx1 = 100;
idx2 = 900;
Data = Data(idx1:idx2,:); % Data = Length x 2 matrix
In this example your data will go only from meausurement point 100 to measurement point 900.

カテゴリ

Help Center および File ExchangeDigital Filtering についてさらに検索

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by