周期函数与R的双离散积分:双积分函数包含线性伪像

时间:2018-11-24 15:29:30

标签: r numerical-methods numerical-integration

我需要对来自加速度计的信号进行积分,以便获得随时间变化的速度和位置。

我正在尝试对一些代码生成的加速度数据进行编码: 1)方波 2)锯齿 3)sin

获得的速度函数可以,问题在于获得积分速度的位置函数。在每种情况下(方波,锯齿形,正弦波),双重离散积分函数都显示一个线性项,该线性项与预期的振荡项重叠。

我已经用diffinv()函数和这个自定义函数编写了这种离散积分:

#function that, given a function sampled at some time values, calculates its primitive
calculatePrimitive<-function(f_t, time, initialValue){
        F_t<-0
        F_t[1]<-initialValue
        for (i in 2:length(f_t)) {
                F_t[i] <- F_t[i-1] + (( (f_t[i]+f_t[i-1])/2 )*(time[i]-time[i-1]) ) 
        }
        F_t
}

无论我使用哪种功能执行离散积分,结果都是相同的,如案例1)到3)所示,显示在附图中。

squarewave

sawtooth

sinusoid

我不明白为什么无论加速度数据是什么,将离散积分应用于通过离散积分本身获得的数据时,为什么会发生这种情况。

0 个答案:

没有答案