作者branda0423 (to believe)
看板MATLAB
标题[讨论] 有关已知频率的sinusoidal curve fitting
时间Sat Oct 17 23:38:32 2015
大家好
我有个问题想请教一下版上的大神
我由模拟跑出一组sinusodial wave
数据已知x,y,以及固定的频率omega
然後因为此函数对y轴会有shift因此我使用function y=b0+b1*(b2*x+b3)去fit
然後google以後使用了以下的方式
B0=mean(y); % vertical shift
B1=(max(y)-min(y))/2; % Amplitude
B2=0.0628319; %omega
B3=-1; % estimated phase shift
myFit = fitnlm(x,y, 'Y ~ b0 + b1*sin(b2*X1 + b3)', [B0, B1, B2, B3])
问题是这样跑出来的fitting curve仍然会有shift的情况
并且matlab所计算出来的b2不会和我所希望的固定频率完全一样
请问我应该如何更改呢?
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 66.66.17.254
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MATLAB/M.1445096314.A.FDE.html
1F:→ celestialgod: 不要把B2放进去 里面的b2改B2 10/17 23:57
2F:→ celestialgod: 就可以fix b2了 10/17 23:57
3F:→ celestialgod: 至於fit出来有shift可能他没收敛或是你的模型 10/17 23:58
4F:→ celestialgod: 没办法找到更接近的解 10/17 23:58
5F:→ branda0423: 谢谢楼上!!!太感谢你了Q___Q 10/18 00:14