how to curve fit a sine wave to some data
19 次查看(过去 30 天)
显示 更早的评论
I have been using a open source software package called openFAST to generate some binary files of wind turbine simulations. I then use MATLAB to view the results of the 5MW_Land_DLL.outb files generated by openFAST using the following code:
%% Run this command first
%% Read a binary output file
% Read file
outbfile = '5MW_Land_DLL_WTurb.outb';
[Channels, ChanName, ChanUnit, FileID, DescStr] = ReadFASTbinary(outbfile);
time = Channels(:,1);
This code organizes the data into the matrices etc. like in the image below:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1455897/image.png)
I then use the plot function to generate a graph:
%%CHange the plot number to reflect the parameter in channel names matrix generated from above command.
% Plot Channel 34
iChan=34
figure()
plot(time, Channels(:,iChan))
xlabel('Time (s)')
ylabel([ChanName(iChan) ChanUnit(iChan)])
That looks like :
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1455902/image.png)
What I would like to do now is curve fit a sine wave to this plot above so I can get the frequency, the amplitude, phase, and the equation from it.
Is this possible to do?
I have zero experience in MATLAB. The above code was given to me. 🙂 I am not a coder at all.
Thanks
采纳的回答
Matt J
2023-8-12
One way, assuming you have the Curve Fitting Toolbox:
fobj = fit( time, Channels(:,iChan) ,'sin1')
7 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Linear and Nonlinear Regression 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!