Hi Brian, Thank you for your reply! And really sorry for the confusion. Actually, I have two functions R(r) and T(r), which are 2D radially symmetric function, where r=sqrt(x^2+y^2). And now I estimated R(r) and T(r)(1D profile) from some other place. Then I want to compute the convolution of R and T. So the steps should be: 1. create 2D radially symmetric function from 1D profile 2. transform 2D radially symmetric function using 2D DFT and do element-wise multiplication in frequency domain 3. transform the result in the 2nd step back to 1D profile And the reason why I am using Hankel transform is that 1D DHT(with 0th-order of Bessel function of the first kind) is equal to the 2D DFT. So I don't have to transform the 1D profile to 2D radially symmetric function and again transform the 2D result back to 1D profile. And secondly, I noticed that for most of cases, the frequency coefficients of DHT are real numbers, but for DFT the coefficients maybe complex numbers. But I will use one formula in next step which need the frequency coefficients are real numbers. And now my problem is that I think I should multiply a coefficient before F_out, which is the inverse hankel transform of F(the element-wise multiplication of R and T in frequency domain). But I don't know whether this coefficient is still j_(\nu,M)) or some other value. Really thanks for any help!
在 2012年3月16日 上午1:03,Brian Hawkins <hawkins.br...@gmail.com>写道: > Qingling, > > I don't understand the role of the Hankel transform in your question. Why > not simply compute the convolution using DFTs? > > Brian > > On Thu, Mar 15, 2012 at 9:00 AM, <help-gsl-requ...@gnu.org> wrote: > > > > Date: Thu, 15 Mar 2012 17:12:18 +0800 > > From: ??? <sunac...@gmail.com> > > To: help-gsl@gnu.org > > Subject: [Help-gsl] A question about the Discrete Hankel Transform > > > > Hi all, > > Sorry for disturbing, this is the first time I am using mailing lists and > > don't know whether this is a proper place to ask questions. But I > > encountered some problem and really need some help. > > I am encontered some problem in calculating the inverse hankel transform > of > > functions. Let's say the function is R=[r1,r2,r3,r4], I used > gsl_dht_apply, > > in > > > > > http://www.gnu.org/software/gsl/manual/html_node/Discrete-Hankel-Transform-Functions.htmlto > > get the hankel transform, like this gsl_dht_apply(dht,R,R_out) and > > used > > gsl_dht_apply(dht,R_out,R_prime) to get the inverse transform. It > satisfies > > R=coef*R_prime, where coef=j_(\nu,M) according to the documentation of > > gsl_dht_apply function. > > And now my problem is that for two functions R=[r1,r2,r3,r4] and > > T=[t1,t2,t3,t4] in time domain, I want to compute the convolution of them > > according to the Convolution Theorem, saying that the convolution of two > > functions in time domain is the inverse Fourier Transform of two > functions > > element-wise multiplication in the frequency domain, and Hankel Transform > > of the 0-order Bessel function of first kind is equal to 2D fourier > > transform. Let's say R_out=[ir1,ir2,ir3,ir4] and T_out=[it1,it3,it3,it4] > > are the inverse hankel transform of R and T respectively. Let F be the > > element-wise multiplication of R_out and T_out, that is > > F=[ir1*it1,ir2*it2,ir3*it3,ir4*it4]. Then how can I get the original > > convolution result of R and T? Is it still R**T=coef*F_out or should I > > multiply some other coeficient?(** stands for convolution and F_out is > the > > inverse hankel transform of F, coef=j_(\nu,M)). > > Thanks for help! > > > > -- > > ??? > > Qingling Zhang > > Institute of CG & CAD > > School of software Tsinghua University > > Tsinghua University Beijing, P.R.China 100084 > > > -- 张庆岭 Qingling Zhang Institute of CG & CAD School of software Tsinghua University Tsinghua University Beijing, P.R.China 100084