核数据处理课程设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

导数法在γ射线能谱寻峰、边界道的确定、峰面积计算中的应用

摘要:本文导数法对平滑后的能谱数据进行寻峰,并比较各阶导数法寻峰、导数法对于能谱数据寻峰、以及比较不同的拟合公式求导后对寻峰以及峰面积结果分析。

关键词:能谱、峰面积、导数法、寻峰、边界道、拟合Abstract:This method of derivative spectroscopy data after smoothing peak search, and compare order derivative France to find the peak derivative method for the spectroscopy data the peak search and compare different fitting formula derivation on the peak search and peak areaanalysis of results.

Keywords: spectroscopy, peak area, the derivative method, peak search, boundary Road, fitting.

导数是一条光沿曲线上数值的微商或微商函数,在数学上称它为曲线上各点的斜率。在导数光谱术中导数吸收光谱是指光强度或吸光强度对波长的变化率曲线。当将原吸收曲线进行一阶、二阶直至四阶求导时,便可得到各阶导数光谱。导数光谱的基本特征(1)对原曲线的极值求一、二阶导数时通过原点,求二阶导数时为极小值,四阶导数为极大值,并恢复至原位置。据此特征可以准确的测定最大的吸收峰位。(2)极值数目随求导阶数的增加而增加。如当原曲线有一个极大值时 ,求n阶导数就有n+1个极大值和极小值,而原曲线有

两个极大值时,则出现n+3个极值。(3)随求导阶数的增加,谱带变窄和复杂化。两组分组合的吸收曲线原光小的吸收谱带为大的吸收谱带所掩蔽,经二阶求导之后,原曲线中的小“卫星”峰就变成极小值,四阶导数变为极大值。这时改善了谱线的分辨率,导数光谱更加明显。在γ射线衍射分析中各衍射谱也有类似的特征,不过这时的衍射曲线是晶体衍射强度 4 相对于衍射角5的一条光滑曲线,通常它是高斯、柯西和修正的洛仑兹函数形式,或其复合形式的分布函数。其一阶导数曲线通过零点 ,对应于衍射线的峰位3而二阶导数分布曲线的极小值也对应于峰位。由于一阶导数的零点确定峰位比较困难,特别是在多相衍射线重叠的情况下,一阶导数定峰不如二阶导数明显、准确,因此一般采用经光滑处理求二阶、四阶以至偶数阶导数的定峰方法。这是一种简便而有效的精确测定衍射峰位的方法。导数方法可以准确测定衍射峰位和重叠衍射峰的数目。因此,我们也称它为导数定峰法。所谓导数定峰法就是利用一条光滑衍射曲线上各点的数值微商(或求导)方式来确定重叠衍射峰位的方法。

能谱分析对寻峰方法的基本要求如下:

(1)识别弱峰

(2)剔除假峰

(3)分辨重峰

(4)不仅能计算出峰位的整数道址,还能计算出峰位的精确值,某些情况下要求峰位的误差小于0.1道。

一、导数法寻峰原理

一阶导数法:

经过平滑后的能谱我们可以很容易的计算其各阶导数。一阶导数计算过程如下:(1)采用五点三次平滑公式的一阶导数公式:

(2)沿道指i方向检索一阶导数从正变负,

其零点值对应的道址为峰位。

(3)再利用峰高判断条件:

0.8FWHM

时才认为可能是一个真峰,

否则(2)中找到的峰位全是

假峰,必须剔除。由于统计

涨落的影响,峰高判定条件必

需加以修正。

这就是一阶导数寻峰程序中实际应用的峰高判定条件。

一阶导数法寻峰时最常用的一种方法,用这种方法能找出大部分峰,计算简单,运行书度也快,但主要缺点是不能分辨很近的重峰。

二阶导数法:

二阶导数和一阶导数法比较,二阶导数寻峰方法具有更高的重峰分辨能力。具体过程如下:

(1)先计算平滑数据二阶导数数值。采用五点三次平滑公式的二阶导数公式:

(2)沿道指i增加方向检索二阶导数值,

(3)找出二阶导数局部负的极小值对应

的道指。如果这个负极大值的绝对值大于

改导数的标准差的若干倍,则认为该道指

是一个真峰。

(4)为了进一步剔除假峰,采用判定条件

二阶导数重叠峰导数图对于二阶导数法,其峰边界为真正的极大值点对应的道址

三阶导数法

三阶导数计算方法其峰位为其三阶导数值从负变为正的零点所

对应的道址,峰的边界为三阶导数从正变为负的零点对应的道址。

三阶导数可以确定重峰区的各个组分峰的峰位,而且能够狠灵敏的分辨重峰。

一阶导,峰位处由正到负过零点,边界处由负到正过零点;二阶导,峰位处负的局部最小值,边界道为正的极大值;三阶导,峰位处由负到正过零点,边界处由正到负过零点。

三、实验过程:

流程图:第一种方法,先平滑,对平滑公式求导,再寻峰开始

获取能谱数据

高斯函数法对能谱进行平滑

得到平滑后的能谱数据

导数法的寻峰

得到计算峰面积

结束

matlab编程程序如下:

%function [peak_position,intensity]=peak_search_Gauss(array,m)

%m灵敏度控制参数

clc;

clear;

[Filename,Pathname]=uigetfile('','选择谱数据');

fid=fopen([Pathname Filename],'r');

[array,count]=fscanf(fid,'%d',inf);

fclose(fid);

peak_position=[]; %峰位置信息

%谱光滑采用高斯函数光滑y=0.2438 0.205 0.1218 0.05126

k1=4; %光滑点数控制参数

for i=1:count

if(i<=k1)

for i=1:k1

array_smooth(i)=0.2438*array(i)+0.205*(array(i+1)+array(i+1))+0.1218*(array(i+2) +array(i+2))+0.05126*(array(i+3)+array(i+3)); %对称做镜像处理

end

elseif(i>k1&i<(count-k1))

array_smooth(i)=0.2438*array(i)+0.205*(array(i-1)+array(i+1))+0.1218*(array(i-2)+ array(i+2))+0.05126*(array(i-3)+array(i+3));

else

array_smooth(i)=0.2438*array(i)+0.205*(array(i-1)+array(i-1))+0.1218*(array(i-2)+a rray(i-2))+0.05126*(array(i-3)+array(i-3));

end

end

p=ones(1,count); %为处理结果事先分配空间并赋值

m=1; %控制参数1

j=2; %控制参数2 固定

for i=1+j:count-j-m

p(i)=(array_smooth(i)*array_smooth(i+m))/(array_smooth(i-j)*array_smooth(i+m+j)) ;

end

k=1.5; %峰判断控制参数

for i=1:count

upper(i)=1+k/sqrt(array_smooth(i));

lower(i)=1-k/sqrt(array_smooth(i));

end%寻找局部最大值简单比较法寻找

factor=1;

for i=1+factor:count-factor

相关文档
最新文档