分步傅里叶算法的MATLAB程序实现
更新时间:2023-04-24 06:11:01 阅读量: 实用文档 文档下载
分步傅里叶算法的MATLAB程序实现举例
模型:
线性部分: 非线性部分:2
i U1 U z
2 x
2 nU 0
2
2
n U x,z d z
n x
2其中:
d z exp z 或d z exp z
2
U z
=
i U2 x
2
两边同时对x变量作傅里叶变换
~
U z
=
i2
i
2
~
U
两边积分
x h21
~
U=x hix
~
U
x
2
i
2
dz
即
~
ln
U x h/2 ~
=
iU x
2
i
2
*
h2
最后有
~
~
U x h/2 =U x exp i
2h i * 2
2
再对x变量作作傅里叶逆变换
U x h/2 =FFT-1
FFT i2h U x exp 2 i *
2
U z
inU
两边积分
x h1 hx
U
=
xx
indz
当h 0时
ln
U x h U x
inh
最后有
U x h U x exp inh
2
折射率部分: n U x,
两边同时对x变量作傅里叶变换
n=FFT
~~
2
nd 2
x
2
d z * i n
2
~
2
FFT
n= 2
1 d z
再对x变量作作傅里叶逆变换
FFT U2
-1
n=FFT 2
1 d z
MATLAB程序实现:
clear all
delta=1; x0=1;
%%------------------- n=2048; hx=0.06;
x=(-n/2:n/2-1)*hx; hw=2*pi/(n*hx);
w=fftshift((-n/2:n/2-1)*hw); %%-------------------
q=exp(-1*(x-x0).^2/2)+ exp(-1*(x+x0).^2/2); % q=sech(x);
u1(:,1)=(abs(q).^2)'; %------------------- L=500; nm=L*100; h=L/nm;
%------------------- for j=1:nm
j;
Dz=exp(delta*j*h)
D=exp(i*((i*w).^2/2)*h/2); qstep1=ifft(D.*fft(q));
n_index=ifft(fft(abs(qstep1).^2)./(Dz*w.^2+1)); N=exp(i*n_index*h); qstep2=N.*qstep1; q=ifft(D.*fft(qstep2)); u=abs(q);
r=floor(2+(j-1)/L); u1(:,r)=u'; end
z=0:L*h:L; figure(1)
mesh(x,z,u1'); view(0,90) figure(2)
plot(x,u1(:,end),'r',x,V,'b')
虚时间变换:
作虚时间变换:
z iz
2
得到
U z
1 U2 x
2
nU pR(x)U 0 n x
22
n x,z d
2
MATLAB程序实现:
线性部分:
U z
=1 U2 x
22
两边同时傅里叶变换
~
U z
=
12
i
2
~
U
两边积分
即
x h2x
1
~
~
U
U=
x hx
12
i
2
dz
ln
U x h/2 U x
~
~
=
12
i
2
*
h2
最后有
h 2 1
U x h/2 =U x exp i *
2 2
~
~
再作傅里叶逆变换
h 2 1-1
U x h/2 =FFT FFT Uxexpi * 2 2
非线性部分:
两边积分
U z1U
nU pR(x)U
当h 0时
x hx
=
x hx
n pR(x) dz
ln
U x h U x
n pR x *h
最后有
U x h U x exp n pR *h
clear all
Lh=0; p=1;
omega=1; Dz=0;
%%------------------- n=2048; hx=0.06;
x=(-n/2:n/2-1)*hx; hw=2*pi/(n*hx);
w=fftshift((-n/2:n/2-1)*hw); %%------------------- q=exp(-1*(x).^2/2); % q=sech(x);
intensity=2;
u1(:,1)=(abs(q).^2)'; %-------------------
V=p*(cos(omega*x)).^2.*(1+Lh*exp(-x.^8/128)); %-------------------- L=500; nm=L*100; h=L/nm;
%------------------- for j=1:nm j;
D=exp(((i*w).^2/2)*h/2); qstep1=ifft(D.*fft(q));
n_index=ifft(fft(abs(qstep1).^2)./(Dz*w.^2+1)); N=exp((V+n_index)*h); qstep2=N.*qstep1; q=ifft(D.*fft(qstep2));
q=sqrt(intensity)*q/sqrt(sum(abs(q).^2)*hx); u=abs(q);
r=floor(2+(j-1)/L); u1(:,r)=u'; end
kin=-sum((q(3:end)-q(1:end-2)).^2)/4/hx;
p_i=sum(2*q.^2.*(abs(q).^2+V+n_index))*hx; b=(kin+p_i)/2/intensity z=0:L*h:L; figure(1)
mesh(x,z,u1'); view(0,90) figure(2)
plot(x,u1(:,end),'r',x,V,'b')
正在阅读:
分步傅里叶算法的MATLAB程序实现04-24
2010年中考数学真题分类汇编(150套)专题05 分式06-12
免疫学复习习题05-25
C语言辅导资料03-06
日常安全教育记录 表408-30
认识实习作业01-25
关于团结友爱的作文(集合13篇精选范文)08-02
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 分步
- 算法
- 实现
- 程序
- MATLAB
- 傅里
- 心理学研究方法的重点
- 天津站站盾构接收专项方案114
- 2.沟通与人际关系技巧
- 各种密封圈产品性能详解
- 建筑工程费用组成与计算
- Modbus协议在智能信号变送器中的应用
- 2011质量工程师_中级_理论与实务笔记
- 行政领导学复习题小抄
- 壳牌和德士古煤气化排渣系统比较
- 重大决策征求意见制度
- 《雨林的毁灭——世界性灾难》正式版
- 大班社会活动教案《合理用钱》含反思
- 2006年全国小学生英语竞赛(NECPS)六年级组竞赛样题
- 高级程序员修炼之道-Android培训系列课程之Thread
- 免费留学360:低GPA成功逆袭美国名校被纽约州立大学宾汉姆顿大学
- 2014人教版英语八年级下册1单元词组
- 三年级下册《书法练习指导》教案
- 初二完形填空练习题1
- 新版pep三年级英语下册unit5B Let's talk
- 火力发电厂的安全预评价