свертка в R

Я попытался выполнить свертку в R напрямую, используя БПФ, а затем взяв обратное. Но из простого наблюдения кажется, что это неверно. Посмотрите на этот пример:

# DIRECTLY
> x2$xt
[1] 24.610 24.605 24.610 24.605 24.610
> h2$xt
[1] 0.003891051 0.003875910 0.003860829 0.003845806 0.003830842
> convolve(h2$xt,x2$xt)
[1] 0.4750436 0.4750438 0.4750435 0.4750437 0.4750435

# USING INVERSE FOURIER TRANSFORM
> f=fft(fft(h2$xt)*fft(x2$xt), inv=TRUE)
> Re(f)/length(f) 
[1] 0.4750438 0.4750435 0.4750437 0.4750435 0.4750436
>

Возьмем индекс 0. При 0 свертка должна быть просто последним значением x2 $ xt (24,610), умноженным на первое значение h2 $ xt (0,003891051), которое должно давать свертку с индексом 0 = 24,610 * 0,003891051 = 0,09575877, что сильно отличается от 0,4750436.

Я что-то делаю не так? Почему значения так отличаются от ожидаемых?

6
задан user236215 7 March 2011 в 16:02
поделиться