Ajuste de curva gaussiana
La función de Matlab para lograr el ajuste de polinomios es relativamente simple y fácil de recordar, pero el ajuste de curvas complejas es más complicado, como las curvas de Gauss, también conocidas como funciones de distribución normal. Haga una nota en línea para que todos se animen.
clc;clear;
close all;
y = [1,1,1,3,7,8,7,3,1,1,1]; % 待拟合向量
len = length(y); % 数据长度
x = 1:1:len; % 时间轴坐标
figure,plot(x,y);
xlabel('Position / s');
ylabel('Intencity / cd');
title('Input Signal');
% 定义初始参数,matlab在此基础上优化,初始参数太差会导致优化效果很差
Amptittude = 7; % 定义初始幅值a
pos = 6; % 定义中心横坐标b
standerror = 2; % 定义标准差c
Da = 1; % 定义最低纵坐标d
gaussEqn = 'a*exp(-((x-b)/c)^2)+d'; % 高斯方程
startPoints = [Amptittude pos standerror,Da]; % 初始参数矩阵
para1 = fit(x',y',gaussEqn,'Start', startPoints); % 拟合命令(x、y必须是列向量)
hold on,plot(para1,x,y); % 绘图命令
a = getfield(para1,'a'); % 获取指定拟合参数a
Los resultados de la comparación de las curvas antes y después del ajuste son los siguientes.