基于Matlab绘制二维光子晶体在恒定频率下的光子带

简介: 基于Matlab绘制二维光子晶体在恒定频率下的光子带

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信      无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机

⛄ 内容介绍

光子晶体具有光子带隙特性的电介质结构,是一种能够操控光的人造物质.具有简便,廉价,高速,大容量和强抗干扰性能的更多光子晶体产品将在各个领域发挥重要作用.

⛄ 部分代码

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%% this program calculates and plots the wave-vector diagram (i.e. photonic bands at constant frequency)

%%% for a 2D photonic crystal consisting of cylinders with circular cross-section and

%%% infinite height, arranged in a triangular lattice; oblique propagation is implicit, so

%%% the polarization states cannot be separated in E-pol and H-pol; 'omega'is taken as input;

%%% Fourier coefficients for the expansion of dielectric constant are calculated analytically;

%%% the materials considered here are dielectric and dispersionless;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%% the package contains the following programs:

%%%     pwem2Db.m - main program

%%%     epsgg.m - routine for calculating the matrix of Fourier coefficients

%%%                 of dielectric function

%%%     bz_irr2.m - routine for 2D discretization of irreducible Brillouin zone polygon;

%%%     kvect2.m - routine for calculating diagonal matrices with elements

%%%                 (kx+Gx) and (ky+Gy), where G=(Gx,Gy) is a reciprocal

%%%                 lattice vector

%%%     oblic_eigs.m - routine for solving the eigenvalue problem for

%%%                     H-field

close all

clear all

tic


omega=0.45; % normalized frequency "a/lambda"


r=0.43; % radius of cylindrical holes (normalized w.r.t. lattice constant "a")

na=1; nb=3.45; % refractive indices (cylinders-atoms, background)


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

No1=7; No2=No1;

N1=2*No1+1; N2=2*No2+1;

N=N1*N2; % total number of plane waves used in Fourier expansions


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%% primitive vectors of direct lattice (normalized w.r.t. lattice constant "a")

a1=[sqrt(3)/2, -1/2, 0]; a2=[sqrt(3)/2, 1/2, 0];

%%% area of primitive cell

ac=norm(cross(a1,a2));

%%% primitive vectors of direct lattice (normalized w.r.t. lattice constant "2*pi/a"): b1=[1/sqrt(3),-1]; b2=[1/sqrt(3),1];

b1=(1/ac)*[a2(2),-a2(1)]; b2=(1/ac)*[-a1(2), a1(1)];

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%% matrix of Fourier coefficients

eps1 = feval ('epsgg',r,na,nb,b1,b2,N1,N2);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%% 2D discretization of irreducible Brillouin zone polygon

Nr=20; % even number

[BZx,BZy]=feval('bz_irr2', Nr);

kx=[]; ky=[]; kz=[];


S=2.5; % point size for scatter plot


for j=1:length(BZx)

   %%% diagonal matrices with elements (kx+Gx) si (ky+Gy)

   [kGx, kGy] = feval('kvect2',BZx(j),BZy(j),b1,b2,N1,N2);

   [P, beta]=feval('oblic_eigs',omega,kGx,kGy,eps1,N);

   L=imag(beta)==0;

   qp=sort(beta(L)); %%% keep only the propagative modes

   display(sprintf('Calculation for k[%d] is finished',j));

   for r=1:length(qp)

       kx(j,r)=BZx(j); ky(j,r)=BZy(j); kz(j,r)=qp(r);

   end  

end

M=length(BZx)*length(qp);

scatter3(reshape(kx,1,M), reshape(ky,1,M), reshape(kz,1,M), S,'r','filled'), view(65,10)

title(sprintf('Wavevector diagram for omega=%0.5g',omega));

xlabel('kx'); ylabel('ky'); zlabel('kz');


toc

⛄ 运行结果

⛄ 参考文献

[1]许江勇. 基于Matlab研究光子晶体的特性[J]. 兴义民族师范学院学报, 2012(4):4.

[2]吴炳坚, 沈廷根. 基于Matlab的光子晶体波导仿真研究[J]. 微计算机信息, 2007(01S):3.

⛄ 完整代码

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料


相关文章
|
7月前
|
算法 数据安全/隐私保护 计算机视觉
基于二维CS-SCHT变换和LABS方法的水印嵌入和提取算法matlab仿真
该内容包括一个算法的运行展示和详细步骤,使用了MATLAB2022a。算法涉及水印嵌入和提取,利用LAB色彩空间可能用于隐藏水印。水印通过二维CS-SCHT变换、低频系数处理和特定解码策略来提取。代码段展示了水印置乱、图像处理(如噪声、旋转、剪切等攻击)以及水印的逆置乱和提取过程。最后,计算并保存了比特率,用于评估水印的稳健性。
|
7月前
|
算法
基于最小二乘正弦拟合算法的信号校正matlab仿真,校正幅度,频率以及时钟误差,输出SNDR,SFDR,ENOB指标
基于最小二乘正弦拟合算法的信号校正matlab仿真,校正幅度,频率以及时钟误差,输出SNDR,SFDR,ENOB指标
|
2月前
|
存储 数据可视化 数据挖掘
使用Matlab绘制简单的二维与三维图形
【10月更文挑战第3天】本文详细介绍了如何在 Matlab 中绘制简单的二维和三维图形,包括曲线图、柱状图、散点图、网格图、表面图、等高线图、多边形填充图、切片图及矢量场等。文章提供了丰富的代码示例,如使用 `plot`、`bar`、`scatter`、`plot3`、`mesh`、`surf`、`contour` 等函数绘制不同类型图形的方法,并介绍了 `rotate3d`、`comet3` 和 `movie` 等工具实现图形的交互和动画效果。通过这些示例,读者可以轻松掌握 Matlab 的绘图技巧,并应用于数据可视化和分析中。
|
3月前
|
算法 5G 数据安全/隐私保护
SCM信道模型和SCME信道模型的matlab特性仿真,对比空间相关性,时间相关性,频率相关性
该简介展示了使用MATLAB 2022a进行无线通信信道仿真的结果,仿真表明信道的时间、频率和空间相关性随间隔增加而减弱,并且宏小区与微小区间的相关性相似。文中介绍了SCM和SCME模型,分别用于WCDMA和LTE/5G系统仿真,重点在于其空间、时间和频率相关性的建模。SCME模型在SCM的基础上进行了扩展,提供了更精细的参数化,增强了模型的真实性和复杂度。最后附上了MATLAB核心程序,用于计算不同天线间距下的空间互相关性。
90 0
|
7月前
|
存储 关系型数据库 数据处理
Matlab——二维绘图(最为详细,附上相关实例)
Matlab——二维绘图(最为详细,附上相关实例)
198 6
|
6月前
|
存储 编解码
数字频率合成器dds的量化性能分析matlab仿真
### 课题概述 分析DDS(数字频率合成器)量化性能的MATLAB仿真,研究累加器、截位和DAC位宽对频谱的影响。 ### 核心程序 在MATLAB 2022a中,使用相位映射、量化码本和频偏分析函数,比较了10bit DAC位宽截取、无截取以及相位位宽截取的频谱特性。 ### 系统原理 DDS利用相位累加器、波形查找表、DAC和LPF生成精确频率信号。相位累加器的位数决定频率分辨率和杂散性能,量化和非线性影响信号质量。 ### 分析重点 频率分辨率与相位累加器位数相关,杂散和噪声性能受相位截断、幅度量化及DAC非线性影响。提高这些参数能提升DDS输出质量。
|
7月前
|
算法 数据安全/隐私保护 C++
基于二维CS-SCHT变换和扩频方法的彩色图像水印嵌入和提取算法matlab仿真
该内容是关于一个图像水印算法的描述。在MATLAB2022a中运行,算法包括水印的嵌入和提取。首先,RGB图像转换为YUV格式,然后水印通过特定规则嵌入到Y分量中,并经过Arnold置乱增强安全性。水印提取时,经过逆过程恢复,使用了二维CS-SCHT变换和噪声对比度(NC)计算来评估水印的鲁棒性。代码中展示了从RGB到YUV的转换、水印嵌入、JPEG压缩攻击模拟以及水印提取的步骤。
基于OFDM+64QAM系统的载波同步matlab仿真,输出误码率,星座图,鉴相器,锁相环频率响应以及NCO等
基于OFDM+64QAM系统的载波同步matlab仿真,输出误码率,星座图,鉴相器,锁相环频率响应以及NCO等
|
7月前
|
存储 人工智能 机器人
【Matlab】Matlab 汉/英语(A/a)声学特征比较与基音频率分析(源码+音频文件)【独一无二】
【Matlab】Matlab 汉/英语(A/a)声学特征比较与基音频率分析(源码+音频文件)【独一无二】
|
7月前
|
算法 计算机视觉
基于表面法线法的二维人脸图构建三维人脸模型matlab仿真
该内容概述了一个使用MATLAB2022a的二维人脸图像三维重建算法。首先,通过人脸检测和对齐,然后运用深度信息估计技术(如Shape from Shading)获取表面法线。接着,结合预训练的三维人脸模型库和二维关键点,通过迭代优化和全局优化构建三维模型。核心程序涉及图像处理、光源方向转换、反射率和表面法线计算,最终重构高度图并显示结果。该方法依赖多视角图像,单幅图像重建可能存在挑战。