フィルターのクリア

differentiation of time series data

122 ビュー (過去 30 日間)
Samson
Samson 2021 年 2 月 15 日
コメント済み: Walter Roberson 2021 年 2 月 21 日
I have a time series data 'X 'of size 20000 X 50. My step size dt= 0.05
how do I find the velocity of these data
  2 件のコメント
Walter Roberson
Walter Roberson 2021 年 2 月 15 日
Extract the data and use gradient() ?
Samson
Samson 2021 年 2 月 15 日
編集済み: Samson 2021 年 2 月 15 日
how do I extract, please? I had something like this but not correct as it is not taken the difference across time:
phdiff=diff(X');
temp=(phdiff./dt);

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

採用された回答

Walter Roberson
Walter Roberson 2021 年 2 月 15 日
If ts is the timeseries() variable then
X = ts.Data;
extracts the data.
With your data being 20000 x 50 my guess is that you have 20000 measurements for each of 50 entities, rather than 50 measurements for each of 20000 entities. If I am correct, then you would want the y gradient:
xstep = 1; %doesn't really matter, we are going to ignore
tstep = 0.5; %does matter
[~, ygrad] = gradient(X, xstep, tstep); %horizontal step first, vertical step second
  18 件のコメント
Samson
Samson 2021 年 2 月 21 日
It is the row that correspond to time. I am taking the velocity across the row which is a dimensionless time uniit. The values are phase values of oscillator distribeted in the interval (0,2pi]. I would finally need the mean of the phase velocity as there all independent rows
Walter Roberson
Walter Roberson 2021 年 2 月 21 日
xstep = 1; %doesn't really matter, we are going to ignore
tstep = 0.5; %does matter
Xunwrapped = unwrap(X, [], 2);
[~, velocity_gradient] = gradient(Xunwrapped, xstep, tstep); %horizontal step first, vertical step second

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

その他の回答 (0 件)

カテゴリ

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

タグ

製品


リリース

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by