为什么在对周期性离散时间信号进行最小二乘拟合时要排除最后一点?
信息处理
自由度
阶段
最小二乘
2022-02-12 00:42:53
2个回答
第一个(错误)答案(为了完整性) 最后一点的值与第一个相同。正如您显然知道频率一样,这一点超过了“基本期”。听起来这个附加点就像是对该时期第一点的隐含双重权重。
第二步:我试图拟合数据,不管有没有最后一点。这两种情况似乎都很合适。
%https://dsp.stackexchange.com/questions/71164/why-should-the-last-point-be-excluded-when-performing-a-least-squares-fit-of-a-d
clear;close all
%% Settings
T = 1.5; w=2*pi / T;
t = (0:0.15:1.5)';
y = [2.200 1.595 1.031 0.722 0.786 1.200 1.805 2.369 2.678 2.614 2.200]';
%% Fitting all points
ft = fittype(@(a1,a2,a3,x) a1+a2*cos(w*x)+a3*sin(w*x),'coefficients',{'a1','a2','a3'},'independent', {'x'});
f = fit( t, y, ft );
% Plot fit
subplot(2,1,1)
plot( f, t, y )
axis([t(1) t(end) 0.5 3])
grid on
title('Whole point set')
%% Fitting all points but the last
ft = fittype(@(a1,a2,a3,x) a1+a2*cos(w*x)+a3*sin(w*x),'coefficients',{'a1','a2','a3'},'independent', {'x'});
f = fit( t(1:end-1), y(1:end-1), ft );
% Plot fit
subplot(2,1,2)
plot( f, t(1:end-1), y(1:end-1) )
axis([t(1) t(end) 0.5 3])
grid on
title('Whole point set minus 1')
正如Laurent 的回答中所解释的那样,包括最后一点(等于第一点),与所有其他点相比,该点的权重只是其两倍。这并不能解释您的近似值中的相移。如果你做对了,你实际上会得到一个几乎完美的配合,即使最后一点包括在内:
t = 0:0.15:1.5; y = [2.200 1.595 1.031 0.722 0.786 1.200 1.805 2.369 2.678 2.614 2.200]; t = t(:); y = y(:); L = 长度(t); w0 = 2*pi/1.5; M = [ones(L,1),cos(w0*t),sin(w0*t)]; x = M\y; % 最优系数 f = M*x;% 逼近函数 e = f - y; % 近似误差
f(t) y 2.19999 2.20000 1.59540 1.59500 1.03076 1.03100 0.72175 0.72200 0.78639 0.78600 1.20001 1.20000 1.80460 1.80500 2.36924 2.36900 2.67825 2.67800 2.61361 2.61400 2.19999 2.20000
如果您排除优化中的最后一点,则结果几乎相同。唯一的区别是第一个点的近似误差,当包括最后一个点(与第一个点相同)时,它会稍微小一些,因为在这种情况下,与不包括最后一个点时相比,该点的权重是两倍。第一点的近似误差-5.8462e-06
包含最后一点,排除-7.6001e-06
最后一点。
其它你可能感兴趣的问题