IEEEStd1057 正弦函数参数拟合matlab实现

算法详细内容参考IEEEStd1057 文档,关键字 迭代 最小二乘。

matlab实现与测试代码如下:(https://code.csdn.net/hainan89/myalgorithm/tree/master/IEEESTD1057.m)


%% IEEESTD1057 正弦函数参数拟合算法

clear;
clc;

% 待拟合数据
M = 2 * pi;
tn = 0 : 0.1 * pi : M;
yn = 2 * sin(tn + 0.8);


w = 1; % 初始权重
sita = 0; % 初始相位

index = 0;
while(index < 1000)
       
    yT = 1 / M * sum(yn);
    alphaT = 1 / M * sum(cos(w * tn + sita));
    alphaN = cos(w * tn + sita);
    betaN = sin(w * tn + sita);
    betaT = 1 / M * sum(betaN);
    
    R = sum( (yn - yT) .* tn .* betaN ) / sum( (yn - yT) .* alphaN ) - sum( (alphaN - alphaT) .* tn .* betaN ) / sum( (alphaN - alphaT) .* alphaN )
    S = sum( (yn - yT) .* betaN ) / sum( (yn - yT) .* alphaN ) - sum( (alphaN - alphaT

你可能感兴趣的:(算法)