Filter löschen
Filter löschen

i tried to fix the problem i didnt know how :( please help

4 Ansichten (letzte 30 Tage)
abed
abed am 4 Dez. 2013
Bearbeitet: Friedrich am 4 Dez. 2013
clear all;
distance=15;
beta2=1;
N=1;
mshape=input('m=0 for seech, m>0 for super-gaussian= ');
chirp0=0;
nt=1024;tmax=32;
stepnum=round(20*distance*N.^2);
deltaz=distance/stepnum;
dtau=(2*tmax)/nt;
tau=(-nt/2:nt/2-1)*dtau;
omega=(pi/tmax)*(0:nt/2-1) (-nt/2:-1);
if mshape==0
uu=sech(tau).*exp(-0.5i*chirp0*tau.^2);
else
uu=exp(-0.5*(1+1i*chirp0).*tau.^(2*mshape));
end
%%%%%
temp=fftshift(ifft(uu)).*(nt*dtau)/sqrt(2*pi);
figure;
subplot(2,1,1);
plot(tau,abs(uu).^2,'--k');hold on;
axis([-5 5 0 inf]);
xlabel('time');
ylabel('power');
title('input and output pulse shape and spectrum');
subplot(2,1,2);
plot(fftshift(omega)/(2*pi),abs(temp).^2,'--k');hold on;
axis([-.5 .5 0 inf]);
xlabel('frequency');
ylabel('power');
%%%%%
dispersion=exp(0.5*1i*beta2*omega.^2*delta2);
hhz=1i*N^2*deltaz;
%%%%%
temp=uu.*exp(abs(uu).^2.*hhz/2);
for n=1:stepnum
ftemp=ifft(temp).*dispersion;
uu=fft(f_temp);
temp=uu.*exp(abs(uu).^2.*hhz);
end
uu=temp.*exp(-abs(uu).^2.*hhz);
temp=fftshift(ifft(uu)).*(nt*dtau)/sqrt(2*pi);
subplot(2,1,1)
plot(tau,abs(uu).^2,'-k')
subplot(2,1,2)
plot(fftshift(omega)/(2*pi),abs(temp).^2,'-k')
  2 Kommentare
dpb
dpb am 4 Dez. 2013
And format the code--insert a couple of blanks before the first line of code and observe the preview window...if it isn't legible yet, read the Help...

Melden Sie sich an, um zu kommentieren.

Antworten (0)

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by