サンプリング数の少ない場合のグラフ描画

例えば変数
A = [0, 0, 40, 42, 40, 28, 20, 19, 23, 0, 0];
time = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
があり、Aは何かの信号、timeは時間として10秒分のデータを取得したとしています。
plot(time,A,'-r','LineWidth',1.2);
を実行するとグラフは表示できますが、サンプリング数が少ないため、かくかくしたグラフとなってしまいます。
B = smoothdata(A);
plot(time,B,'-o','LineWidth',1.2);grid on;
smoothdata関数等も使いましたが、あまりうまくいきません。何か良い方法はないでしょうか?
ご教授お願いいたします。

 Accepted Answer

Hernia Baby
Hernia Baby on 12 Oct 2022

0 votes

resampleもしくはinterp1を使用してください。
A = [0, 0, 40, 42, 40, 28, 20, 19, 23, 0, 0];
time = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
tq = linspace(0,10,1000);
B = interp1(time,A,tq,'spline');
plot(time,A,'ko','LineWidth',1.2);hold on;grid on;
plot(tq,B,':','LineWidth',1);
legend({'original','interp'})

1 Comment

Ochi Kai
Ochi Kai on 13 Oct 2022
本当にありがとうございます。大変勉強になりました。

Sign in to comment.

More Answers (0)

Categories

Find more on MATLAB in Help Center and File Exchange

Products

Release

R2022a

Tags

Asked:

on 12 Oct 2022

Commented:

on 13 Oct 2022

Community Treasure Hunt

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

Start Hunting!