分数阶傅里叶变换(FRFT)之数值计算入门概要

分数阶傅里叶变换入门概要

引言
本文主要简述了作为一名初学者在对分数阶傅里叶变换的摸索过程中的一些浅显的看法,本文仅针对分数阶傅里叶变换的离散计算部分,并没有对分数阶傅里叶变换中重要的思想方法应用进行讨论。


1.关于代码
目前网络关于分数阶傅里叶变换可靠的代码来源主要有一下几个:
(1)来源一:
M.A. Kutay. fracF: Fast computation of the fractional Fourier transform, 1996.
www.ee.bilkent.edu.tr/~haldun/fracF.m.
(2)来源二:
J. O’Neill. DiscreteTFDs:a collection of matlab files for time-frequency analysis, 1999.
ftp.mathworks.com/pub/contrib/v5/signal/DiscreteTFDs/.
(3)来源三
Adhemar Bultheel and H´ector E. Mart´ınez Sulbaran.frft:Computation of the Fractional Fourier Transform,2004.
www.cs.kuleuven.ac.be/~nalag/research/software/FRFT/.
(4)来源四:
A. Bultheel.frft2:A two-phase implementation of the fractional Fourier transform,2011.

这里比较推荐的是来源三及其网站。2004年的这篇文章《Computation of the Fractional Fourier Transform》对前面的(1)和(2)进行了详细的对比,分析了两个程序的优劣并进行了改进,(3)的代码较为简洁也比较实用,其对应网站上还有很多相关的代码。文末附有下载链接,供参考。


2.关于文献

  • 目前国内陶然教授研究得较为深入,其分别在04年和09年出版了《分数阶Fourier变换的原理与应用》、《分数阶傅里叶变换及其应用》,两本内容相似,参考其一即可。
  • L.B. Almeida. The fractional Fourier transform and time-frequency representation. IEEE Trans. Sig. Proc., 42:3084{3091, 1994.
    这篇文章是谈论分数阶傅里叶变换性质和基本思想的经典文章。文中详细介绍了分数阶傅里叶变化及其在信号处理中的应用。文中主要讨论的是连续的情况,文中讨论了分数阶傅里叶变换的性质,计算步骤,一些常见信号的分数阶傅里变换对,其与常见的WVD,短时傅里叶变换的关系。
  • H. Ozaktas, O. Arıkan, M. Kutay, G. Bozdagi, Digital computation of the fractional Fourier transform, IEEE Trans. Sig. Proc. 44 (9) (1996) 2141–2150.
    这篇文章是分数阶傅里叶变换数值计算的经典文章。文中给出了两种数值计算方法,但注意这里并不是真正的离散分数阶傅里叶变换,是用离散抽样近似连续的情况,然后用常见的 F F T 方法处理。文中值得注意的是讨论了量纲归一化的作用。网上流传的很多matlab程序均基于此或者在此基础上改进。
  • A. Bultheel, H. Mart´ınez Sulbaran, An introduction to the fractional Fourier transform and friends, Cubo Matematica Educacional 7 (2) (2005) 201–221.
    这篇文章写的内容涵盖比较广,分析了分数阶傅里叶变换中的一些基本内容,分析了其与其他变换的关系,另外值得注意的是这里提到了线性正则变换。
  • A. Bultheel, H. Mart´ınez Sulbaran, Computation of the fractional Fourier transform, Appl. Comput. Harmonic Anal. 16 (3) (2004) 182–202.
    这篇文章如前所述,算是对程序分析比较清楚的一篇,详细研究matlab实现可以看。
  • Bultheel A. A two-phase implementation of the fractional Fourier transform[J]. Journal of Non Crystalline Solids, 2011, 352(9-20):VII.
    这篇文章针对特殊结构,在上文之上进行了一些改进。
  • 赵兴浩, 邓兵, 陶然. 分数阶傅里叶变换数值计算中的量纲归一化[J]. 北京理工大学学报, 2005, 25(4):360-364.
    这篇文章给出了量纲归一化的两种实用的实现方法。

3.算法浅析
本文主要讨论来源三中给出的算法,首先梳理一下基础知识。
基本的连续型分数阶傅里叶变换形式如下

f α ( ξ ) = F α ( ξ ) = K α ( ξ , x ) f ( x ) d x

其中
K α ( ξ , x ) = C α exp { i π ( 2 x ξ sin α ( x 2 + ξ 2 ) cot α ) }

C α = 1 i cot α = exp { i [ π s g n ( sin α ) / 4 α / 2 ] } | sin α |

为了方便计算,上式经整理可得到如下形式:
f α ( ξ ) = C α T t ( ξ ) + T s ( ξ x ) [ T t ( x ) f ( x ) ] d x

其中
T t ( x ) = exp { i π t x 2 }   , t = tan ( α / 2 )   , s = csc ( α )

通过上式我们可以很明显的看出,要计算这样一个式子应该分为三步:
1.将 f ( x ) 与线性调频信号 T t 相乘
2.将上述结果再与线性调频信号 T s 进行卷积运算
3.与线性调频信号 T t 相乘

上述的讨论均是在连续域,这种连续的变换在实际中并无法计算,通常需要对连续信号抽样和插值以进行数值计算。
利用香农内插公式和数值积分运算可得,FRFT的离散计算公式如下:

f α ( k 2 Δ ) C α 2 Δ exp [ i π tan ( α / 2 ) ( k 2 Δ ) 2 ] l = N N 1 exp [ i π ( k l 2 Δ ) 2 csc α ] { exp { i π ( l 2 Δ ) 2 tan ( α / 2 ) f ( l 2 Δ ) } }

上式看起来可能比较繁杂,若按照前面的分步计算方法整理下会清晰许多,如下
f α ( x k ) x k C α k E t [ ξ k ] l = N N 1 E s [ x k l ] { E t [ x l ] f [ x l ] }

其中
E t [ ξ k ] = exp { i π t ξ k 2 }   , t = tan ( α / 2 )   , s = csc ( α )   , x k = ξ k = k / 2 Δ  

这里的 Δ 是量纲归一化后的时域或频域尺度。
这里的离散计算流程同上,但区别是由于离散处理中数据是有限长的要考虑到频域的展宽效果,因此需要先插值再抽取。另外为了加快计算,其中的卷积可以用FFT进行计算,可以利用FFRT的一些性质将 α 转换到[0.5,1.5)区间内进行计算,详细的细节讨论参见来源三的参考文献。


4.代码参考

分数阶傅里叶变换的四种可靠代码参考

猜你喜欢

转载自blog.csdn.net/qq_31436943/article/details/80395937