在matlab和gsl中使用修改过的bessel函数

时间:2013-11-17 19:08:44

标签: c matlab filter gsl bessel-functions

我正在尝试使用Matlab和cI制作音频信号的kaiser窗口,一直在查看Matlab和gnu科学库文档,以了解如何使用第一类和第0类的修改bessel函数,但我仍然有一些问题:

  • 似乎GSL不接受0阶bessel函数,我不明白这一点的文档。
  • 我不知道我是否应该使用常规或不规则的功能。他们有什么不同? Matlab没有那个。
  • 这是过滤信号的最快方法:时域还是频域?
  • 如何过滤频域上的信号?

2 个答案:

答案 0 :(得分:0)

我只回答最后三点。 (警告:我是法国人,我的英语不是很好......)

1)当您考虑信号的傅立叶变换乘以特定窗口时,在光谱域中,您可以通过窗口的光谱对信号的原始频谱进行卷积。在一个理想的数学世界中,你会喜欢有一个狄拉克,因为它的卷积只会改变信号。但是要获得频率上的狄拉克,你需要一个时域中的周期信号,这个信号不是在紧凑的(即有限的,如你的声音记录)支持上定义的。这太糟糕了,因为有一个定理(Paley-Wiener的推论)表明如果你的时域支持是紧凑的,你的频域支持不受限制,傅立叶变换的减少行为随着信号的规律性而增加(即我们案例中的窗口)。那很好 !我们必须选择的是一个很好的常规(平滑?)窗口。不幸的是,为了得到一个非常平滑的窗口,我们必须缩小它(存在宽平滑的窗口,但是它们的派生函数还有其他缺点......它就像过大的常数一样吸引算法的复杂性)并且它的频谱会更宽(对于同样的理由在定理中引用)。但是你(和奥巴马)相信妥协以面对(庞特里亚金)的二元性,不是吗?高斯是一个很好的折衷,因为它的傅立叶变换也是高斯变换(随机变量的总和?卷积?+,复平面中的x-态射......每个事物都是相关联的,但它是一个太长的非线性故事要讲这里)。因此很多窗口往往看起来像高斯。

以下是我的语音处理老师偷来的一堆窗户和光谱:

enter image description here

enter image description here

2)这是一个纯粹的数学二元性,所以它取决于你的意思。将Sobel滤波器应用于频域是否有意义? (事实上​​它可能......)

3)同样,这取决于过滤器的含义。

答案 1 :(得分:0)

我想我可以回答(1)和(2):

(1)您可以通过查阅Abramowitz和Stegun,Gradshteyn和Ryzhik等数学函数手册或数学函数数字图书馆(http://dlmf.nist.gov/来自己编写零序Bessel函数(球形或非球形)。 )。

(2)通过规则和不规则,我认为你的意思是定期或修改贝塞尔函数。贝塞尔函数是圆柱坐标系中三维热方程的解。您的边界条件决定了您对常规或修改贝塞尔函数的使用。关于常规和修改的贝塞尔函数的讨论,我建议阅读Carslaw和Jaeger的“固体热传导”和M. Necati Ozisik的热传导边界值问题。你也可以尝试John David Jackson的古典电动力学的难题。

常规和修改的贝塞尔函数有何不同?常规的J贝塞尔函数本质上有点振荡(如果你问我的话,请看一本像Jahnke,Emde和Losch这样的老书,手绘贝塞尔函数图,丢失的艺术形式),而I和K是单值的。 / p>

我对(3)和(4)的帮助不大,因为我不是一名电气工程师(虽然我想了解更多!)。