IsoscelesTriangleFit1D

IsoscelesTriangleFit1D#

class IsoscelesTriangleFit1D(rawData)#

Bases: FitData1D

IsoscelesTriangleFit1D fits isosceles triangle wave functions to 1D data.

Fits symmetric triangle wave functions where rise and fall times are equal (isosceles triangles) to experimental data. The function consists of linear rise and fall segments with specified period and phase. Inherits from FitData1D.

Formula:

\(u = (x + \phi) \bmod T\)

\(y(u) = \begin{cases} A_{\min} + (A_{\max} - A_{\min})\, \dfrac{u}{T/2}, & 0 \le u < T/2 \\ A_{\max} - (A_{\max} - A_{\min})\, \dfrac{u - T/2}{T/2}, & T/2 \le u < T \end{cases}\)

Coefficients: \(A_{\max}\), \(A_{\min}\), \(\phi\), \(T\)

Example1:

% Fit isosceles triangle wave to experimental data
x = linspace(0, 20, 200);
y = sawtooth(2*pi*0.2*x, 0.5) + 0.1*randn(size(x));
data = [x', y'];
triangleFit = IsoscelesTriangleFit1D(data);
triangleFit.do();
triangleFit.plot();

Example2:

% Access fit coefficients
triangleFit = IsoscelesTriangleFit1D(data);
triangleFit.do();
amax = triangleFit.Coefficient(1); % maximum amplitude
amin = triangleFit.Coefficient(2); % minimum amplitude
phi = triangleFit.Coefficient(3);  % phase
T = triangleFit.Coefficient(4);    % period
Constructor Summary
IsoscelesTriangleFit1D(rawData)#

Construct an IsoscelesTriangleFit1D object.

Parameters:

rawData (double array) – Input data as n x 2 matrix [x, y]

Method Summary
guessCoefficient()#

Automatically estimate initial fit coefficients from data.

Estimates maximum/minimum amplitudes, period, and phase based on data characteristics and Fourier analysis. Uses isosceles assumption with equal rise and fall times.

setFormula()#

Set the isosceles triangle wave fit formula.

Configures the Func property with an isosceles triangle function where rise time equals fall time (T/2 each).