纸上的汉克尔变换仅适用于某些功能

计算科学 算法 傅里叶变换 信号处理
2021-12-28 02:45:05

我根据一篇论文实现了一种求解汉克尔变换的算法。我的问题是:它对于论文中建议的功能(作为测试功能)非常有效,对于某些其他测试功能来说效果很好,但是对于其他已知结果的功能,它只会产生垃圾(结果与预期相去甚远结果)。

这对我的实施意味着什么?

  • 我的实现是垃圾,我必须重做。
  • 我为函数选择了错误的数据输入,我必须更改它的参数
  • 算法很垃圾,只好再选一个
  • 我的编程很糟糕,我应该检查一下

对于那种情况,最好的,即最成功的方法是什么?

需要注意的是:该算法提供了一种转换方法()和一种反向转换()方法。比较时,它们是相等的。但是和理论上的预期函数不是。g=HT(f)f2=IHT(g)ff2g

我使用以下论文作为来源:https ://www.osapublishing.org/josaa/abstract.cfm?uri= josaa-21-1-53(不幸的是在付费墙后面),但以零阶计算汉克尔变换。作为语言,我在 python 和 C/C++ 中都实现了该方法。论文中的示例,还有等示例,但例如不会(产生振荡)。 f=1/r,HT(f)=1/kf=r,HT(f)=1/(k3)

这是它的实现之一(同样的限制):https ://se.mathworks.com/matlabcentral/fileexchange/15623-hankel-transform?requestedDomain=www.mathworks.com

1个回答

我在实施中的主要问题是我没有足够仔细地进行边界检查,导致要么是大制度,要么是太小制度。