Hi,
Please, how can I use Harmonic fiting for the attached data to get a smooth fit.

댓글 수: 5

Torsten
Torsten 2023년 9월 20일
Where are the values of the variable you want to plot the data against (time or whatever) ?
TTA
TTA 2023년 9월 20일
x = 10:0.1:60
@TTA, Like this?
y = load('darta1.txt');
x = linspace(10, 60, numel(y));
plot(x, y, 'linewidth', 1.5), grid on
xlabel('x'), ylabel('y')
TTA
TTA 2023년 9월 20일
yes but I want use harmonics to fit it to something like the attached figure
Torsten
Torsten 2023년 9월 20일
Tell us precisely what you define as your approximating "harmonic".

댓글을 달려면 로그인하십시오.

 채택된 답변

Sam Chak
Sam Chak 2023년 9월 20일

1 개 추천

Hi @TTA,
I'm interpreting your 'Harmonic' model as the 'Sum of Sine' model. If this is not the case, then you will need to create a custom nonlinear model that suits the name "Harmonic" using the fittype() function.
y = load('darta1.txt');
x = linspace(10, 60, numel(y));
[f, gof] = fit(x', y, 'sin3')
f =
General model Sin3: f(x) = a1*sin(b1*x+c1) + a2*sin(b2*x+c2) + a3*sin(b3*x+c3) Coefficients (with 95% confidence bounds): a1 = 1564 (-8.752e+04, 9.065e+04) b1 = 0.04957 (-0.1147, 0.2138) c1 = 0.1819 (-4.047, 4.411) a2 = 1363 (-8.772e+04, 9.045e+04) b2 = 0.05511 (-0.1195, 0.2297) c2 = 3.18 (-1.365, 7.725) a3 = 2.975 (2.774, 3.176) b3 = 0.3159 (0.307, 0.3248) c3 = -4.138 (-4.419, -3.857)
gof = struct with fields:
sse: 465.0567 rsquare: 0.9983 dfe: 492 adjrsquare: 0.9983 rmse: 0.9722
plot(f, x, y), grid on,
legend('data', 'Sum of Sine (type-3)', 'location', 'best')

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Get Started with Curve Fitting Toolbox에 대해 자세히 알아보기

질문:

TTA
2023년 9월 20일

댓글:

TTA
2023년 9월 20일

Community Treasure Hunt

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

Start Hunting!

Translated by