Azzera filtri
Azzera filtri

Find the central line (midpoint) of a sinusoidal wave

3 visualizzazioni (ultimi 30 giorni)
I used another program (tracker) to track the oscillation of a laser. I generated a plot of position with respect to time with the data used from the program.
Attached is an image of the data with a curve fit generated in matlab.
Is there a way to generate a horizontal line on this same plot in order to show the centerline of the oscillation?
For example, The biggest peak ranges fromo 45 to 75 cm. Its midpoint would be 57.5cm. A horizontal line at 57.5 would indicate the centerline of this oscillation.

Risposta accettata

Matt J
Matt J il 16 Giu 2023
Modificato: Matt J il 16 Giu 2023
yline(mean(y))

Più risposte (1)

Angelo Yeo
Angelo Yeo il 16 Giu 2023
Please consider the following example.
clear;
%% creating an oscillating signal with bias
fs = 10000;
t = 0: 1/fs: 1- 1/fs;
x1 = sin(2*pi*10*t);
x2 = exp(-1*t);
my_bias = exp(0.1 * t);
x = x1.*x2 + my_bias;
figure
plot(t, x);
%%
[pks_p, locs_p] = findpeaks(x); % find peaks
[pks_n, locs_n] = findpeaks(-x);
hold on;
plot(t(locs_p), pks_p, 'r*');
plot(t(locs_n), -1 * pks_n, 'b*');
%% creating a center line
yline(mean([pks_p, -1 * pks_n]))

Categorie

Scopri di più su 2-D and 3-D Plots in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by