how to curve fit a sine wave to some data
26 visualizaciones (últimos 30 dÃas)
Mostrar comentarios más antiguos
Matt Thomas
el 12 de Ag. de 2023
Comentada: Matt Thomas
el 13 de Ag. de 2023
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:
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 :
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
7 comentarios
Respuesta aceptada
Matt J
el 12 de Ag. de 2023
One way, assuming you have the Curve Fitting Toolbox:
fobj = fit( time, Channels(:,iChan) ,'sin1')
7 comentarios
Más respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!