24小时热门版块排行榜    

查看: 566  |  回复: 1

jiasen1980

金虫 (正式写手)

[交流] 【求助】那位大侠帮看下哪里出问题了啊

Po;%输入光强,单位W
alpha;%光纤损耗值,单位dB/km
gamma;%光纤非线性参数
to;%初始脉冲宽度,单位秒
C;%第一次计算输入的啁啾参数
b2;%波数的倒数
cputime=0;
tic;
ln=1;
i=sqrt(1);
pi=3.1415926535;
alph=alpha/(4.343);
Ld=(to^2)/(abs(b2)); %扩散长度,单位是m
Ao=sqrt(Po); %光振幅
tau =4096e12:
1e12:
4095e12;
dt=1e12;
h=1000;%步长
for ii=0.1:0.1:1.5 %不同的光纤长度不同,这个量可变
z=ii*Ld;
u=Ao*exp(((
1+i*(C))/
2)*(tau/to).^2);
figure(1)
plot(abs(u),'r');
title('Input Pulse'); xlabel('Time'); ylabel('Amplitude');
grid on;
hold on;
l=max(size(u));
fwhm1=find(abs(u)>abs(max(u)/2));
fwhm1=length(fwhm1);
dw=1/l/dt*2*pi;
w=(1*
l/2:1:l/21)*
dw;
u=fftshift(u); %零延迟对中的谱
w=fftshift(w); %零延迟对中的谱
spectrum=fft(fftshift(u)); %快速离散傅立叶变换
for jj=h:h:z
spectrum=spectrum.*exp(g1) ; %g1为线性算符e的指数表达式
f=ifft(spectrum); %快速离散反傅立叶变换
f=f.*exp(g2);%g2为非线性算符e的指数表达式
spectrum=fft(f); %快速离散傅立叶变换
spectrum=spectrum.*exp(g1) ;
end
f=ifft(spectrum); %快速离散反傅立叶变换
op_pulse(ln,=abs(f);%保存在所有间隔点上的输出脉冲
fwhm=find(abs(f)>abs(max(f)/2));
fwhm=length(fwhm);
ratio=fwhm/fwhm1;
pbratio(ln)=ratio;
dd=atand((abs(imag(f)))/(abs(real(f))));
phadisp(ln)=dd;%保存脉冲相位
ln=ln+1;
end
toc;
cputime=toc;
figure(2);
mesh(op_pulse(1:1:ln1,
title('Pulse Evolution');
xlabel('Time'); ylabel('distance'); zlabel('amplitude');
figure(3)
plot(pbratio(1:1:ln1),'
k');
xlabel('Number of steps');
ylabel('Pulse broadening ratio');
grid on;
hold on;
figure(5)
plot(phadisp(1:1:ln1),'
k');
xlabel('distance travelled');
ylabel('phase change');
grid on;
hold on;
disp('CPU time:'), disp(cputime);
??? Undefined function or variable 'Po'
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jiasen1980

金虫 (正式写手)

谢谢 大家  问题已经解决, 我是从一个论文上看到的这个代码, 后来发现这个论文也是抄别人的, 我找到了原始的代码, 是可以运行的.
请斑竹锁帖吧
2楼2010-09-09 14:16:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 jiasen1980 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见