Hi Chris,
I am looking at the outputs that you provided, and they all look
incorrect to me. The convolution shouldn't be 0 for the first 5
elements, then element 6 = 2, element 7 = 0, element 8 = -1, element
9..11 = 0.
Comments? (btw, I am on vacation until Jan.4 so you might get an ooo
alert, but every couple of days I check my email.)
Cliff Sobchuk esn 361-8169, 403-262-4010 ext: 361-8169
Fax: 403-262-4010 ext: 361-8170
Core RF Support Engineer
"The author works for Telefonaktiebolaget L M Ericsson
("Ericsson"), who is solely responsible for this email and its contents.
All inquiries regarding this email should be addressed to Ericsson.
Nortel has provided the use of the nortel.com domain to Ericsson in
connection with this email solely for the purpose of connectivity and
Nortel Networks has no liability for the email or its contents. The web
site for Ericsson is www.ericsson.com."
-----Original Message-----
From: Chris Marshall [mailto:[email protected]]
Sent: December 19, 2009 12:33 PM
To: [email protected]
Cc: perldl
Subject: [Perldl] conv1d or corr1d
I would like to fix the fftconvolve() bug for the PDL-2.4.6
release:
http://sourceforge.net/tracker/?func=detail&aid=2630369&group_id=612&ati
d=100612
but I'm having problems since it appears that our PDL conv1d() routine
actually calculated the 1D correlation of the arguments.
First set up simple arguments:
perldl> $a = zeroes(11);
perldl> $a(5) .= 1;
perldl> p $a
[0 0 0 0 0 1 0 0 0 0 0]
perldl> $b = pdl(2,0,-1);
perldl> p $b
[2 0 -1]
The analytic convolution is calculated to be:
perldl> $ctrue = $a->zeroes;
perldl> $ctrue(4) .= 2;
perldl> $ctrue(6) .= -1;
perldl> p $ctrue
[0 0 0 0 2 0 -1 0 0 0 0]
Here are the various PDL convolution outputs:
perldl> p $c1d = conv1d $a, $b; # wrong!
[0 0 0 0 -1 0 2 0 0 0 0]
perldl> use PDL::Image2D
perldl> p $c2d = conv2d $a, $b; # right!
[
[ 0 0 0 0 2 0 -1 0 0 0 0]
]
perldl> use PDL::ImageND
perldl> p $cNd = convolveND $a, $b; # right!
[0 0 0 0 2 0 -1 0 0 0 0]
The good news is that the conv2d() and convolveND() routines appear to
be calculating a convolution so the only "broken"
routine appears to be the conv1d(). My plan is to add a test for the
bug, fix the code/docs, and update the Release_Notes
--Chris
_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl
_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl