资源简介
一份matlab代码模拟TM波传播,实测可用,附赠一篇外国博士论文,文中附录带模拟探地雷达电磁波场传递源代码,这份代码用C语言开发
代码片段和文件信息
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%TM波的传播
%今日完成 tm波的传播
clear all; clc;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 真空常数设定
epsz=1/(4*pi*9*10^9); %真空介电常数
mu=4*pi*10^(-7); %真空磁导率
Z=sqrt(mu/epsz); %真空阻抗
epsilon=1; %真空相对介电常数
sigma=0; %真空电导率
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 设定截止频率
v=3e8; %波速
f=0.3e9; %截止频率
lamda=v/f; %波长
k=2*pi/lamda; %波数
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 设定网格
IE=150; %x向网格数
JE=150; %y向网格数
ISteps=450; %迭代次数
ddx=lamda/20; %网格尺寸
dt=ddx/(2*v); %时间步大小
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 设定总场
ia=30;
ib=IE-ia; %x向总场边界位置
ja=30;
jb=JE-ja; %y向总场边界位置
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% PML层数
npml=10;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 设定脉冲源参数
spread=8; %脉冲宽度
t0=25; %脉冲高度
%x0=IE/2;
x0=11;
%y0=JE/2; %脉冲位置
%x0=50;
y0=50;
pulse=0; %记录脉冲大小
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 计算中的变量内存分配
u=zeros(IStepsIEJE);
u1=zeros(ISteps);
u2=zeros(IEJE);
dz=zeros(IEJE); %z向电场密度,归一化后的
ez=zeros(IEJE); %z向电场强度
em=zeros(IEJE); %%%%%%%%%%%%%
IE1=IE/3;
IE2=IE1+1;
IE3=IE/2;
IE4=IE3+1;
iz=zeros(IEJE); %迭代中间变量
hx=zeros(IEJE); %x向磁场变量
hy=zeros(IEJE); %y向磁场变量
ihx=zeros(IEJE); %x向hx计算的中间变量
ihy=zeros(IEJE); %y向hy计算的中间变量
for i=1:IE1;
for j=1:JE;
em(ij)=1;
end
end
for i=IE2:IE3;
for j=1:JE;
em(ij)=2;
end
end
for i=IE4:IE;
for j=1:JE;
em(ij)=3;
end
end
%% PML初始化设置
gi2=ones(1IE); %x向系数
gi3=ones(1IE);
fi1=zeros(1IE);
fi2=ones(1IE);
fi3=ones(1IE);
gj2=ones(1JE); %y向系数
gj3=ones(1JE);
fj1=zeros(1JE);
fj2=ones(1JE);
fj3=ones(1JE);
%% PML层中阻抗渐变设置
for i=1:npml+1;
xnum=npml-i+1;
xxn=xnum/npml;
xn=0.333*(xxn^3);
gi2(i)=1/(1+xn);
gi2(IE-i+1)=1/(1+xn);
gi3(i)=(1-xn)/(1+xn);
gi3(IE-i+1)=(1-xn)/(1+xn);
xxn=(xnum-0.5)/npml;
xn=0.25*(xxn^3);
fi1(i)=xn;
fi1(IE-i)=xn;
fi2(i)=1/(1+xn);
fi2(IE-i)=1/(1+xn);
fi3(i)=(1-xn)/(1+xn);
fi3(IE-i)=(1-xn)/(1+xn);
end;
for j=1:npml+1;
xnum=npml-j+1;
xxn=xnum/npml;
xn=0.33*(xxn^3);
gj2(j)=1/(1+xn);
gj2(JE-j+1)=1/(1+xn);
gj3(j)=(1-xn)/(1+xn);
gj3(JE-j+1)=(1-xn)/(1+xn);
xxn=(xnum-0.5)/npml;
xn=0.25*(xxn^3);
fj1(j)=xn;
fj1(JE-j)=xn;
fj2(j)=1/(1+xn);
fj2(JE-j)=1/(1+xn);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5618 2019-04-06 22:05 matlabfdtd\todaywork.m
文件 8876895 2018-10-30 08:21 matlabfdtd\外国博士正演.pdf
目录 0 2019-04-06 22:34 matlabfdtd
----------- --------- ---------- ----- ----
8882513 3
- 上一篇:基于C语言和SQL SERVER数据库实现的图书管理系统
- 下一篇:C#火车订票系统
相关资源
- MATLAB图论工具箱,matlabBGL
- 将MATLAB程序代码转换成C++程序代码
- VS2005中在mfc对话框中嵌入一个matlab的
- 基于MFCC和SVM的说话人性别识别matlab代
- C语言与MATLAB接口 编程与 李传军编着
- 先进PID控制MATLAB仿真
- matlab说话人识别
- Refprop9.0工质热物理性质计算程序
- svr-c语言和matlab代码.zip
- 模糊PID硕士期刊论文及源码.zip
- 关联规则fpgrowthc、c#和matlab算法附讲解
- 轴承表面质量缺陷识别与统计系统
- 先进pid控制及其matlab仿真64898
- 声纹识别MATLAB
- Matlab图像嵌入VC++界面的实现
- C++ 水果分类识别matlab代码,有详细的
- sedumi matlab凸优化工具箱
- matlab转C代码
- 发动机声音识别matlab仿真
- 伪彩色增强算法 适用于c、matlab编程
- 基于MATLAB图像处理课程设计
- matlab算法实现声纹识别,带界面
- 数字图像处理与机器视觉(Visual C++与
- MIL视频目标跟踪官方源码MATLAB与C++两
- 能对二值图像进行腐蚀、膨胀、开闭
- 精通MATLAB与C&C++混合程序设计第3版源
- mingw-w64-v7.0.0 (1).zip
- NSGA II代码实现集合包含、讲解及 网络
- Matlab安装MinGW-w64 C/C++ 编译器
- 《数字图像处理与机器视觉-VC++与Ma
评论
共有 条评论