转载一个实现分数傅立叶变换的matlab程序,作者信息在程序中有。
5#JGNxO )L#C1DP# function FF=frft_PXJ(N,alpha);
kvh}{@|- %matrix
Qg+0(odd % FF is the kernel matrix of fractional Fourier transform
't=\YFQ*v % \copyright: zjliu
nGA'\+zjL % Author's email:
zjliu2001@163.com G.K3'^_ Ts=sqrt(2*pi/N); t=-(N-1)/2:(N-1)/2; t=t'; t=t*Ts;
P[PBoRd2 variance=N/2/pi; HH=zeros(N); HH(:,1)=1; HH(:,2)=2*t;
jh.W$.Oq for k=3:N;
za7h.yK } HH(:,k)=HH(:,k-1).*t*2-2*(k-2)*HH(:,k-2);
HBYqqEO end
1E!0N`E HH(:,1)=1/sqrt(sqrt(variance))*HH(:,1).*exp(-t.*t/2);
D3yG@lIP3 for k=2:N;
p~M1}mE HH(:,k)=exp(-t.*t/2).*HH(:,k)/sqrt(2.^(k-1)*...
~*D)L'`2M factorial(k-1)*sqrt(variance));
]H7_bix end
#V[?puE@ if mod(N,2)==1;
.['@:}$1 W=0:N-1; k=exp(-i*alpha*W); D=diag(k);
wzB*M}3 else
W;*rSK|(Sc W=0:N-2; W=cat(2,W,[N]); k=exp(-i*alpha*W); D=diag(k);
eSXt"t end
o9M[Zr1@k FF=Ts*HH*D*HH'*2;
U7J0& % Reference:
Ay<'Z6` % by 平先军.一种新的分数阶傅立叶变换快速算法.电子学报.
i](,s. % 2001(3),Vol.29:406-408.