普朗克定律是热红外遥感中常常使用的三大定律之一,描述了黑体辐射能量的情况。绝对黑体的辐射光谱对于研究一切物体的辐射规律具有根本的意义。1900年普朗克引进量子概念,将辐射当做不连续的量子发射,成功地从理论上得出了与实验精确符合的绝对黑体辐射出射度随波长的分布函数。试着用IDL绘出了黑体辐射曲线,利于以后计算黑体辐射出射度,以备不时之需!
-
IDL绘制黑体辐射曲线
2015-11-05 10:55:00普朗克定律是热红外遥感中常常使用的三大定律之一,描述了黑体辐射能量的情况。...试着用IDL绘出了黑体辐射曲线,利于以后计算黑体辐射出射度,以备不时之需! 普朗克公式: 代码: ;+ ...普朗克公式:代码:;+; :Author: caozhigang; :Copyright:UCAS; :blog:blog.sina.com.cn/ahnucao;-PRO PLANK_SPECTRUMCURVES;生成普朗克光谱曲线colors=['r','g','b','c','m','y','k']wavelengths=FINDGEN(1000,start = 1,increment = 0.1);1_100 umradiance = CALC_OMMITRADIANCE(wavelengths,250)plots = PLOT(wavelengths,radiance,Name = STRING(250)+'K',colors[0],$AXIS_STYLE = 1,xtitle ='wavelength(um)',ytitle = '辐射出射度/(m^2*um)')PLOTS.TITLE = '黑体辐射曲线'lege = legend(target = plots,$/DATA, /AUTO_TEXT_COLOR)c_index = 1FOR T= 270,340,20 DO BEGIN;计算黑体辐射出射度radiance = CALC_OMMITRADIANCE(wavelengths,T); ;随机产生一个颜色; colorNames = TAG_NAMES(!color); index = ROUND(RANDOMU(seed,1)*N_ELEMENTS(colorNames)+0); color = colorNames[index]plots = PLOT(wavelengths,radiance,Name = STRING(T)+'K',colors[c_index],$AXIS_STYLE = 1,xtitle ='wavelength(um)',ytitle = '辐射出射度/(m^2*um)',/OVERPLOT)lege.ADD,plotsc_index = c_index+1ENDFORENDFUNCTION CALC_OMMITRADIANCE,wavelengths,T;;wavelengths=FINDGEN(1000,start = 1,increment = 0.1);1_100 umspectrum= FINDGEN(1000);保存强度colors = !colorc = 3*10.0^14; m/sh = 6.6256*10.0^(-34);Plank statics numk = 1.38*10.0^(-23);S_P statics numFOR i = 0,N_ELEMENTS(wavelengths)-1 DO BEGIN;first_factor = 2*!pi*c*c*h/(wavelengths[i]^5.0)sencond_factor = 1.0/(EXP(c*h/(k*wavelengths[i]*T))-1)spectrum[i] = first_factor * sencond_factor*10^12.0;这里乘上10^12次方,是为了将um2转换为转化为m2的单位ENDFORRETURN,spectrumEND转载于:https://www.cnblogs.com/ahnucao/p/4938752.html
-
IDL 绘制 PLANK黑体辐射曲线
2020-05-25 21:49:45给定起始和终止波长以及步长,计算出对应的波长数组,并代入上次实习完成的普朗克函数计算程序,得到某个温度黑体的辐射出射度曲线。以前完成的普朗克函数中的某些功能独立出来写成函数或者过程,实现多个程序间的...实验目的:
给定起始和终止波长以及步长,计算出对应的波长数组,并代入上次实习完成的普朗克函数计算程序,得到某个温度黑体的辐射出射度曲线。以前完成的普朗克函数中的某些功能独立出来写成函数或者过程,实现多个程序间的调用。
实验步骤:
1.首先,定义计算普朗克函数的文件,波长e,温度t为未知量,辐射出射度B 为返回值;
2.接着,定义一个给定起始末尾波长及步长的波长数组文件,并代入普朗克函数文件计算辐射出射度B,利用plot函数绘制曲线;
;普朗克planck公式的计算过程
;定义步长为100,范围在1000-25000nm的波长数组
;带入planck公式中波长的单位是μm,故arr数组要乘以10^(-3)
;赋以温度t为300K
;调用上面的plank公式过程,计算辐射出射度M
;利用plot函数绘制成图
输出结果:
-
黑体辐射出射度曲线绘制
2019-05-24 16:52:34这是我在做红外物理小作业时的代码,...%黑体的光谱辐射出射度的曲线绘制 %图像尽量与红外物理课本中67页的图3-5保持一致 c1 = 3.7415e8;%第一辐射常数 c2 = 1.438789e4;%第二辐射常数 for T=500:100:900 % 设置辐...这是我在做红外物理小作业时的代码,虽然很简单但是我在写的过程中也是体会到了编程真的是不断实践才能有所成 。另外记忆力好对于编程影响也挺大的,虽然此代码很简单hh
%黑体的光谱辐射出射度的曲线绘制 %图像尽量与红外物理课本中67页的图3-5保持一致 c1 = 3.7415e8;%第一辐射常数 c2 = 1.438789e4;%第二辐射常数 for T=500:100:900 % 设置辐射温度(K) l=0.00001:0.0001:16; % 设置波长范围及间隔步长 M=1e-4.*(c1./(l.^5)./(exp(c2./(l.*T))-1)); % 计算指定温度光谱辐出度,且此处乘以1e-4是将其中的m化为cm,以与课本中67页的图3-5一致 plot(l,M,'r') % 绘制光谱辐出度曲线 maxM = max(M); % 找出指定温度最大光谱辐出度 lnum=find(maxM==M); % 找峰值波长索引 text(l(lnum+100),M(lnum+20),[num2str(T),'K'],... 'VerticalAlignment', 'bottom','fontsize',12) % 在指定的合适位置按给定方式标记对应温度 hold on end
一开始考虑用flot画,不过后来发现要写5个flot函数,,因为是字符串形式。另外最大值也难求,只是个图像,不过优点就是方便。
fplot 命令
在实际的应用中,用户可能并不知道某一个函数随自变量变化的趋势,此时若采用plot命令来绘图,则有可能会因为自变量的取值间隔不合理而使曲线图形不能反应出自变量在某些区域内函数值的变化情况。
用户可以将自变量间隔取得足够小以体现函数值随自变量变化的精确曲线,但是这样会使数据量变大。
fplot 命令通过函数来取得绘图的数值点矩阵。该命令通过内部的自适应算法来动态决定自变量的取值间隔,当函数值变化缓慢时,间隔取大一点;变化剧烈时(即函数的二阶导数很大),间隔取小一点。
在看text函数的参数的文档时发现要点击input arguments中x的verticalalignment然后进入textproperties页面才能看见还有verticalalignment这个参数,,不知道为什么这么设计。
%以下绘制过不同黑体辐射出射度曲线最大值的虚线 xm = zeros(1,411);ym = zeros(1,411);%预定义最大值变量及其维数 for T=500:910 % 设置辐射温度(K) l=0.001:0.001:16; % 设置波长范围及计算步长 M=1e-4.*(c1./(l.^5)./(exp(c2./(l.*T))-1)); % 计算指定温度光谱辐出度,且此处乘以1e-4是将其中的m化为cm,以与课本中67页的图3-5一致 maxM = max(M); % 找出指定温度最大光谱辐出度 lnum=find(maxM==M); % 找峰值波长索引 ym(T-499) = maxM;xm(T-499) = l(lnum);%对最大值坐标分量依次赋值 end plot(xm,ym,'--r') % 绘制过不同温度下黑体光谱辐出度曲线最大值的曲线,并以虚线表示 set(gca,'XTick',[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]) %设置横坐标点 xlabel('波长\lambda / \mum') % 横坐标名称及单位 ylabel('光谱辐射出射度M_{\lambda} / (W/(cm^{2}\cdot\mum)') % 纵坐标名称及单位 title('500-900k部分黑体的光谱辐射出射度曲线','fontsize',10) grid on
由于MATLAB对矩阵的单个元素循环时速度很慢,如果把循环向量化,不仅能缩短程序的长度,而且能提高程序的执行效率。也就是程序优化方法之一。程序优化要对语言的特性熟悉。
另外向量预分配也是优化方法之一:
Matlab 采用内存中一块连续的空间来存储向量和矩阵数据,而不是用链表。这就意味着你每给向量或矩阵增加一元素,Matlab需要寻找一块足够大的内存区域来存储 这个扩大后的向量或矩阵,然后复制现有的数据到新的内存区域。在循环中增加向量或矩阵元素的元数是允许的,但并不是明智之举,而应该是一次性分配向量或矩 阵的大小,或一次性重定义尺寸。 -
怎样实现对MATLAB代码的改写,用Python代码绘制出黑体辐射光谱的函数图像?
2020-03-12 17:10:36%温度不同的普朗克黑体单色辐射能力与波长的曲线 clear %清除变量 k=1.38054e-23; %玻尔兹曼常数 h=6.626e-34; %普朗克常数 c=2.997925e8; %光速 sigma=5.6688e-008; %斯特潘常数 b=0.0029; %维恩常数 t=1400... -
黑体的太赫兹辐射特性与测试方法
2021-02-13 12:55:04黑体的温度越高,太赫兹波段...实验结果显示,在此温度范围内,黑体在100~3000 μm波段的太赫兹相对辐射量与实测相对值的误差范围为0.1%~2.0%,且曲线变化趋势一致,说明该方法能够实现黑体太赫兹宽波段辐射量测试。 -
普朗克定律:不同温度下黑体的光谱辐射强度按波长分布的规律Matlab画图
2020-11-24 15:43:04普朗克定律:不同温度下黑体的光谱辐射强度按波长分布的规律Matlab画图。温度不同的普朗克黑体单色辐射能力与波长的曲线。用matlab编码实现普朗克定律公式,并显示如下结果。包括两个代码文件和一个结果文件 -
MATLAB在遥感影像处理的应用
2020-05-03 22:06:43黑体辐射曲线、真假彩色影像、SAR影像初探绘制黑体辐射曲线
c1=3.743*10^-16; c2=1.439*10^-2; T=[300 500 600 700 900]; xi=0.1e-6:0.1e-6:3e-5; w=[]; hold on; for i=T w=c1./(exp(c2./xi./i)-1)./xi.^5; %注意点乘 plot(xi,w); [m,xindex]=max(w); a = sprintf('%d K',i); %匹配字符串 text(xindex*0.1e-6,m,a); %在最大值处标注 end legend('300K','500K','600K','700K','900K') xlabel('λ/m'); ylabel('M'); title('几种温度下的黑体波谱辐射曲线');
真假彩色影像
da=imread('scenery.jpg'); imshow(da); da1=da(:,:,1); da2=da(:,:,2); da3=da(:,:,3); figure,imshow(da1); %figure:打开一个新的figure窗口 %假彩色 da2c=uint8(zeros(640,1076,3)); da2c(:,:,1)=da2; da2c(:,:,2)=da1; da2c(:,:,3)=da3; figure,imshow(da2c); imwrite(da2c,'sc.jpg'); %保存图片
实例:
原图
单波段:
假彩色影像:
SAR影像初探
一幅SAR单视复数影像可以提取出一幅振幅影像和相位影像。
load sarimg.mat %为复数值 p1=sarimg(1,1) amp1=abs(p1) %求振幅 ph1=angle(p1) %求相位 %弧度 amp=abs(sarimg); figure,image(amp); colormap(gray) ; %%amp处理成灰度图 ph=angle(sarimg); figure,imshow(ph) max(ph(:)) min(ph(:))
-
光谱辐射计算(MATLAB)
2019-12-14 01:13:10黑体的光谱辐射出射度辐射出射度又称辐射通量密度,指面辐射源在单位时间内从单位面积上辐射出的辐射能量。用普朗克公式表示如下: 其中,常数系数,,为波长,为黑体温度; MATLAB绘制曲线代码如下: %plk.m... -
Matlab绘制普朗克公式曲线
2021-03-05 17:26:07普朗克在量子论基础上建立了关于黑体辐射的正确公式,即普朗克公式。 它给出了辐射场能量密度按波长的分布,是热辐射理论的基本公式之一。 1.确定波长和温度区间。 t为[3500 4000 4500 5000 5500]K, 波长lamda为(1... -
红外辐射温度测量关键技术研究
2014-05-02 13:12:09然后从黑体辐射能流密度比的角度对比色的波长选择进行了详细的讨论,给出了详细的波长选择方法。硬件设计方面包括器件的选择、具体电路的设计、电路部分效果分析等都有详细的介绍。最后通过黑体标定得到测量数据,... -
SYNOPSYS™前视红外辐射计(FLIR)设计, 冷反射效应
2020-10-13 19:21:39SYNOPSYS™前视红外辐射计(FLIR)设计, 冷反射效应 概述 什么是冷反射 NAR透镜冷反射特性 GHPLOT不良冷反射透镜图 ...参考Donald Dilworth《Lens Design Automatic and quasi-...在293K时的黑体曲线 在C... -
大气污染的红外激光监视技术
2021-02-08 11:25:49这种方法的能量转换效率很低,特别是在红外区,因为它处于高温黑体辐射源能量分布曲线的尾部。红外区的光谱亮度(功率/光谱宽度)低,约比可见光低6个数量级,加之历来缺乏灵敏的红外探测器,这就给红外带来了光谱波段... -
cst微波工作室用户全书_当一个人说宇宙微波背景的温度是3K,那这是什么意思?...
2020-11-28 13:55:32任何具有内能(温度高于绝对零度或0k)的物体都会以电磁波(光)的形式辐射出该能量。该辐射中波长的理论分布代表“黑体”辐射,用一个...图解:普朗克定律描述的黑体辐射在不同温度下的频谱 你能够看到这种行为,... -
awb数据怎么计算_AWB 介绍 原理 和算法
2021-01-17 10:29:20色温源自普朗克定义的黑体受热辐射,单位是K(kelvin),用于定义光源颜色,热黑体辐射体与光源的色彩相匹配时的开尔文温度就是光源的色温。来看一下色温的大致范围:色温曲线这是一份在XYZ色彩空间的光源色温曲线,... -
傅里叶变换光谱仪的红外探测器非线性校正
2021-01-26 08:43:59相比已有的校正方法,所提方法避免了对干涉图直流信号的依赖性,但增加了对多个温度点黑体辐射定标数据的依赖性。一旦得到一致性校正因子后,在探测器稳定工作的前提下,可以实施对任一光谱图的非线性校正。 -
高温石墨板短波红外光谱发射率-温度变化规律研究
2021-02-13 21:47:15采用室内实验观测方法以高温石墨板为例的面辐射源在暗室环境下使用光谱仪测量其辐射亮度及使用热电偶测量其表面温度,并基于黑体辐射定律获取了高温石墨板在9组不同温度下短波红外波段(1300-2500nm)的光谱发射率,... -
双DMD红外双波段场景模拟器光机结构设计.pdf
2019-09-20 11:21:26利用MATLAB求解出两波段黑体的工作温度,并拟合出经光学系统后两波段辐射出射度与全红外波段黑体辐射出射度的比例关系ψ(T)曲线。测试结果表明,黑体温度为850 K时达到最高表观温度要求,中波图像对比度为250∶1,长波... -
论文研究 - 重力场和非鲁氏加速温度场之间的等效性可能是“暗物质”的线索
2020-05-27 02:04:01通过使用这种比较得出Schwarzschild黑洞视界处的有效霍金黑体辐射,证明了这种比较的有效性。 然后可以将黑洞思想实验扩展到以Schwarzschild半径表示的Hawking-Unruh温度方程式。 这遵循反半径定律,而不是反半径... -
二分法优化计算LED光源相关色温
2021-02-10 08:17:45利用软件编程实现这几种算法,通过普朗克黑体辐射公式计算得到一系列色温的理论光谱和白光LED仪器实际测试光谱,对比二分法和各种经典算法的速度和结果,证明了二分法是一种适合于计算机程序化实现的高精度高速度的色温... -
氧气A吸收带偏最小二乘基线拟合方法
2021-02-04 09:15:22首先, 以黑体辐射理论为依据, 给出氧气A带平均透射率计算方法, 以实际被测目标光谱为研究对象, 以带外数据为依据, 利用偏最小二乘法拟合被测目标在氧气A带的基线。为提高拟合精度, 剔除了测量奇异点, 并利用基线拟合... -
matplotlib绘图中添加中文信息
2020-07-05 22:16:44import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False 添加这两行就可以在...计算6000k黑体的光谱曲线0.3 ~ 10μm 根据普朗克辐射定律, M -
基于Simulink的三结聚光太阳能电池建模与仿真研究
2021-01-13 01:48:07依据单二极管等效原理建立三结太阳能电池模型,光照条件选择为AM0,采用黑体辐射理论,通过理论计算方法得到各层子电池的短路电流密度,将参数代入基于Matlab软件的Simulink模块建立三结太阳能电池的电路仿真模型。...