离散分数傅里叶变换(英语:Discrete Fractional Fourier Transform)是用来解决数字序列分数傅里叶变换的计算问题,方法是利用它们的特征函数展开的表达来实现离散算法,而离散分数傅里叶变换的特征函数是埃尔米特多项式与高斯函数的乘积,这样的特征函数同时也是傅里叶变换的特征函数。利用离散傅里叶变换的结果,可以建立周期分数傅里叶变换的离散算法。
在建立离散分数傅里叶变换的算法之前,必须对离散傅里叶变换(Discrete Fourier Transform)有一定的理论认识。
对于一般的傅里叶变换具有4周期性质,也就是对任何信号连续做4次傅里叶变换就会回到它自己。然而离散傅里叶变换也有这样的性质,所以以下先讨论离散傅里叶变换的4周期性质。
对于一串数字序列信号
,定义它的离散傅里叶变换是:
![{\displaystyle y_{m}={\frac {1}{\sqrt {N}}}\sum _{n=0}^{N-1}x_{n}e^{-{\frac {2\pi mni}{N}}},m=0,1,...,N-1}](https://wikimedia.org/api/rest_v1/media/math/render/svg/62d046e63d799177a9f175c5b97ede5a778e8581)
引入矩阵符号
![{\displaystyle X={\begin{bmatrix}x_{0}\\x_{1}\\\vdots \\x_{N-1}\end{bmatrix}}\quad Y={\begin{bmatrix}y_{0}\\y_{1}\\\vdots \\y_{N-1}\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/03448c88ec71b0aacad8de8d42ba20d4f52e74b0)
![{\displaystyle E={\frac {1}{\sqrt {N}}}{\begin{bmatrix}W^{0\times 0}&W^{0\times 1}&\vdots &W^{0\times N-1}\\W^{1\times 0}&W^{1\times 1}&\vdots &W^{1\times N-1}\\\vdots &\vdots &\ddots &\vdots \\W^{N-1\times 0}&W^{N-1\times 1}&\vdots &W^{N-1\times N-1}\\\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b45e4ac75c6bad4c2f6b48130597a7d656e672ee)
其中
,现在可以把离散傅里叶变换写成:
由上面的分析可知一串长度为N的数字序列信号
,其离散傅里叶变换在N维向量空间相当于一个线性变换,也就是矩阵E,矩阵E称作离散傅里叶变换的矩阵。又因为
![{\displaystyle {\frac {1}{N}}\sum _{l=0}^{N-1}W^{l\times m}\times {\overline {W}}^{l\times n}={\frac {1}{N}}\sum _{l=0}^{N-1}e^{-{\frac {2\pi li}{N}}(m-n)}={\begin{cases}1\quad m=n\\0\quad m\neq n\end{cases}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1fd919c46ccbdcd0d022f7e53ec8e2c609615939)
所以
离散傅里叶变换的线性变换是正交变换。
利用离散傅里叶变换的矩阵,可以证明4周期性质。因为
![{\displaystyle {\frac {1}{N}}\sum _{l=0}^{N-1}W^{l\times m}\times {\overline {W}}^{l\times n}={\frac {1}{N}}\sum _{l=0}^{N-1}e^{-{\frac {2\pi li}{N}}(m-n)}={\begin{cases}1\quad \mod (m+n)=0\\0\quad \mod (m+n)\neq 0\end{cases}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/98f236a5fa8881f8a7bdfa108dcdfe75ea2086f1)
而且
,所以
![{\displaystyle E^{2}={\begin{bmatrix}1&0&\vdots &0\\0&0&\vdots &1\\\vdots &\vdots &\ddots &\vdots \\0&1&\vdots &0\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/bbf00face1d3f1477814b9b1ff951ab2a919776e)
由上可知信号
做两次离散傅里叶变换后会得到
,除了第一个数字不动其余顺序皆颠倒,这意味着发生了时间反射。现在用矩阵来表达连续两次的离散傅里叶变换:
![{\displaystyle Z=E^{2}X={\begin{bmatrix}1&0&\vdots &0\\0&0&\vdots &1\\\vdots &\vdots &\ddots &\vdots \\0&1&\vdots &0\end{bmatrix}}{\begin{bmatrix}x_{0}\\x_{1}\\x_{2}\\\vdots \\x_{N-1}\end{bmatrix}}={\begin{bmatrix}x_{0}\\x_{N-1}\\x_{N-2}\\\vdots \\x_{1}\\\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/bc96a45b9e733b290d471785afb5e1b6e28f99ae)
再来计算连续三次的变换:
![{\displaystyle ={\frac {1}{\sqrt {N}}}{\begin{bmatrix}W^{0\times 0}&W^{0\times 1}&\vdots &W^{0\times N-1}\\W^{N-1\times 0}&W^{N-1\times 1}&\vdots &W^{N-1\times N-1}\\\vdots &\vdots &\ddots &\vdots \\W^{1\times 0}&W^{1\times 1}&\vdots &W^{1\times N-1}\\\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6f81bcacbdcbe32b7478612f75da1204c8fb116e)
最后计算连续四次的变换:
![{\displaystyle E^{4}=E^{2}\times E^{2}={\begin{bmatrix}1&0&\vdots &0\\0&0&\vdots &1\\\vdots &\vdots &\ddots &\vdots \\0&1&\vdots &0\end{bmatrix}}{\begin{bmatrix}1&0&\vdots &0\\0&0&\vdots &1\\\vdots &\vdots &\ddots &\vdots \\0&1&\vdots &0\end{bmatrix}}={\begin{bmatrix}1&0&\vdots &0\\0&1&\vdots &0\\\vdots &\vdots &\ddots &\vdots \\0&0&\vdots &1\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/05307c3ef947dd032fc31feee5a760b85881e160)
由上式可知,离散傅里叶变换连续做4次一定会让信号返回它自己,这就是离散傅里叶变换4周期性质的证明。
为了得到离散傅里叶变换的周期性定理,必须理解它的运算性质,因此现在用另外一个观点去说明4周期性质。
![{\displaystyle U=E^{3}X=E\times E^{2}X}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e8c87c41ce9e3913eaa5654f57f345bea815dc7c)
![{\displaystyle ={\begin{bmatrix}W^{0\times 0}&W^{0\times 1}&\vdots &W^{0\times N-1}\\W^{1\times 0}&W^{1\times 1}&\vdots &W^{1\times N-1}\\\vdots &\vdots &\ddots &\vdots \\W^{N-1\times 0}&W^{N-1\times 1}&\vdots &W^{N-1\times N-1}\\\end{bmatrix}}{\begin{bmatrix}1&0&\vdots &0\\0&0&\vdots &1\\\vdots &\vdots &\ddots &\vdots \\0&1&\vdots &0\end{bmatrix}}{\begin{bmatrix}x_{0}\\x_{1}\\\vdots \\x_{N-1}\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/aabb1efe7518cc9c4932d036f774bfd26157631f)
![{\displaystyle ={\begin{bmatrix}W^{0\times 0}&W^{0\times 1}&\vdots &W^{0\times N-1}\\W^{1\times 0}&W^{1\times 1}&\vdots &W^{1\times N-1}\\\vdots &\vdots &\ddots &\vdots \\W^{N-1\times 0}&W^{N-1\times 1}&\vdots &W^{N-1\times N-1}\\\end{bmatrix}}{\begin{bmatrix}x_{0}\\x_{N-1}\\x_{N-2}\\\vdots \\x_{1}\\\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/50ea4e214c0420f3b481194ef879e975522d6287)
![{\displaystyle ={\begin{bmatrix}1&0&\vdots &0\\0&0&\vdots &1\\\vdots &\vdots &\ddots &\vdots \\0&1&\vdots &0\end{bmatrix}}{\begin{bmatrix}W^{0\times 0}&W^{0\times 1}&\vdots &W^{0\times N-1}\\W^{1\times 0}&W^{1\times 1}&\vdots &W^{1\times N-1}\\\vdots &\vdots &\ddots &\vdots \\W^{N-1\times 0}&W^{N-1\times 1}&\vdots &W^{N-1\times N-1}\\\end{bmatrix}}{\begin{bmatrix}x_{0}\\x_{1}\\\vdots \\x_{N-1}\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/88e0548fc2437206fd3d00b9b398914aaecd3c9f)
![{\displaystyle ={\begin{bmatrix}y_{0}\\y_{N-1}\\y_{N-2}\\\vdots \\y_{1}\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/81b2974dbf2de94fa3aa08bd2f258992ec3b900c)
上面的分析可以理解为原始信号作三次离散傅里叶变换其成分还是跟原本信号相同,只是顺序上做了调整,也就是从第二个信号至最后一个信号作了颠倒的顺序。又或者可以这样理解,原本的信号经过交换顺序而得到
,其离散傅里叶变换就是
,若再做一次离散傅里叶变换,结果就是将
的下标按照前面规则作了交换,连续四次的离散傅里叶变换其结果应该为
,由此可知离散傅里叶变换具有4周期的性质。
因此,
,即任何数字序列作四次离散傅里叶变换就会返回它自己,在矩阵乘法之下,集合
会构成一个四阶循环群。
离散傅里叶变换的整数次重复运算等价于一个4阶循环矩阵群
。
利用前述离散傅里叶变换的计算方法可以得到离散分数傅里叶变换的计算方法,因此接下来的分析就先从离散傅里叶变换出发。
根据离散傅里叶变换的矩阵形式,定义符号:
![{\displaystyle X^{(l)}={\begin{bmatrix}x_{0}^{(l)}\\x_{1}^{(l)}\\\vdots \\x_{N-1}^{(l)}\end{bmatrix}},l=0,1,2,3}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7535491ee1265ba72133b5900900cba95583aa56)
其递回关系为:
![{\displaystyle X^{(l+1)}=EX^{(l)}=E^{l+1}X^{(0)},l=0,1,2,3}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6b59d364aa95d91f2863e42e7c7b39bdde836d68)
当
时,对应的是原始数字序列信号;当
时,对应的昰原始数字序列信号的离散傅里叶变换。现在定义幂次a的离散分数傅里叶变换为:
![{\displaystyle X^{(a)}=\sum _{l=0}^{3}A_{l}(a)X^{(l)}=(\sum _{l=0}^{3}A_{l}(a)E^{l})X^{(0)}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/fc27e296708670bb3c4f0061bff5d128a1bacf70)
上式中的
是a的连续函数。引入矩阵符号为:
![{\displaystyle E^{a}=\sum _{l=0}^{3}A_{l}(a)E^{l}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6d7938046b8a49b938fb8b6841ae5b9d467415d6)
称作矩阵E的a次幂,因此幂次a的离散分数傅里叶变换可以写成:
![{\displaystyle X^{(a)}=E^{a}X^{(0)}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/fe9ea9d40eda9ea52024f22a20ba13a1de4bb491)
其中
是只与a有关的系数,它使得
全体生成的矩阵族
满足以下公理。
- 连续性公理:
为连续的;
- 边界性公理:
是离散傅里叶变换连续作用a次的结果;
- 周期性公理:
;
- 可加性公理:
。
由以上可得连续函数
的方程组:
![{\displaystyle {\begin{cases}A_{0}(a+b)=A_{0}(a)A_{0}(b)+A_{1}(a)A_{3}(b)+A_{2}(a)A_{2}(b)+A_{3}(a)A_{1}(b)\\A_{1}(a+b)=A_{0}(a)A_{1}(b)+A_{1}(a)A_{0}(b)+A_{2}(a)A_{3}(b)+A_{3}(a)A_{2}(b)\\A_{2}(a+b)=A_{0}(a)A_{2}(b)+A_{1}(a)A_{1}(b)+A_{2}(a)A_{0}(b)+A_{3}(a)A_{3}(b)\\A_{3}(a+b)=A_{0}(a)A_{3}(b)+A_{1}(a)A_{2}(b)+A_{2}(a)A_{1}(b)+A_{3}(a)A_{0}(b)\end{cases}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c38abce03900c1f5e625a330dc5d2bc3d93abc50)
为了解得这个方程组的解,先做变数变换:
![{\displaystyle {\begin{bmatrix}B_{0}(a)\\B_{1}(a)\\B_{2}(a)\\B_{3}(a)\end{bmatrix}}={\begin{bmatrix}1&i&1&1\\1&-i&-1&i\\1&1&1&-1\\1&i&-1&-i\end{bmatrix}}{\begin{bmatrix}A_{0}(a)\\A_{1}(a)\\A_{2}(a)\\A_{3}(a)\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/976b291170e1b4afce4551b9d8f6b7cd9e4d6546)
则方程组可表达为:
同时又由边界性公理可得:
因此
的边界条件就是:
此外周期性条件为:
考虑了这些条件后方程组
有唯一解:
![{\displaystyle B_{l}(a)=e^{-{\frac {2\pi lai}{4}}},j=0,1,2,3}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b154a31ee921cac319c80594ae886d88d518fcf2)
最后再根据
![{\displaystyle {\begin{bmatrix}B_{0}(a)\\B_{1}(a)\\B_{2}(a)\\B_{3}(a)\end{bmatrix}}={\begin{bmatrix}1&i&1&1\\1&-i&-1&i\\1&1&1&-1\\1&i&-1&-i\end{bmatrix}}{\begin{bmatrix}A_{0}(a)\\A_{1}(a)\\A_{2}(a)\\A_{3}(a)\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/976b291170e1b4afce4551b9d8f6b7cd9e4d6546)
得到方程组的通解为:
![{\displaystyle A_{l}(a)={\frac {1}{4}}{\frac {1-e^{-2\pi (a-l)i}}{1-e^{-{\frac {2\pi (a-l)i}{4}}}}}=\cos({\frac {(a-l)\pi }{4}})\cos({\frac {2(a-l)\pi }{4}})e^{-{\frac {3i(a-l)\pi }{4}}},l=0,1,2,3}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6194df2b5664b11b558a49feec9822fa046f8cc9)
所以满足前述4个公理的矩阵E之a次幂定义为:
![{\displaystyle E^{a}=\sum _{l=0}^{3}\cos({\frac {(a-l)\pi }{4}})\cos({\frac {2(a-l)\pi }{4}})e^{-{\frac {3i(a-l)\pi }{4}}}E^{l}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/346111a3f7062f721ba7ce674b9dd6997e0a1af8)
上式得到了
的离散形式并把它带入
最后得到了离散分数傅里叶变换的计算方法:
![{\displaystyle X^{(a)}=(\sum _{l=0}^{3}\cos({\frac {(a-l)\pi }{4}})\cos({\frac {2(a-l)\pi }{4}})e^{-{\frac {3i(a-l)\pi }{4}}}E^{l})X^{(0)}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/8b83b742dc69f1305e8a9ba0c2bd3b1d7c0a575d)
若去对照分数傅里叶变换的形式,上式的计算方法可以说是C.C.Shih的分数傅里叶变换的离散算法。