Is it possible to use the trapz function to calculate the integrated value for each point of a data set?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponses (1)
Star Strider
le 12 Juil 2018
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 commentaires
Star Strider
le 12 Juil 2018
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
Voir également
Catégories
En savoir plus sur Numerical Integration and Differentiation dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!