第二楼:the fast fractional Fourier transform
程序参考下文中的算法
H.M. Ozaktas, M.A. Kutay, and G. Bozdagi. Digital computation of the fractional Fourier transform.
IEEE Trans. Sig. Proc., 44:2141--2150, 1996.
第三楼:分数阶fourior变换的源码,主要用来处理线性调频信号
第四楼:离散分数阶傅立叶变换,算法参考
C. Candan, M.A. Kutay, and H.M. Ozaktas. The discrete Fractional Fourier Transform.
IEEE Trans. Sig. Proc., 48:1329--1337, 2000
第五楼:the discrete fractional Fourier transform,算法参考:
S.-C. Pei, M.-H. Yeh, and C.-C. Tseng. Discrete fractional Fourier-transform based on orthogonal projections.
IEEE Trans. Sig. Proc., 47(5):1335--1348, 1999.
第六楼:a demonstration programfor the previous three routines
第七楼: the discrete fractional Cosine transform,算法参考:
S.-C. Pei, M.-H. Yeh. Discrete fractional Cosine and Sine transforms.
IEEE Trans. Sig. Proc., 49(6):1198--1207, 2001
第八楼:the discrete fractional Sine transform,算法参考:
S.-C. Pei, M.-H. Yeh. Discrete fractional Cosine and Sine transforms.
IEEE Trans. Sig. Proc., 49(6):1198--1207, 2001
第九楼:test for Disfrct.m,算法参考:
S.-C. Pei, M.-H. Yeh. Discrete fractional Cosine and Sine transforms.
IEEE Trans. Sig. Proc., 49(6):1198--1207, 2001
第十楼:the rescaling preprocessing for the frft routine,详细情况参考
H.M. Ozaktas, M.A. Kutay, and G. Bozdagi. Digital computation of the fractional Fourier transform.
IEEE Trans. Sig. Proc., 44:2141--2150, 1996.
[ 本帖最后由 simon21 于 2007-4-26 20:14 编辑 ]作者: simon21 时间: 2007-4-26 19:48
程序参考下文中的算法
H.M. Ozaktas, M.A. Kutay, and G. Bozdagi. Digital computation of the fractional Fourier transform.
IEEE Trans. Sig. Proc., 44:2141--2150, 1996.
function Faf = frft(f, a)
% The fast Fractional Fourier Transform
% input: f = samples of the signal
% a = fractional power
% output: Faf = fast Fractional Fourier transform
error(nargchk(2, 2, nargin));
f = f(:);
N = length(f);
shft = rem((0:N-1)+fix(N/2),N)+1;
sN = sqrt(N);
a = mod(a,4);
% do special cases
if (a==0), Faf = f; return; end;
if (a==2), Faf = flipud(f); return; end;
if (a==1), Faf(shft,1) = fft(f(shft))/sN; return; end
if (a==3), Faf(shft,1) = ifft(f(shft))*sN; return; end
% reduce to interval 0.5 < a < 1.5
if (a>2.0), a = a-2; f = flipud(f); end
if (a>1.5), a = a-1; f(shft,1) = fft(f(shft))/sN; end
if (a<0.5), a = a+1; f(shft,1) = ifft(f(shft))*sN; end
作者: simon21 时间: 2007-4-26 19:56 离散分数阶傅立叶变换- Separate score step Fourier transforms
算法参考
C. Candan, M.A. Kutay, and H.M. Ozaktas. The discrete Fractional Fourier Transform.
IEEE Trans. Sig. Proc., 48:1329--1337, 2000
function Fa=DFPei(f,a)
% Compute discrete fractional Fourier transform
% of order a of vector f according to Pei/Yeh/Tseng
%function E=dFRST(N,p) returns the NxN eigenvectors of the
%Fourier Sine transform matrix
global ES_saved pS_saved
if (length(ES_saved) ~= N | pS_saved ~= p),
E = make_ES(N,p);
ES_saved = E; pS_saved = p;
else
E = ES_saved;
end;
function E = make_ES(N,p)
% Returns sorted eigenvectors and eigenvalues of corresponding vectors
% Construct matrix H, use approx order p
N1=2*N+2;
d2 = [1 -2 1]; d_p = 1; s = 0; st = zeros(1,N1);
for k = 1:p/2,
d_p = conv(d2,d_p);
st([N1-k+1:N1,1:k+1]) = d_p; st(1) = 0;
temp = [1:k;1:k]; temp = temp(:)'./[1:2*k];
s = s + (-1)^(k-1)*prod(temp)*2*st;
end;
H = toeplitz(s(:),s)+diag(real(fft(s)));
% Construct transformation matrix V
r = N;
V = [zeros(N,1),flipud(eye(N)),zeros(N,1),-eye(N)]/sqrt(2);
% Compute eigenvectors
Od = V*H*V';
[vo,eo]=eig(Od);
% malab eig returns sorted eigenvalues
% if different routine gives unsorted eigvals, then sort first
% [d,inde] = sort(diag(eo));
% vo = vo(:,inde');
E = flipud(fliplr(vo));
复制代码
作者: simon21 时间: 2007-4-26 20:13
test for Disfrct.m
算法参考:
S.-C. Pei, M.-H. Yeh. Discrete fractional Cosine and Sine transforms.
IEEE Trans. Sig. Proc., 49(6):1198--1207, 2001
% Disfrft
function testfrct(x)
x=[-35:35];
y = zeros(size(x));
y(fix(length(x)/2)+1)=1;
subplot(321),
plot(x,y);
title('symmetric delta')
yf=Disfrft(y,5/6);
subplot(322),
plot(x,real(yf),'b',x,imag(yf),'r');
axis([-32,32,-0.2,0.2]);
title('FrFT for a = 5/6 of symmetric delta')
% Disfrct
x=[0:35];
y1(1:1)=1;
y1(2:36)=zeros(1,35);
subplot(323),
plot(x,y1)
axis([0,35,0,1])
title('half delta')
yc=Disfrct(y1,5/6);
subplot(324),
plot(x,real(yc),'b',x,imag(yc),'r');
axis([0,35,0-.2,0.2]);
title('FrCT for a = 5/6 of half delta')
% Disfrcst
x=[-35:0];
y1(1:36)=zeros(1,36);
y1(1:1)=-1;
subplot(325),
plot(x,y1)
axis([-35,0,-1,0])
title('half delta')
ys=Disfrst(y1,5/6);
subplot(326),
plot(x,real(ys),'b',x,imag(ys),'r');
axis([-35,0,-.2,0.2]);
title('FrST for a = 5/6 of half delta')
复制代码
作者: simon21 时间: 2007-4-26 20:14
the rescaling preprocessing for the frft routine
算法参考:
H.M. Ozaktas, M.A. Kutay, and G. Bozdagi. Digital computation of the fractional Fourier transform.
IEEE Trans. Sig. Proc., 44:2141--2150, 1996.