基于matlab的姓名仿真实验.docx
《基于matlab的姓名仿真实验.docx》由会员分享,可在线阅读,更多相关《基于matlab的姓名仿真实验.docx(40页珍藏版)》请在冰豆网上搜索。
![基于matlab的姓名仿真实验.docx](https://file1.bdocx.com/fileroot1/2023-2/23/b3d56816-7f2f-4042-af69-8aea7d191066/b3d56816-7f2f-4042-af69-8aea7d1910661.gif)
基于matlab的姓名仿真实验
光电综合性大实验
班级:
光电111
姓名:
***
学号:
**********
时间:
2014.12.29-2015.01.09
指导老师:
韩超、鲁麟
实验一Matlab软件环境的熟悉
实验二函数编写与程序设计
实验三二维图形和三维图形的创建
实验四离轴傅里叶全息术的光学仿真实验
实验五迂回位相型全息图的制作实验
实验六PIN光电二极管特性测试
实验七光电二三极管综合特性测试
实验八APD光电二极管特性测试
实验一Matlab软件环境的熟悉
(一)实验目的
熟悉MATLAB软件的工作环境、命令的使用方法,掌握绘图及编程原理
(二)实验设备
计算机MATLAB软件
(三)实验内容
MATLAB软件命令的使用、数据及图像的读取、处理和保存、常规的矩阵元算、方程组的求解方法等。
实验小结:
本次实验我们熟悉了Matlab的软件环境,了解了命令的使用方法,同时也掌握了绘图及编程原理,收获颇丰!
实验二函数编写与程序设计
(一)实验目的
1.掌握函数的编写规则。
2.掌握函数的调用。
3.会用Matlab程序设计实现一些工程算法问题。
(二)实验内容
1.编写一个[y,y1,y2]=mwave(f1,m1,f2,m2)函数,实现以下功能,并绘出y1、y2、y在t∈[0,2π]区间500个样点的图形。
(其中调用参数2≤f1、f2≤20Hz;0.5≤m1、m2≤2)
2.程序设计:
相传古代印度国王要褒奖他的聪明能干的宰相达依尔,问他要什么?
达依尔回答:
“陛下只要在国际象棋棋盘的第一个格子上放一粒麦子,第二个格子上放两粒麦子,以后每个格子上的麦子数都按前一个格子上的两倍计算。
如果陛下按此法给我64格的麦子,就感激不尽,其他什么也不要了。
”国王想:
“这还不容易。
”让人扛了一袋麦子,但很快用光了,再扛出一袋还不够,请你为国王算一下共要给达依尔多少小麦?
(一袋小麦约1.4x10^8粒)
3.程序设计:
公元前五世纪我国古代数学家张丘建在《算经》一书中提出了“百鸡问题”:
鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。
百钱买百鸡,问鸡翁、母、雏各几何?
(三)实验要求
1.编写实现第二节实验内容
(1)所使用的函数文件。
2.程序设计用M文件编写,并记录执行结果。
“百鸡问题”答案不唯一,要给出所有答案。
3.书写实验报告时要结构合理,层次分明,在分析描述的时候,需要注意语言的流畅。
(四)实验程序
1:
function[y,y1,y2]=mwave(f1,m1,f2,m2)
%根据给定的频率和幅值计算标准正弦函数y1、y2及其叠加y的波形。
if(f1<2)|(f1>20)error('f1超出范围!
'),return,end
if(f2<2)|(f2>20)error('f2超出范围!
'),return,end
if(m1<0.5)|(m1>2)error('m1超出范围!
'),return,end
if(m2<0.5)|(m2>2)error('m2超出范围!
'),return,end
t=0:
2*pi/(500-1):
2*pi;
y1=m1*sin(2*pi*f1*t);
y2=m2*sin(2*pi*f2*t);
y=y1+y2;
figure
subplot(311);plot(t,y1);title('y1波形');
subplot(312);plot(t,y2);title('y2波形');
subplot(313);plot(t,y);title('y=y1+y2波形');
2:
a=1;
s=0
fori=1:
64
s=s+a;
a=2*a;
end
n=s/1.4/10^8
运行后得:
n=1.3176e+011
3:
forx=0:
19
fory=0:
33
forz=0:
100
if(x+y+z==100)&(5*x+3*y+z/3==100)
d=[x,y,z]
end
end
end
end
运行后得结果:
d=02575
d=41878
d=81181
D=12484
实验小结:
本次实验我们掌握了函数的编写规则,也在老师的领导下掌握函数的调用,同时也了解了Matlab程序设计实现一些工程算法问题,收获颇丰!
实验三二维图形和三维图形的创建
(一)实验目的
1.掌握二维图形的绘制。
2.掌握图形的标注
3.了解三维曲线和曲面图形的绘制。
(二)实验内容
1.生成1×10维的随机数向量a,分别用红、黄、蓝、绿色绘出其连线图、脉冲图、阶梯图和条形图,并分别标出标题“连线图”、“脉冲图”、“阶梯图”、“条形图”。
2.在同一个图形窗口中,绘制两条曲线
;并分别在靠近相应的曲线处标注其函数表达式。
3.编写一个mcircle(r)函数,调用该函数时,根据给定的半径r,以原点为圆心画一个如图所示的红色空心圆。
(图例半径r=5)
4.
(1)绘一个圆形螺旋线(形似弹簧)图。
圆柱截面直径为10,高度为5,每圈上升高度为1。
(2)利用
(1)的结果,对程序做少许修改,得出结果。
(三)实验要求
1.编写实现第二节实验内容中所使用的函数命令,并对二-2记录相应的生成结果。
2.书写实验报告时要结构合理,层次分明,在分析描述的时候,需要注意语言的流畅。
(四)实验程序及仿真
1.a=rand(1,10)
subplot(221);plot(a,'r');title('连线图');
subplot(222);stem(a,'y');title('脉冲图');
subplot(223);stairs(a,'b');title('阶梯图');
subplot(224);bar(a,'g');title('条形图');
2.x=-5:
0.1:
5;y1=2.^x;
y2=(1/2).^x;
plot(x,y1,'r');text(2,10,'y1=2^x');hold;
plot(x,y2,'b');text(-3,10,'y2=(1/2)^x')
3.function[y,t]=mcircle(r)
t=0:
2*pi/64:
2*pi;
y=r*ones(size(t));
subplot(121),polar(t,y,'*r')
[X,Y]=po12cart(t,y);
X=r*cos(t);Y=r*sin(t);
subplot(122),plot(X,Y,'*r')
axisequal;axissquare;
4.t=0:
pi/180:
2*pi*5;r1=5;
x1=r1*cos(t);y1=r1*sin(t);
z=t/(2*pi);
Subplot(121),plot3(x1,y1,z)
gridon
r2=linspace(5,0,length(t));
x2=r2.*cos(t);y2=r2.*sin(t);
subplot(122),plot3(x2,y2,z)
gridon
实验小结:
本次实验我们掌握二维图形的绘制,在老师的指导下掌握图形的标注,同时了解三维曲线和曲面图形的绘制,收获颇丰!
实验四离轴傅里叶全息术的光学仿真实验
(一)实验目的
掌握离轴全息术的基本原理,掌握傅里叶全息图的仿真过程。
(二)实验内容
选择合适的原始图片,通过软件编写代码,仿真离轴傅里叶全息图的制作、再现过程。
程序和图像结果如下:
clear;
cm=0.01;um=1e-6;
N=1024;%全息图分辨率
%hx=1*cm;hy=1*cm;%原始图大小
%dhx=hx/N;dhy=hy/N;%原始图各方向增量
dhx=17*um;dhy=17*um;
x=dhx.*(ones(N,1)*[-N/2:
N/2-1]);
y=(dhy.*(ones(N,1)*[-N/2:
N/2-1]))';
p1=imread('kzz.bmp');
p1=rgb2gray(p1);
p1=imresize(p1,[512,512]);
p1=double(p1);
p0=zeros(1024);
p0(1:
512,1:
512)=p1;
%D=zeros(1024);
%L=imread('E:
\动物\dongwu2_033.jpg');
%figure
(1);imshow(L);
%p=rgb2gray(L);
%%p=double(p);
%niao=p(1:
768,1:
768);
%niao=imresize(niao,[512,512]);
%D(1:
512,1:
512)=niao;
randnum=rand(N,N);
randphase=exp(i*2*pi*randnum);
p=double(p0).*randphase;
%p1=double(D);
%p=mat2gray(p);
figure(4);imshow(abs(p).^2);%原始图
%z=2;%菲涅尔传输距离
w=0.6328*um;%波长
k=2*pi/w;%波数
%[f,dx1,dy1,x1,y1]=fourier(p1,N,N,dhx,dhy,z,w);
f=fftshift(fft2(fftshift(p)));
sit=pi/30;%参考光角度
ur=exp(-j*k*y*sin(sit));%参考光的复波函数
f1=f+ur;
%f=f.*exp(i*2*pi*(x+y));
f1=abs(f1).^2;
f1=f1-abs(ur).^2-abs(f).^2;
f3=mat2gray(f1);
f3=histeq(f3);
%imwrite(f3,'C:
\DocumentsandSettings\Administrator\桌面\carh.bmp');
%L=(ones(1024,1)*[1:
1024])';
%comphase=2*17*sin(pi/18)/0.6328*2*pi*ones(1024,1)*[1:
1024];
%comphase=0.66*L;
%f3=f3+comphase;
%imwrite(f3,'C:
\DocumentsandSettings\ahu\桌面\fmaSHangXianc.bmp')
figure(5);imshow(f3);%全息图
rp1=f1.*conj(ur);%再现光照射
%rp1=f1.*conj(ur);
%rp1=f3.*abs(ur).^2;
%[f2,dx2,dy2,x2,y2]=fourier(rp1,N,N,dx1,dy1,z,w);
f2=fftshift(ifft2(fftshift(rp1)));
f2=abs(f2).^2;
f2=mat2gray(f2);
imwrite(f2,'C:
\DocumentsandSettings\Administrator\桌面\kzz.bmp');
figure(6);imshow(f2);
图4-1原图
图4-2全息图
图4-3离轴再现图
(三)实验要求
全息图纹理清晰,再现图像清晰可辨。
实验小结:
本次实验我们掌握离轴全息术的基本原理,掌握傅里叶全息图的仿真过程,也懂得自己修改程序了,收获颇丰!
实验五迂回位相型全息图的制作实验
(一)实验目的
了解迂回位相型全息图制作的理论基础,理解全息光栅的衍射原理。
1960年,布朗恩(Brown)和罗曼应用迂回位相技术制成二元计算全息图,现
在习惯称之为迂回位相型全息图。
这种全息图有三个特点;
(1)全息图的透过率是二元的,即只取0或1。
(2)应用迂回位相编码物光波的位相,全息图可以同时记录复值函数的振幅和位相。
(3)全息图记录时没有用到参考光波或加偏置分量。
这种迂回位相编码制作的二元计算全息图是计算全息的开创篇,正是它的特点使得它在后来的很多编码技术中得到了广泛的使用。
在本章中,首先说明应用迂回位相编码的二元付里叶变换全息图的详细制作过程,然后说明二元像全息图的制作理论,最后说明双向全息图(dualhologram)的工作原理。
通过这三类计算全息图的介绍,就能对迂回位相型全息图有一个概括的了解。
(二)实验内容
1.物面和全息面的抽样
在把物面信息输入计算机作离散付里叶变换之前,要先对物面和全息面分别按抽样定理进行抽样,求出各样点的幅值和位相信息。
2.计算离散付里肿变换(DFT)
由制作的是付里叶变换全息图,故要算出全息图面上谱的复振幅分布F(u,v),必须进行离散的付里叶变换。
3.编码
即将算出的全息图面上样点处的幅值和位相,仍在计算机内进行编码处理,然后把编码后的信息输给绘图仪绘图,或由微密度计显示产生计算全息原图。
即将算出的全息图面上样点处的幅值和位相,仍在计算机内进行编码处理,然后把
编码后的信息输给绘图仪绘图,或由微密度计显示产生计算全息原图。
由第二章编码理论,可知编码的目的是要把复数值转变为实的非负函数。
在迂回位相二元全息图中,罗曼等人是用下述精巧的方法分别编码振幅和位相的。
在全息图的每个抽样单元中,放置一个通光孔径,改变此通光孔径的面积来调制波面的幅值,改变通光孔径中心距抽样单元中心的位置来编码波面的位相。
通光孔径的形状可以是多种多样的,这主要依据绘图仪的作图能力和数学描述的方便来取定。
在罗曼等人的工作中,选择了矩形孔径、矩形孔的可变参数可以有好几个,但由于只需编码幅值和位相,故孔径的变参数仅取两个。
罗曼编码方式分为I型、l型、Ⅲ型,先以罗曼Ⅲ型为例,说明如何把幅值、位相和矩形孔径的可变参数建立联系。
4.绘图或显示
当计算机已经完成幅值和位相编码后,下一步就是制作计算全息原图并把它缩小到合适的尺寸。
绘图仪、阴极射线管、或计算机控制的微密度计都可用来制作原图。
光学缩版后就变成实际可用的计算全息片了。
如果采用特殊的输出(如电子束)直接把全息图记录在胶片上,就可省去制作原图和缩版的步骤,这样全息图的制作再现精度会更高些。
最终我们以自己名字的汉子或拼音为原始图像,求原始图像的傅里叶谱,对傅里叶谱进行迂回位相编码制作全息图并再现,程序和结果如下:
%b=zeros(128,128);%采样点阵为128X128。
%b(8:
120,24:
40)=1;
%forM=0:
56
%b(8+M,(96-M):
(112-M))=1;
%end
%forN=1:
56
%%b(64+N,(40+N):
(56+N))=1;
%end
b=imread('C:
\ProgramFiles\MATLAB71\work\kzz.bmp');
b=rgb2gray(b);
b=imresize(b,[64,64]);
%K图形用矩阵表示如上。
也可选取简单图形F表示。
A=b;a=rand(64,64);
aa=exp(i*2*pi.*a);
%给矩阵图K一个随机相位,随机相位因子的作用是平滑傅立叶频谱。
AA=double(A).*aa;
Afft2=fft2(AA);
%用matlab工具箱对带有随机相位因子的K图进行快速傅立叶变换。
A1=abs(Afft2);
B2=(angle(Afft2)+pi)/(2*pi);%对频谱的相位进行归一化
A1max=max(max(A1));
A1=A1/A1max;%对频谱的幅值进行归一化
s=1;%设定正方形单元的边长
figure;
axis([064064]);
holdon;
forJ=1:
64
y0=s/2+(J-1)*s;
forI=1:
64
x0=s/2+(I-1)*s;%计算抽样单元的中心位置
H=A1(J,I)*s;%矩形高度直接等于归一化的频谱幅值
F1=B2(J,I)*s;%偏离单元中心的量
W=s/2;%矩形宽度
ifF1<=s/4
x2=x0+F1-W/2;x3=x0+F1+W/2;y2=y0-H/2;y3=y0+H/2;
fill([x2,x2,x3,x3],[y2,y3,y3,y2],'k');
elseifs/4x22=x0+F1-W/2;x33=x0+s/2;
y22=y0-H/2;y33=y0+H/2;
fill([x22,x22,x33,x33],[y22,y33,y33,y22],'k');
x222=x0-s/2;x333=x0+F1+W/2-s;
fill([x222,x222,x333,x333],[y22,y33,y33,y22],'k');
%根据迂回相位编码原理,对</2,则直接用单元的高度表达频谱的幅值,偏移中心量表达频谱的相位。
elsex2222=x0-s/2+F1-3*s/4;x3333=x0-s/2+F1-3*s/4+W;
y2=y0-H/2;y3=y0+H/2;
fill([x2222,x2222,x3333,x3333],[y2,y3,y3,y2],'k');
%对开孔矩形的位置偏离中心超过,则在进行位相编码时,当>/2时,为了防止与邻近的矩形
%孔发生重叠而造成全息图再现时产生失真,依据光栅衍射理论,在程序中采用了“模式溢出校%正法”,即将溢出部分移至本抽样单元的另一侧。
end
end
end
end
axis('equal');
axisoff;
saveas(gcf,'kzz.bmp','bmp')
%f2=fftshift(ifft2(f1));%orf2=fftshift(ifft2(fftshift(c1)));
%f3=abs(f2);
%imshow(f3)
aa=imread('kzz.bmp');bb=ifft2(aa);bb=fftshift(bb);cc=abs(bb);imwrite(cc,'lmnre.bmp');imshow(cc)
图5-1原图
图5-2全息图
图5-3迂回再现图
(三)实验要求
计算全息图采用MATLAB软件制作,会编写、调试代码,全息图纹理清晰,能完整再现出原始图像。
实验小结:
本次实验了解迂回位相型全息图制作的理论基础,理解全息光栅的衍射原理,同时也懂得了画图和修改程序,收获颇丰!
实验六PIN光电二极管特性测试
一、实验目的
1、学习掌握PIN光电二极管的工作原理
2、学习掌握PIN光电二极管的基本特性
3、掌握PIN光电二极管特性测试的方法
4、了解PIN光电二极管的基本应用
二、实验内容
1、PIN光电二极管暗电流测试实验
2、PIN光电二极管光电流测试实验
3、PIN光电二极管伏安特性测试实验
4、PIN光电二极管光电特性测试实验
5、PIN光电二极管时间响应特性测试实验
6、PIN光电二极管光谱特性测试实验
三、实验步骤
1、光电二极管暗电流测试
实验装置原理框图如图6-3所示,但是在实际操作过程中,光电二极管和光电三极管的暗电流非常小,只有nA数量级。
这样,实验操作过程中,对电流表的要求较高,本实验中,采用电路中串联大电阻的方法,将图6-3中的RL改为20M,再利用欧姆定律计算出支路中的电流即为所测器件的暗电流,如图12所示。
图6-1
(1)组装好光通路组件,将照度计显示表头与光通路组件照度计探头输出正负极对应相连(红为正极,黑为负极),将光源调制单元J4与光通路组件光源接口使用彩排数据线相连。
(2)“光源驱动单元”的三掷开关BM2拨到“静态特性”,将拨位开关S1,S2,S3,S4,S5,S6,S7均拨下。
(3)“光照度调节”调到最小,连接好光照度计,直流电源调至最小,打开照度计,此时照度计的读数应为0。
(4)选用直流电源2,将电压表直接与电源两端相连,打开电源调节直流电源电位器,使得电压输出为15V,关闭电源。
(5)按图2-2所示的电路连接电路图,负载RL选择RL21=20M。
(6)打开电源开关,等电压表读数稳定后测得负载电阻RL上的压降V暗,则暗电流L暗=V暗/RL。
所得的暗电流即为偏置电压在15V时的暗电流.
2、PIN光电二极管光电流测试
实验装置原理图如图5-3所示。
图6-2
(1)组装好光通路组件,将照度计显示表头与光通路组件照度计探头输出正负极对应相连(红为正极,黑为负极),将光源调制单元J4与光通路组件光源接口使用彩排数据线相连。
(2)“光源驱动单元”的三掷开关BM2拨到“静态特性”,将拨位开关S1拨上,S2,S3,S4,S5,S6,S7均拨下。
(3)按图5-4连接电路图,直流电源选择电源2,RL取RL6=1K欧。
(4)打开电源,缓慢调节光照度调节电位器,直到光照为300lx(约为环境光照),缓慢调节直流调节电位器到电压表显示为15V,请出此时电流表的读数,即为PIN光电二极管在偏压15V,光照300lx时的光电流。
电流0.4uA
3、PIN光电二极管光照特性
(1)组装好光通路组件
(2)“光源驱动单元”的三掷开关BM2拨到“静态”,将拨位开关S1拨上,S2,S3,S4,S5,S6,S7均拨下。
(3)按图5-4所示的电路连接电路图,直流电源选择电源2,负载RL选择RL6=1K欧。
(4)调节旋钮,增大光照度值,分别记下不同照度下对应的光生电流值,填入下表。
光照度(Lx)
0
100
300
500
700
900
光生电流(μA)
0
0.1
0.3
0.6
1.1
1.3
4、PIN光电二极管伏安特性
(1)组装好光通路组件,将照度计显示表头与光通路组件照度计探头输出正负极对应相连(红为正极,黑为负极),将光源调制单元J4与光通路组件光源接口使用彩排数据线相连。
(2)“光源驱动单元”的三掷开关BM2拨到“静态”,将拨位开关S1拨上,S2,S3,S4,S5,S6,S7均拨下。
(4)按图5-4所示的电路连接电路图,直流电源选择电源1,负载RL选择RL6=1K欧。
(5)打开电源顺时针调节照度调节旋钮,使照度值为500Lx,保持光照度不变,调节电源电压电位器,使反向偏压为0V、2V,4V、6V、8V、10V、15V、20V时的电流表读数,填入下表,关闭电源。
偏压(V)
0
-2
-4
-6
-8
-10
-15
-20
光生电流1(μA)
0.6
0.6
0.6
0.6
0.6
0.6
0.6
0.6
光生电流2(μA)
1.2
1.2
1.2
1.2
1.2
1.2
1.2
1.2
5、PIN光电二极管时间响应特性测试
(1)组装好光通路组件,将照度计显示表头与光通路组件照度计探头输出正负极对应相连(红为正极,黑为负极),将光