Вероятно, вы должны узнать, что такое свертка. Начните с самого простого. ie свертка двух сигналов. Я просто опишу детали. Но вы можете искать WHY онлайн.
Так что filter(1:5,c(f1,f2,f3),method="convolution")
, по умолчанию используется 2 стороны. Это фильтр, по которому фильтр будет отцентрирован, и если это невозможно, то более крупный конец будет в данных. Вычисление начинается там, где центр фильтра совпадает с первым значением сигнала. Напомним, что поскольку фильтр проходит по сигналу, он должен быть меньше или равен длине сигнала. Вот пример.
если фильтр, например, c(1,2,3)
, тогда мы будем центрировать его на 2.
, таким образом, чтобы свести c(1,2,3,4,5)
с c(1,2,3)
, мы сначала reverse
затем фильтр rollapply
это по всему signal
:
шаг 1
1 2 3 4 5
3 2 1
We see that 3 is not multiplied by anything! Thus `3*NA + 2*1+1*2 = NA`
Затем мы перемещаем фильтр на один шаг и делаем математику снова
1 2 3 4 5
3 2 1
Here all the values are present: 3*1+2*2+1*3 = 10
Третий шаг:
1 2 3 4 5
3 2 1
3*2+2*3+1*4 = 16
Мы повторяем это до тех пор, пока центрированное значение ie 2 не совпадет с последним значением.
Если вы выберете side = 1
, то он не будет центрироваться, а будет начинаться с совпадения последнего значения фильтра с первым значением сигнала и конечного значения sh путем совпадения последнего значения фильтра с последнее значение сигнала.