- Resample x, y if samples are not equidistant
- Estimate the offset by the mean of all y values.
- Build the FFT with heavy zero padding.
- Take the frequency, amplitude and phase of the largest FFT peak.If the frequency is at the Nyquist limit or the period is less than one, add extra frequencies for evaluation. Add also frequencies that have a peak value larger than 0.8 of the max. peak.
- Take those values as initial values for the regressions.
- Exclude results above Nyquist frequency.
- Take the resulting MSE as rating.
- Depending on the number of samples and the MSE, set a limit for accepted amplitude in relation to the FFT amplitude.
- If the amplitude from regression is higher than the accepted amplitude, take the FFT parameters.
Peter Seibold (2023). Sine fitting (https://www.mathworks.com/matlabcentral/fileexchange/66793-sine-fitting), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!
Fixed a bug in the demonstration GUI
A version with output of confidence intervals, sinFit2 is included. Requires a toolbox.
Works also with non equidistant samples
Some changes in sineFitDemo in respect to 'run xy.mat'
No toolbox required anymore
Simplified code, faster processing, improved to work down to 0.1 periods, some more correct detections.
Totally new approach with Fourier transformation results as initial parameters for fitting function.