This depends a lot on the input sizes. For full length convolutions, the 
fft approach should be more accurate because of less additions. For very 
short kernels this does not hold anymore. But in practice these kinds of 
errors are mostly negligable.


Am Dienstag, 4. März 2014 16:42:33 UTC+1 schrieb Miguel Bazdresch:
>
> I was worried about getting "a little noise in the result", so I ran a 
> quick test in Matlab and Julia, and got almost exactly the same error. This 
> is the Matlab code:
>
> Ts=0.01;
> t=-10:Ts:10;
> s=sinc(t);
> sc=Ts*conv(s,s);
> sc=sc(1000:3000);
> sum((sc-s).*(sc-s))
>
> ans =
>
>     0.3695
>
> So, at least for accuracy, julia's conv implementation seems to be no 
> worse than Matlab's.
>
>
> On Tue, Mar 4, 2014 at 7:19 AM, Toivo Henningsson 
> <toiv...@gmail.com<javascript:>
> > wrote:
>
>> Yes, with sufficient padding, you can compute a linear convolution (of 
>> finite length vectors) exactly using a circular convolution. The FFT might 
>> introduce a little noise in the result, but that is all.
>>
>>
>> On Tuesday, 4 March 2014 13:12:48 UTC+1, Oliver Lylloff wrote:
>>>
>>> Well ok,
>>>
>>> Maybe I misunderstood the whole thing then but since fft assumes 
>>> periodic input then I don't see how it can be a linear convolution. I guess 
>>> Base.conv2 probably uses zero-padding to reduce wrap-around but in theory 
>>> it would still be a circular convolution. I'll read up on it :)
>>>
>>> Best, 
>>> Oliver
>>>
>>> Den tirsdag den 4. marts 2014 13.07.20 UTC+1 skrev Andreas Noack Jensen:
>>>>
>>>> Both conv and conv2 are linear convolutions but the implementations use 
>>>> the fft. Maybe the documentation could be more clear on that.
>>>>
>>>>
>>>> 2014-03-04 13:01 GMT+01:00 Oliver Lylloff <oliver...@gmail.com>:
>>>>
>>>>> Thanks Tim.
>>>>>
>>>>> Can't believe I missed that - been working with Images.jl all day. 
>>>>> Nice job by the way, very useful.
>>>>>
>>>>> Best,
>>>>> Oliver
>>>>>
>>>>> Den tirsdag den 4. marts 2014 12.48.01 UTC+1 skrev Tim Holy:
>>>>>
>>>>>> Images.jl's imfilter might be what you want. 
>>>>>> --Tim 
>>>>>>
>>>>>> On Tuesday, March 04, 2014 03:38:15 AM Oliver Lylloff wrote: 
>>>>>> > Hello all, 
>>>>>> > 
>>>>>> > Is anyone aware of a linear convolution implementation? 
>>>>>> > The Base.conv and Base.conv2 functions are implemented with fft 
>>>>>> which makes 
>>>>>> > them circular convolution functions (as far as I know). 
>>>>>> > 
>>>>>> > I'm looking for something alike Matlabs conv2 or SciPys 
>>>>>> signal.convolve2d. 
>>>>>> > 
>>>>>> > Should be straightforward to implement though. 
>>>>>> > 
>>>>>> > Best, 
>>>>>> > Oliver 
>>>>>>
>>>>>
>>>>
>>>>
>>>> -- 
>>>> Med venlig hilsen
>>>>
>>>> Andreas Noack Jensen
>>>>  
>>>
>

Reply via email to