在使用MATLAB将傅立叶级数拟合到离散数据之前,如何定义周期?

山姆·布罗基(Sam Brockie)

我正在使用MATLAB的fit函数:

fourier_series =(x,y,'fourier8');

使8阶傅立叶级数适合一组离散数据(x,y)。我需要傅立叶级数的周期为2 * pi。但是,我不知道如何解决此问题,因此,当我调用该函数时,它适合该系列的所需时间。任何建议将不胜感激。谢谢。

问题的背景:我正在分析骑车人的脚蹬的视频捕获数据,这些数据会随着时间的推移以3D空间中的关节位置的云形式输出。关节位置在每个踏板行程中都会略有变化。因此,我希望将傅立叶级数适合这些关节位置和关节角度,并将其作为曲柄角度的函数,以找到骑车人的“平均”位置。因此,必须将傅里叶级数的周期限制为2 * pi,因为当曲柄角度为零(即上止点,TDC)且曲柄角度为零时,“平均”位置必须返回到同一位置。 2 * pi(即曲柄臂旋转一圈后的TDC)。

当前,MATLAB将周期选择为略大于2 * pi,这意味着当我使用傅里叶级数来计算骑车人的位置时,在连续的踏板行程中,对于相同的曲柄角度,骑车人的位置会发生变化。

乔米

fit在一定时期内强制执行该函数的最佳方法是通过诉诸自定义方程模型fittype另一个选择(会发出警告)是将参数的上下限固定w为相同的值,然后选择作为解决方法LinearLeastSquares

通过观察可以得到更清洁的解决方案,因为您已经知道周期,所以拟合问题在参数中是线性的,因此可以采用线性最小二乘法。我将在下面展示这种方法的示例。

%// Build a simple time series with period 2*pi.
t = (0:0.01:4*2*pi)';
y = sawtooth(t);
T = 2*pi;

%// Compute the angular speed and the azimuth.
Omega = 2*pi/T;
alpha = Omega*t;

%// Build the regressor matrix, with n harmonics.
n = 8;
A = ones(length(t), 2*n+1);
for i = 1:n
    A(:,[2*i 2*i+1]) = [cos(i*alpha) sin(i*alpha)];
end

%// Solve the linear system.
%// The parameters are sorted as:
%// p = [y0 a1 b1 a2 b2 ...]'
%// being y0 the average of y, a_i the terms multiplying the sines
%// and b_i the terms multiplying the cosines.
p = A\y;

%// Evaluate the Fourier series.
yApprox = A*p;

%// Compare the solution with the data.
figure();
hold on;
plot(t, y, 'b');
plot(t, yApprox, 'r');

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用python将Weibull分布拟合到数据?

来自分类Dev

使用gnuplot将椭圆拟合到数据

来自分类Dev

如何使用傅立叶级数进行卷积

来自分类Dev

如何使用scipy curve_fit将曲线拟合到此数据

来自分类Dev

使用Python将系数拟合到数据和函数

来自分类Dev

尝试使用scipy将trig函数拟合到数据

来自分类Dev

使用python将erf函数拟合到数据

来自分类Dev

如何从python中的离散数据中获得周期性曲线拟合?

来自分类Dev

Matlab将HeatMap拟合到子图中

来自分类Dev

Matlab将HeatMap拟合到子图中

来自分类Dev

将数据拟合到hmm.MultinomialHMM

来自分类Dev

将数据拟合到hmm.MultinomialHMM

来自分类Dev

将数据拟合到威布尔分布

来自分类Dev

将基矩阵的变化拟合到数据

来自分类Dev

如何在 Matlab 中的离散序列数据(词干)上拟合曲线?

来自分类Dev

如何在MATLAB中将指数曲线拟合到阻尼谐波振荡数据?

来自分类Dev

将模型拟合到完整数据框后,如何从数据框预测单行

来自分类Dev

如何计算离散傅立叶变换?

来自分类Dev

如何将f(x)= sin(x)* sin(x)函数拟合到您的数据?

来自分类Dev

如何将多项式回归线拟合到数据

来自分类Dev

如何将多项式拟合到一些误差线数据中

来自分类Dev

如何将圆柱模型拟合到分散的3D XYZ点数据?

来自分类Dev

将数据拟合到高斯轮廓时如何在 lmfit 中包含误差线?

来自分类Dev

将闭合曲线拟合到一组离散点并找到它的周长

来自分类Dev

使用Python将指数修正的高斯曲线拟合到数据

来自分类Dev

使用pyMCMC / pyMC将非线性函数拟合到数据/观测

来自分类Dev

使用python将“多峰”对数正态分布拟合到数据

来自分类Dev

ValueError:尝试将sklearn的线性回归器拟合到熊猫数据框实例时使用matmul

来自分类Dev

使用Gekko和Python将数字ODE解决方案拟合到数据

Related 相关文章

  1. 1

    如何使用python将Weibull分布拟合到数据?

  2. 2

    使用gnuplot将椭圆拟合到数据

  3. 3

    如何使用傅立叶级数进行卷积

  4. 4

    如何使用scipy curve_fit将曲线拟合到此数据

  5. 5

    使用Python将系数拟合到数据和函数

  6. 6

    尝试使用scipy将trig函数拟合到数据

  7. 7

    使用python将erf函数拟合到数据

  8. 8

    如何从python中的离散数据中获得周期性曲线拟合?

  9. 9

    Matlab将HeatMap拟合到子图中

  10. 10

    Matlab将HeatMap拟合到子图中

  11. 11

    将数据拟合到hmm.MultinomialHMM

  12. 12

    将数据拟合到hmm.MultinomialHMM

  13. 13

    将数据拟合到威布尔分布

  14. 14

    将基矩阵的变化拟合到数据

  15. 15

    如何在 Matlab 中的离散序列数据(词干)上拟合曲线?

  16. 16

    如何在MATLAB中将指数曲线拟合到阻尼谐波振荡数据?

  17. 17

    将模型拟合到完整数据框后,如何从数据框预测单行

  18. 18

    如何计算离散傅立叶变换?

  19. 19

    如何将f(x)= sin(x)* sin(x)函数拟合到您的数据?

  20. 20

    如何将多项式回归线拟合到数据

  21. 21

    如何将多项式拟合到一些误差线数据中

  22. 22

    如何将圆柱模型拟合到分散的3D XYZ点数据?

  23. 23

    将数据拟合到高斯轮廓时如何在 lmfit 中包含误差线?

  24. 24

    将闭合曲线拟合到一组离散点并找到它的周长

  25. 25

    使用Python将指数修正的高斯曲线拟合到数据

  26. 26

    使用pyMCMC / pyMC将非线性函数拟合到数据/观测

  27. 27

    使用python将“多峰”对数正态分布拟合到数据

  28. 28

    ValueError:尝试将sklearn的线性回归器拟合到熊猫数据框实例时使用matmul

  29. 29

    使用Gekko和Python将数字ODE解决方案拟合到数据

热门标签

归档