Is it possible to use the trapz function to calculate the integrated value for each point of a data set?
4 ビュー (過去 30 日間)
古いコメントを表示
I have a column of data that plots a sin wave. I want to know the area under the curve at a given point or of a set number of samples, for example, a time vector.
This data is plotted against time with every 100 data points representing one second.
Is it possible to calculate the area under the curve for every 100 points? I want to end up with a sin wave with the integrated values i.e. how the area under the curve changes over time.
Is this possible? or is there another/better way to do this?
Thank you in advance
0 件のコメント
回答 (1 件)
Star Strider
2018 年 7 月 12 日
I am not certain how you are generating your signal.
t = linspace(0, 2*pi, 10000);
s = sin(t);
sr = reshape(s(:), 100, []);
int_sr = trapz(sr);
2 件のコメント
Star Strider
2018 年 7 月 12 日
Try this:
Fs = 100; % Sampling Frequency (Hz)
N = 6767; % Number Of Samples
t = linspace(0, N, N)/Fs; % Time Vector
s = sin(2*pi*t/75); % Signal
L = numel(s); % Signal Length
sr = reshape(s(1:fix(L/Fs)*Fs)', 100, []); % Reshape Signal Vector
int_sr = trapz(sr);
figure(1)
plot(t, s*100)
hold on
stairs(t(1:Fs:end-Fs), int_sr)
hold off
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!