私はMATLABのヘルプをブラウズしている間、誤って私の質問に対する解決策を見つけました。私は、同じ問題を抱えている人々を援助したいと考えてこの回答を投稿します。
これを解決するための最初の試みとして、私は「フィット」命令を試みました。 「
FitOptions = fitoptions('Method','NonlinearLeastSquares', 'Algorithm', 'Trust-Region', 'MaxIter');
FitType = fittype('a*sin(1*f) + b*sin(2*f) + c*sin(3*f) + d*sin(4*f) + e*sin(5*f) + g*sin(6*f) + h*sin(7*f) + k*sin(8*f) + l*sin(9*f) + m*sin(10*f) + n*sin(11*f)', 'independent', 'f');
[FittedModel, GOF] = fit(freq, data, FitType)
% `In above code, phase parameters are not included, they might be added.
私は何を見つけることは最適化ツールボックスから「lsqcurvefitは」命令を使用して、カスタマイズされた関数フィッティングがより実現可能かつ容易なことである。いくつかの理由から、カスタマイズされた、以下のようなベースのフィッティングコードを「フィット」ワークアウトしませんでしたフィット関数。 (今まで)満足のいくものである、それは以下に示されて
clear;clc
xdata=1:0.1:10; % X or Independant Data
ydata=sin(xdata+0.2)+0.5*sin(0.3*xdata+0.3)+ 2*sin(0.2*xdata+23)+...
0.7*sin(0.34*xdata+12)+.76*sin(.23*xdata+.3)+.98*sin(.76 *xdata+.56)+...
+.34*sin(.87*xdata+.123)+.234*sin(.234 *xdata+23); % Y or Dependant data
x0 = randn(36,1); % Initial Guess
fun = @(x,xdata)x(1)*sin(x(2)*xdata+x(3))+...
x(4)*sin(x(5)*xdata+x(6))+...
x(7)*sin(x(8)*xdata+x(9))+...
x(10)*sin(x(11)*xdata+x(12))+...
x(13)*sin(x(14)*xdata+x(15))+...
x(16)*sin(x(17)*xdata+x(18))+...
x(19)*sin(x(20)*xdata+x(21))+...
x(22)*sin(x(23)*xdata+x(24))+...
x(25)*sin(x(26)*xdata+x(27))+...
x(28)*sin(x(29)*xdata+x(30))+...
x(31)*sin(x(32)*xdata+x(33))+...
x(34)*sin(x(35)*xdata+x(36)); % Goal function which is Sum of 12 sines
options = optimoptions('lsqcurvefit','Algorithm','trust-region-reflective');% Options for fitting
x=lsqcurvefit(fun,x0,xdata,ydata) % the main instruction
times = linspace(xdata(1),xdata(end));
plot(xdata,ydata,'ko',times,fun(x,times),'r-')
legend('Data','Fitted Sum of 12 Sines')
title('Data and Fitted Curve')
結果::私は(> 8)コードの下での正弦12の合計に私のデータを合わせてそれをテストし
http://www.mathworks.com/help/curvefit/fourier.htmlの代わりにフーリエフィッティングを使用しますか?searchHighlight = fourier%20fitting 8つ以上の用語については、自分自身で実装する必要があります。しかしながら、フーリエフィッティングの8項はおそらくほとんどの場合十分である。 – NKN
コメントをいただきありがとうございます、フーリエのprobleはthatmフーリエが位相を考慮しておらず、セグメント化されたデータでは漏れと呼ばれるものがあります。それだけでなく、あなたが8項に限定して言及したように、それは十分ではないように思われます。 – MimSaad