wj15858120556
2011-05-23, 16:52
function ff=frftcld(f,ax);
ax=ax*pi/2;
N=length(f);
f=f(:);
x=([0:N-1]-[N-1]/2)/sqrt(N);
Ba=exp(i*pi*x.^2*csc(ax));
Bpa=exp(-i*pi*x.^2*tan(ax/2));
fa=f.*Bpa;
C1=fftshift(fft(fftshift(fa)));
C2=exp(-i*pi*x.^2*sin(ax));
CC=fftshift(ifft(fftshift(C1.*C2)));
ff=Bpa.*CC;
ff=ff*sqrt(1-i*cot(ax));
t=linspace(-4,4,129);
yt=zeros(size(t));
yt(abs(t)<=1)=1;
ff=frftcld(yt,0.7);
figure;subplot(131);
plot(t,yt,'k');axis square;ylim([-0.2,1.2]);
xlabel({'{\itt}','(a)'},'Fontsize',14,'Fontsize','Times New Roman');
title('signal','Fontsize',12);
set(gca,'Fontsize',12);
subplot(132);plot(t,abs(ff),'k');axis square;
title('amplitude','Fontsize',14);
xlabel({'{\itu}','(b)'},'Fontsize',14,'Fontsize','Times New Roman');
set(gca,'Fontsize',12);
以上是我编辑的一个一维分数傅里叶变换程序 调试的时候 函数部分一直不对 求高手帮忙
ax=ax*pi/2;
N=length(f);
f=f(:);
x=([0:N-1]-[N-1]/2)/sqrt(N);
Ba=exp(i*pi*x.^2*csc(ax));
Bpa=exp(-i*pi*x.^2*tan(ax/2));
fa=f.*Bpa;
C1=fftshift(fft(fftshift(fa)));
C2=exp(-i*pi*x.^2*sin(ax));
CC=fftshift(ifft(fftshift(C1.*C2)));
ff=Bpa.*CC;
ff=ff*sqrt(1-i*cot(ax));
t=linspace(-4,4,129);
yt=zeros(size(t));
yt(abs(t)<=1)=1;
ff=frftcld(yt,0.7);
figure;subplot(131);
plot(t,yt,'k');axis square;ylim([-0.2,1.2]);
xlabel({'{\itt}','(a)'},'Fontsize',14,'Fontsize','Times New Roman');
title('signal','Fontsize',12);
set(gca,'Fontsize',12);
subplot(132);plot(t,abs(ff),'k');axis square;
title('amplitude','Fontsize',14);
xlabel({'{\itu}','(b)'},'Fontsize',14,'Fontsize','Times New Roman');
set(gca,'Fontsize',12);
以上是我编辑的一个一维分数傅里叶变换程序 调试的时候 函数部分一直不对 求高手帮忙