核辐射测量数据处理成都理工大学程序设计报告
成都理工大学核辐射数据处理程序设计

程序设计课程设计(论文)设计(论文)题目谱的显示、谱光滑、定性分析程序学院名称核技术与自动化工程学院专业名称辐射防护与环境工程学生姓名蒋卓辰学生学号201106080116任课教师马永红设计(论文)成绩教务处制2015年 1 月10 日一、实习目的学习使用各种编程软件,利用计算机工具开展专业信息处理工作。
使用面向对象编程思想实现谱数据处理功能以及谱显示功能。
二、人员组成及分工本人题目为:谱的显示、谱光滑、定性分析程序具体要求:用算术滑动平均法实现谱光滑一阶导数法寻峰位根据能量刻度系数计算峰位的能量,检索元素三、实习计划1.首先进行MFC绘图区域的学习和了解,实现基本绘图功能2.建立单文档MFC程序,设计一个合理美观的工作区3.实现文件打开读取功能,并能打开不同文件4.进行谱数据处理的算法编写5.编写成谱图形功能并给出处理结论四、基本原理1、重心法选取加权因子和归一化因子,使光滑后的数据成为原来数据的重心。
常见的有5点和7点光滑。
5点法: )464(1612112++--++++=i i i i i i data data data data data data 7点法:)61520156(641321123+++---++++++=i i i i i i i i data data data data data data data data 2、简单比较法(极值定峰法、IF 函数找峰法)a 、峰的定义:满足m i i i m i data data k data data +->-<,然后在data i-m 至data i+m中找最大值道。
b 、常用的:5点、7点极大值法。
c 、一般,用R=N 0/N b ≥R c 确定峰是否有意义。
N 0为净峰幅度与基底之和,N b 为基底计数,R c 为设定值。
d 、k :找峰阈值,根据高斯统计概率分布,一般k 取值:1—1.5。
峰的左右边界道i-L 和i+R 的确定:ri r i m r i l i l i m l i data k data data data k data data ++++----+≥+≥)()(3、线性本底法计算总面积:∑==RL i i data S计算本底面积:2)1(*)(+-+=L R data data B R L 计算净峰面积:B S A -=五、主要工作介绍1.建立单文档类MFC可执行程序2.建立绘图区函数,初始化绘图设备3.添加文件打开虚函数4.尝试读取mca文件六、流程及程序1、模块介绍(1)主程序的流程2、程序流程(1)函数及变量定义#define MAX_ELEMENT_NUM 20#define ScreenHeight 480#define ScreenWidth 640#define LineHeight 370#define LineWidth 500#define LineLeftX ((ScreenWidth-LineWidth)/2)#define LineRightX (LineLeftX+LineWidth)#define LineTopY 40#define LineBottomY (LineTopY+LineHeight)FILE* dataFile;int gdriver,gmode;unsigned long dataTable[1024],maxVal;int DisPos[500];/*实际显示的数据*/int OriPos[500];/*未处理前的数据*/int cursorX;float zoom;unsigned int cursorChannel;unsigned char dispLine;unsigned char energyMarked,elementLoaded,SpectrumLoaded,peakSeeked,cursorPeakseeked;int smoothLevel = 1,peakSeekLevel = 9;float a,b;/*能量刻度方程*/char element[MAX_ELEMENT_NUM][2];unsigned char numOfElement,cursorElement;float elementEnergy[MAX_ELEMENT_NUM];unsigned int peakBound[MAX_ELEMENT_NUM][2];unsigned long elementArea[MAX_ELEMENT_NUM],elementNetArea[MAX_ELEMENT_NUM];unsigned int cursorPeakBoundLeft,cursorPeakBoundRight;unsigned long cursorPeakArea,cursorPeakNetArea;(2)程序#define MAX_ELEMENT_NUM 20#define ScreenHeight 480#define ScreenWidth 640#define LineHeight 370#define LineWidth 500#define LineLeftX ((ScreenWidth-LineWidth)/2)#define LineRightX (LineLeftX+LineWidth)#define LineTopY 40#define LineBottomY (LineTopY+LineHeight)FILE* dataFile;int gdriver,gmode;unsigned long dataTable[1024],maxVal;int DisPos[500];/*实际显示的数据*/int OriPos[500];/*未处理前的数据*/int cursorX; float zoom;unsigned int cursorChannel;unsigned char dispLine;unsigned char energyMarked,elementLoaded,SpectrumLoaded,peakSeeked,cursorPeakseeked;int smoothLevel = 1,peakSeekLevel = 9;float a,b;/*能量刻度方程*/ char element[MAX_ELEMENT_NUM][2];unsigned char numOfElement,cursorElement; float elementEnergy[MAX_ELEMENT_NUM];unsigned int peakBound[MAX_ELEMENT_NUM][2];unsigned long elementArea[MAX_ELEMENT_NUM],elementNetArea[MAX_ELEMENT_NUM]; unsigned int cursorPeakBoundLeft,cursorPeakBoundRight;unsigned long cursorPeakArea,cursorPeakNetArea;w=input('input the width of the filter window:');for i=1:w k=i-ceil(w/2);end array_z = zeros(count+2*floor(w/2),1);for i=1:count+2*floor(w/2) if(i<=floor(w/2)) array_z(i)=array(-i+ceil(w/2));elseif(i>count+floor(w/2)) array_z(i)=array(-(i-floor(w/2))+2*count+1);else array_z(i)=array(i-floor(w/2)); end end a1=zeros(1,count);for j=1:w SMZ(j)=array_z(i+j-1);enda1(i)=SMZ*fwk; enddisp('下面开始输入对称零面积法寻峰');disp('下面开始输入对称零面积法的各参数');disp('如果是方波的话有k=1');K=input('请输入参数k=?:\n');H=input('请输入参数半宽度H=?(正奇数):\n');m=((2*K+1)*H-1)/2; w=2*m+1; b=input('请输入参数b=?:\n'); a=2*K*b; %K=4; %H=2*K+1; %w=3*H;%b=1; %a=2*K*b; m1=floor(w/2);temporary=zeros((count+2*m1),1);for i=1:count+2*m1 if(i<=m1);temporary(i)=a1(ceil(w/2)-i);elseif(i>(count+m1)) temporary(i)=a1(-(i-m1)+2*count+1);else temporary(i)=a1(i-m1); end end A=zeros(count,1);for i=ceil(w/2):count+m1; for j=-(w-1)/2:(w-1)/2;if abs(j)<=(H-1)/2; T=a;else T=-b;end A(i-m1,1)= A(i-m1,1)+T*temporary(i+j);end end for i=1:count; %数据转制SSiFENZI(i,1)=A(i,1);end B=zeros(count,1);for i=ceil(w/2):count+m1;for j=-(w-1)/2:(w-1)/2;if abs(j)<=(H-1)/2;T=a^2; else T=b^2;end B(i-m1,1)=B(i-m1,1)+T*temporary(i+j);endend for i=1:count;SSiFENMU(i,1)=B(i,1);end for i=1:count;SS(i,1)=SSiFENZI(i,1)/sqrt(SSiFENMU(i,1));end p=1; q=1; f=30;for i=1:count;if SSiFENZI(i)<0;fpdatablow(p,1)=i;fpdatablow(p,2)=SSiFENZI(i);p=p+1;elseif SS(i)>f;fpdataup(q,1)=i;fpdataup(q,2)=SSiFENZI(i);q=q+1; end end p=1; for i=2:length(fpdataup(:,1))-1;iffpdataup(i,2)>fpdataup(i+1,2)&&fpdataup(i,2)>fpdataup(i-1,2);mpeak(p,1)=fpdataup(i,1); p=p+1; end end for i=1:length(mpeak(:,1));j=mpeak(i); t=mpeak(i); peak(i)=t+(a1(t+1)-a1(t-1))/(2*a1(t)-a1(t+1)-a1(t-1))/2;disp('计算峰面积;下面采用总峰面积法');y1=zeros(1,length(mpeak));for i=1:length(mpeak)for j=(zuobianjic(i)+1):(youbianjic(i)-1)y1(i)=y1(i)+a1(j);ends(i)=y1(i)-(youbianjie(i)-1)*(a1(zuobianjie(i)))/2;endendenddisp(‘各个峰面积:’);sprintf('%d',s)七、体会在本次程序设计实习中,我再次学习了MFC编程方法。
核数据处理课程设计报告

核数据处理课程设计报告姓名:学号:班级:2012年月日目录一、设计目的和要求二、设计原理1、探测原理。
2、核数据处理的分析方法:谱光滑、寻峰、求峰面积。
三、任务实现1、计算器2、写数据到文件中3、按钮实现数据的读写4、显示图谱5、寻峰及道址换算6、求峰面积一、设计目的和要求1、掌握核辐射探测的原理及核数据处理的方法;2、了解图形程序的编写技能与技巧;3、掌握文件读写函数的使用;4、理解整个谱数据处理的流程;5、进一步掌握对常用核数据处理的基本方法。
二、设计原理1、探测原理。
什么是核辐射和核辐射探测?所谓核辐射是指在各种核跃迁中,从原子核中释放出来中子、质子、α粒子、β粒子、X射线、γ射线等。
由于它们本身具有波粒二象性,所以也将它们称为粒子或射线。
而核辐射探测主要是用各种类型和规格的核辐射探测器记录粒子数目,测定放射源的活度,确定粒子的质量、电荷、寿命、能量以及动量等。
在核辐射探测原理中,最基本的是利用带电粒子在物质中对物质原子产生的电离和激发效应或快速轻带电粒子穿过物质时的电磁效应。
X射线和γ射线在物质中没有直接电离和激发效应,因此,不能直接被探测到。
只有利用它们在物质中的光电效应、康普顿散射和电子对产生效应等产生的次级电子再引起的电离和激发才能探测到。
射线与物质的相互作用主要有三个过程:光电效应、康普顿效应、电子对效应1.1 光电效应光子通过物质时和物质原子相互作用,光子被原子吸收后发射轨道电子的现象,称为光电效应,也称光电吸收。
光电效应发出来的电子叫做光电子。
光电效应、特征X射线和俄歇电的发射示意图光电子可以从原子的K、L、M等各壳层中发射出来。
在光电效应过程中,因为动量守恒要求,除入射光子和光电外,还必需有第三者参加,即原子核,严格的讲是发射光电子之后余下的整个原子。
所以自由电子不能产生光电效应,而且原子的内层电子由于受到原子核的强束缚更容易满足动量守恒而更容易发射光电子。
一般的说,如果入射光子的能量超过K层电子结合能,那么,大约80%的光电吸收发生在K层电子上。
成都理工大学数据库实验报告

本科生实验报告实验课程《数据库》学院名称专业名称学生姓名学生学号指导教师实验地点实验成绩二〇一五年三月二〇一五年四月学生成绩管理系统设计第一章系统规划1.1设计背景及目的传统的学生成绩管理工作主要是成绩登记、成绩查询、学生信息查询。
该工作主要由任课教师来完成。
由于随着教师授课班级学生人数规模的持续壮大,学生的各种信息也不断增加。
面对庞大的信息量,传统的人工式的学生管理导致工作繁重,人力物力过多的浪费,况且工作质量也难以得到可靠的保证,往往导致一系列错误的发生,从而影响了整个学生信息的管理。
时代的进步,计算机越来越广泛的运用,原先主要由手工操作的学生信息管理,正在慢慢的由计算机代替,并且日益完善。
学生信息管理系统就是为了解决和减轻繁琐的手工管理,使教师对学生信息可以上升到一个完善的电子化,信息化管理。
在全球信息化的今天,是同计算机进行生产和管理已经成为一种趋势。
计算机可以为我们选择最优的方案来达到我们的要求。
在面对越来越繁重的教学任务环境下,使用计算机管理可以最大程度减少操作难度,减轻教师的工作负担。
实现“以人为本,科学管理“的目标。
1.2可行性分析学生信息管理系统是利用计算机技术使学生个人信息管理、成绩查询、成绩登记更改等有机的结合在一起方便教师进行统一高效率的管理。
对于系统的结构特性设计,应遵循提高系统实用性和操作简便灵活性的设计的原则。
1.2.1经济性可行性研究目前计算机广泛应用于各个领域,尤其是在数据处理方面表现出了巨大的优势,利用计算机将各种复杂的数据,都制作成数据库,交由电脑来管理。
用电脑管理数据,可以最大程度减少操作难度,减轻工作人员的劳动负担,并且运算速度快,可靠性高。
这使得创建一个好的信息管理系统成为一个必要的工作。
但是,建立学生成绩管理系统在经济上是否可行呢?一方面,随着计算机的普及,硬件设备价格不断下降。
建立学生成绩管理系统的费用并不是十分的昂贵。
通常一个小型的学生成绩管理系统只需一台普通计算机。
成都理工辐射防护试验四

实验四:β射线和中子的辐射屏蔽模拟一、实验目的1、掌握辐射防护模拟软件的使用;2、通过不同屏蔽材料、不同屏蔽厚度的模拟,了解β射线防护和屏蔽的效果;3、通过不同能量中子、不同屏蔽材料、不同屏蔽厚度的模拟,了解中子的屏蔽特点和效果。
二、实验原理辐射防护实验模拟软件,通过调用蒙特卡罗模拟软件的方式实现程序的链接,不受辐射源、材料等实验条件的限定。
通过参数的调节,可以研究射线的防护。
实验一为主要模拟β射线的屏蔽效果,以本次设计所用的错误!未找到引用源。
的β源为例,其β射线能量在0-2.28MeV之间。
错误!未找到引用源。
的半衰期为28.6年,它发射的β粒子最大能量为0.546MeV,错误!未找到引用源。
衰变后成为错误!未找到引用源。
,的半衰期为64.1小时,它发射的β粒子最大能量是2.27MeV,衰变后成为错误!未找到引用源。
,因而在0至2.27MeV的范围内形成连续的能谱。
该模拟选择了比较简单的模型,减少其他参数带来的影响。
如图1所示,由于β射线很容易被屏蔽,所以整个设定是在真空中的空间中屏蔽层为可调厚度、可变材料的圆盘。
空间4为检测栅元,用于检测粒子注量,以检测屏蔽效果。
材料中建立了两种不同的材料分别是铝和锡,射线类型选择了束状射线,通过计数卡记录相关问题。
图1 β射线屏蔽模拟实验的模型实验二是对中子屏蔽的模拟实验。
可以选用不同的材料、不同的中子能量、不同的屏蔽厚度进行实验。
如用铜、钨、铅、水、硼砂这几种材料作为屏蔽材料对14MeV能量的快中子进行慢化模拟,每种材料的模拟厚度可以自行调整,得到屏蔽后的中子通量,比较这几种材料的慢化效果,并选取最佳慢化材料以及最佳厚度;对于1MeV能量的中子,选取聚乙烯、聚氯乙烯、水、石蜡、硼砂进行屏蔽模拟,每种材料的模拟厚度也可以自行调整。
基于研究材料屏蔽性能的需要,建立了一个半径为100cm球体(球心为坐标原点)空间内建立屏蔽层模型,该模型由4个空间组成(如图2)。
成都理工大学工程技术学院

成都理工大学工程技术学院核辐射探测实验课程教案教师姓名所在系部能源与环境工程系授课专业核工程与核技术课程代码总学时学分教材名称核辐射探测实验设备清单:1000ml直量筒、玻璃杯(加水用)4.实验步骤(1)固定放射源、探测器和量筒(物料容器)的几何位置,按照设备连接框图连接图3.1 高斯正态分布曲线计数器工作状态的调整计数器是气体探测器的一种。
在实验2中已经使用过。
在其阴极和阳极之间所加高电压的高低直接决定其工作状态。
其电压特性表示如图段的后部﹚,应立即降低高压,不必测量完整的坪曲线,避免损坏计数器,段的前部。
图3.2 G-M计数器电压特性曲线实验步骤1)熟悉所使用的设备和电路插件。
按设备连接框图连接好各个插件。
经教师检查后再接通电源。
2)将高压电源调节旋扭调到最低。
单道分析器处于积分状态。
)放好放射源﹙距探测器约5 cm﹚。
打开高压电源,逐渐升高高压电源电压;在不同高压点,用定标器记录单道分析器输出信号的计数率。
测定曲线”。
并选定其工作电压。
将高压调到工作电压位置。
)移开放射源,测量实验室本底,这时计数率应很低。
若仍然较高,说明有大量图3.3 计数散点图阴影部分面积占总面积60.6%图3.4 计数直方图)数据统计计算平均值N。
计算标准误差σ。
统计在N±σ范围之内所占面积与总面积之比。
二、教学方法和手段、师生互动通过基本理论讲授,使学生学习基本的理论知识和分析解决问题的方法,深学生对所学知识点的掌握。
鼓励学生提问题,并随时解答学生的问题。
让学生成立小组做实验,通过互帮使大部分同学达到本实验要求。
通过思考题使学生巩固所学知识。
三、时间安排:3学时。
成都理工大学电离辐射计量学 辐射剂量学实验3方案

实验一内照射剂量估算一、实验目的1、学习indo2012内照射估算软件的基本使用方法;2、通过软件估算加深内照辐射对器官形成损害的认识;3、了解影响内照辐射损伤程度的若干因素;4、通过对碘、钾、锶等放射性同位素的内照估算实例,学习不同放射性核素的器官分布特点;二、实验原理内照射是指放射性物质经呼吸道、消化道、皮肤、粘膜和伤口以及其他各种途径进入机体后,放射性核素发出的核射线由体内对机体进行的照射。
放射性物质进入人体内主要有三种途径:呼吸吸入、口腔食入、创伤皮入,造成体内污染。
上述几种途径中,以呼吸道入体的毒理学意义最大。
经消化道进入:放射性核素吸收率最高的是碱族元素(钠、钾、铯)和某些非金属元素(碘、碲),可达90%以上;其次是碱土族元素(锶、钡)为10%~40%;镧系和锕系元素的吸收率最低,约为0.01%~0.1%。
工作人员有时用口接触被放射性污染的器具、物品,或环境受到放射性污染,通过食物、饮用水等导致居民和工作人员长时间摄入放射性物质。
胃肠道对核素的吸收率主要取决于化学性质,碱族和卤族元素极易溶雨水,吸收率较高。
经呼吸道进入:放射性核素可以气态、气溶胶或微小粉尘的形式存在于空气中,气态放射性核素(氡、氙、氚)易经呼吸道粘膜或透过肺泡被吸收入血。
粉尘或气溶胶态的放射性核素在呼吸道内的吸收决定于粒径大小及化合物性质。
一般粒径愈大,附着在上呼吸道粘膜上愈多,进入肺泡内愈少,吸收率低。
难溶性化合物在肺内溶解度很低,多被吞噬;而可溶性化合物则易被肺泡吸收入血。
粒径大于1μm者,大部分被阻滞在鼻咽部、气管和支气管内;粒径在0.01~1μm的落下灰危害最大,大部分沉积在肺部(包括细支气管、肺胞管、肺泡、肺泡囊)。
部分吸收入血,部分被吞噬细胞吞噬后滞留在肺内成为放射灶。
沉积在鼻咽部,气管和支气管的放射性灰尘大部分通过咳痰排出体外或吞入胃内,仅少部分吸收入血。
经伤口和皮肤粘膜进入:当皮肤创伤时,放射性物质通过伤口进入,吸收率较高。
成都理工大学操作系统实验报告

操作系统实验报告姓名:杨斌彬学号:201113020101专业:电子信息科学与技术专业1班实验1-1指令ls使用实验1-2指令mkdir使用实验1-3指令rmdir使用实验1-4指令pwd 与cd使用实验3-1通过getpid()和getppid()系统调用察看进程编号。
实验步骤1.输入程序 gedit sys41.c2.编译连接 gcc sys41.c –o sys41.out3.运行 ./ sys41.out4.重新打开一个终端,使用 ps –l 查看进程状态,验证getpid()和getppid()系统调用,注意父子进程的关系。
结果如下实验3-2通过fork()系统调用创建子进程。
实验步骤1.先考虑一下,程序的输出结果是什么。
2.编译连接 gcc sys42.c –o sys42.out3.运行 ./ sys42.out注意观察程序的输出重新打开一个终端,用ps -e命令查看父亲和儿子进程结果如下实验3-3练习fork()系统调用创建子进程。
wait()系统调用父进程等待子进程退出,然后父进程退出。
实验步骤1.先考虑以下,程序的执行结果是什么。
2.编译连接 gcc sys43.c –o sys43.out3.后台运行 ./ sys43.out4. 反复使用ps –l命令查看运行情况,注意父子进程关系;注意观察子进程退出,然后父进程退出的过程。
结果如下实验3-4用fork系统调用创建一个子进程,并由子进程调用execve启动shell的ps命令,查看系统当前的进程信息。
实验步骤1.输入如下程序(sys44.c)2.编译后,生成可执行程序sys44.3.执行:sys44。
4.记录结果。
结果如下实验71 .研读Linux系统目录下对文件调用的相源程序文件,理解源程序的设计思想和编程技巧。
2.掌握使用系统调用编制文件操作的程序。
实验步骤输入:./sys71 read输出:[read mode]this is a test file for sys71.bye.(“test.txt”文件内容)输入:./sys71 write从键盘输入:I am a student.输出: [write mode]I am a student.结果如下。
放射性核素的剂量计算设计

成都理工大学工程技术学院毕业论文放射性核素的剂量计算设计作者姓名:严俊专业名称:核工程与核技术指导教师:张艳丽讲师放射性核素的计量计算设计摘要辐射剂量的计算在辐射防护、环境监测、辐射调查等多方面都有非常重要的应用。
基于此,本论文根据探测器测得的粒子注量,粒子能量、以及周围介质的吸收系数等,设计出了一种计算监测点处辐射剂量大小的一种思路。
在论文中,我们将实测值与计算值作了比较,比较结果发现,两者的变化趋势吻合较好,但是两者在数值大小上略有差别,本论文就此做了详细的分析。
关键字:粒子注量能量注量吸收剂量剂量当量闪烁体探测器AbstractRadiation dose calculation has very important aspects of the application in radiation protection, environment monitoring, radioation investigation,etc. Based on this, the paper designs a train of thought about how to calculate the size of the radiation dose on the monitoring place according to the particle fluence measured by the probe, particle energy , and the absorption coefficient of the surrounding media. In the paper, we have compared the measured values with the calculated values. The results shows that the variation trend of the measured values with the calculated values are better matched, but they have a slightly difference in numerical size, this paper made a detailed analysis of this.Keywords:particle fluence, energy note amount, absorb dose, dose equivalent, scintillation detectors目录摘要 (I)Abstract (II)目录 (III)前言 (1)1探测器的分类及特点 (2)1.1闪烁体探测器的简介 (2)1.1.1闪烁体的基本组成和工作原理 (2)1.1.2闪烁体探测的分类 (2)1.2气体探测器的简介 (3)1.3半导体探测器的简介 (3)1.4各种探测器优缺点 (3)1.4.1气体探测器的优缺点 (3)1.4.2闪烁体探测器的优缺点 (4)1.4.3半导体探测器的优缺点 (4)2辐射防护与辐射剂量学中常用的物理量 (5)2.1辐射防护中常用的物理量 (5)2.1.1放射性活度 (5)2.1.2粒子注量与粒子注量率 (5)2.1.3能量注量与能量注量率 (6)2.1.4相互作用系数 (7)2.2辐射剂量学中的物理量 (8)2.2.1吸收剂量 (8)2.2.2授予能 (8)2.2.3比释动能与比释动能率 (9)2.3其它常用的物理量 (10)2.3.1照射量 (10)2.3.2剂量当量概念及单位 (10)2.4物理量之间的关系 (11)2.4.1粒子注量与能量注量的关系 (11)2.4.2吸收剂量与比释动能的关系 (11)2.4.3照射量与吸收剂量率之间的关系 (12)3辐射剂量计算设计思路 (14)3.1设计思路简述 (14)3.2实验测量某点的粒子注量 (14)3.2.1实验目的 (14)3.2.2实验仪器设备及连接框图 (15)3.2.3实验步骤 (15)3.2.4实验数据 (16)3.3辐射剂量计算 (16)3.3.1实测值与计算值的比较 (17)3.3.2误差分析 (18)总结 (19)致谢 (20)参考文献 (21)前言辐射与物质(包括生物体)发生作用,引起物理、化学和生物学等方面变化。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序设计课程设计(论文)
设计(论文)题目
谱的显示、谱光滑、定量分析(峰面积)程序学院名称核技术与自动化工程学院
专业名称辐射防护与环境工程
学生姓名袁子程
学生学号201106080112
任课教师马永红
设计(论文)成绩
教务处制
2015年 1 月10 日
一、实习目的
学习使用各种编程软件,利用计算机工具开展专业信息处理工作。
使用面向对象编程思想实现谱数据处理功能以及谱显示功能。
二、人员组成及分工
本人题目为:谱的显示、谱光滑、定量分析(峰面积)程序
具体要求:
多项式最小二乘拟合实现谱光滑
对称零面积法实现寻峰
Wasson(瓦森、沃森)峰面积法实现峰面积计算
寻峰应在5、7、9、11之间可选,讨论最佳参数
三、实习计划
1.首先进行MFC绘图区域的学习和了解,实现基本绘图功能
2.建立单文档MFC程序,设计一个合理美观的工作区
3.实现文件打开读取功能,并能打开不同文件
4.进行谱数据处理的算法编写
5.编写成谱图形功能并给出处理结论
四、主要工作介绍(详细介绍实习中各功能的实现方法、理论公式和计
算原理,程序流程图和程序运行界面截图等成果信息)
1.建立单文档类MFC可执行程序
2.建立绘图区函数,初始化绘图设备
3.添加文件打开虚函数
4.编写读取文件及初步寻峰代码
5.添加绘制谱图代码
6. 尝试读取mca 文件
7. 添加谱数据处理代码
①多项式最小二乘拟合法:
∑-=+=
m
m
j j
i j
b
i data
A K data 1
,b=2m+1,为平滑宽度。
实际代码:
//多项式最小二乘法谱光滑(参数为5) for( i=2;i<1023;i++)
{
data[i]=1/35*((-3)*data[i-2]+12*data[i-1]+17*data[i]+12*data[i+1]+(-3)*d
ata[i+2]); }
②零面积对称法:
基本思想:面积为零的“窗”函数与实验谱数据进行褶积变换,且要求“窗”函数为对称函数。
数学表达式:j j m
m
j j
m
m
j j
i j
i C C C
data
C y --=-=+===∑∑0
~
其中,i y ~为变换后的谱数据,data i+j 为原始实验谱数据,C j 为对称零面积变换函数,W=2m +1为窗宽(变换宽度)。
对称零面积变换函数:∑-==
-=m
m
j j
j j G
W
d d
G C 1
G j :[]
⎪⎪
⎪⎩⎪⎪⎪⎨⎧==+=-=)634.2(sec ))2(cos )4))(2ln 4exp )22
2
2
2H j h G d H j G c j H H G b H j G a j j j j 双曲正割函数:
余弦平方函数:柯西函数:高斯函数:π 实际代码:
//零面积对称法寻峰(m=16,W=11,H=4) for( i=16;i<1007;i++) { for(j=0;j<16;j++) G[i]+=G[j]; d=1/11*G[i]; C[i]=G[i]-d;
}
for( i=16;i<1007;i++) { if((yi/dy)>f) feng[k++]=data[i];
}
③Wasson (瓦森、沃森)峰面积法: 计算总面积:∑-=+=
n
n
i i
i data
S 0
计算本底面积:
L L
R n data n L i L R data data b +----=
-)(0
L L
R n data n L i L
R data data b ++---=)(0
)21)((2
1
2)(++=++=--n b b n b b B n n n n
计算净峰面积:B S A -=
实际代码:
// Wasson (瓦森、沃森)峰面积法:
for (i=L;i<=R;i++)
{
RL=right-left;
n=(right-left)/2;
im=(right+left)/2;
S+=data[i];
BL=(data[L]-data[R])/RL*(im-L-n)+data[L];
BR=(data[L]-data[R])/RL*(im-L+n)+data[L];
B=(BL+BR)*(n+1/2);
A=S-B;
}
计算峰位能量
//根据能量刻度系数求峰位能量
/* for( i=0;i<1023;i++)
{
E[i]=0.017584*i-0.138133;
}
for( j=0;j<1024;j++)
{
if(E[dao[j]]<(6.403-6.403*0.1)||E[dao[j]]>(6.403+6.403*0.1)) ch[dao[j]]="Fe";
else if(E[dao[j]]<(7.477-7.477*0.1)||E[dao[j]]>(7.477+7.477*0.1))
ch[dao[j]]="Ni";
else if(E[dao[j]]<(8.047-8.047*0.1)||E[dao[j]]>(8.047+8.047*0.1))
ch[dao[j]]="Cu";
else if(E[dao[j]]<(8.638-8.638*0.1)||E[dao[j]]>(8.638+8.638*0.1))
ch[dao[j]]="Zn";
else if(E[dao[j]]<(10.5-10.5*0.1)||E[dao[j]]>(10.5+10.5*0.1))
ch[dao[j]]="Ap";
else if(E[dao[j]]<(11.725-11.725*0.1)||E[dao[j]]>(11.725+11.725*0.1)) ch[dao[j]]="As";
else if(E[dao[j]]<(12.611-12.611*0.1)||E[dao[j]]>(12.611+12.611*0.1)) ch[dao[j]]="Ni";
} */
8.调试运行
五、体会
在本次程序设计实习中,我再次学习了MFC编程方法。
过程中,我遇到了许多曾经都没有遇到的问题,比如文件的打开,文件按钮
虚函数的添加,绘图无效等。
在一步一步解决这些问题的同时,渐渐进一步的熟悉掌握了谱数据处理的方法和编程思想。
但是依旧有一个问题尚未解决,那就是数据类型的变化。
这个使得我无法在数据处理中正确地获取应有的结果。
令我费解的是成
谱图像却是与原始数据非常的吻合。
对于这个问题我依然百思不得
其解。
六、建议
我对本门课程的掌握程度也非常有限,提出以下建议供老师和学弟学妹们参考。
1.MFC编程时一个系统过程,需要掌握的细节可以随时网上学
习,但是总体思路要牢记,不容易临时掌握。
2.对于本专业同学们而言,这次实习是扩展我专业同学技能的大
好机会,建议不要轻易放弃,认真编写,即使最后没有达到自己预
期的计划也是收获颇丰的。
3.在编写的过程中要有良好的格式及注释习惯,以免一段时间甚
至几分钟后就看不懂自己的思路。
4.在编写算法过程中,一定要回归理论,弄明白实际数学过程,
对算法的编写很有帮助。
5.希望老师能够对非算法部分给予同学更多的帮助,教授同学建立软件的过程,指导同学完成非专业的部分,让同学着眼于数学导算法的翻译。
最后,衷心感谢在本次程序设计实习过程中,马永红老师细心的指导,您不厌其烦地解答我的各种疑问,并且帮助我寻找原始数据的数据格式和数据类型。
我还要感谢芦瑞琪、蒋卓辰同学对我在思路上的重要启发,谢谢你们给予我的大力支持!
附:程序包附在附件中,项目名称为37gai。