- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据处理与能谱分析
随着计算机技术的发展,利用计算机处理实验数据也越来越常见,随之如来就产生了许多的软件如:Matlab 、 Excel、CAD等等, 但一般这些软件在处理物质放射性衰变时都比较繁琐,因此在处理放射性物质衰变时的数据时,就必须自己依照其规律制作数据处理软件来探究该物质的各种性质,从而来确定该物质的类型以及其运用。
我们要使用C++平台和C语言来制作软件及编写对应的响应函数,在进行实验时我们把我们利用专业仪器测得的数据按照要求记录并保存在一个TXT文件中,使用C语言来编写程序对文件里的数据进行读写和操作;例如:调用文件打开函数(fopen)和关闭函数(fclose)语句来对文件进行打开和关闭处理,调用读写语句对文件内的数据进行察看和编写fscanf(fp,”%d %d”,I,t)、fprintf(fp,”%d %d”,I,t)。
制作EXE软件来对数据进行图谱显示:
在相应的操作界面放置相应的显示框图和对应的按钮,如下图
然后给框图和按钮赋地址,并添加相应的变量和相应函数。最后组建编译运行。软件运行后先点击数据读写按钮在点击原始图谱按钮最后点击五点平滑按钮就得到了该物质数据图谱。如下图所示:
注:横坐标为道址、纵坐标为计数率
添加相应的数据输出框和按钮如:峰值、道值、面积。最后再添加相应的响应函数,再编译运行。得到如下图所示的图谱:
至此我们利用C语言对数据处理和能谱分析已经结束,最后我们在根据图谱的形状、峰值、道值以及各个部分的面积来确定物质衰变的性质和物质本身的性质,最终来确定放射性物质的用途。
附件:部分响应函数
数据读写程序:
void CShiyanDlg::OnReadfile()
{
// TODO: Add your control notification handler code here
FILE *fp;
int datanum=0;
int i;
int data1,data2;
if((fp=fopen(090623.txt,r))==NULL)
{ printf(Cannot open the file.\n);
exit(0);
}
while(!feof(fp))
{
fscanf(fp,%d %d,data1,data2);
data[datanum++]=data2;
fscanf(fp,\n);
}
for(i=0;i2048;i++)
{
if( i2||i2045)
data_ph[i]=data[i];
else
data_ph[i]=(data[i-2]+4*data[i-1]+6*data[i]+4*data[i+1]+data[i+2])*1.0/16.0;
printf(%d %f\n,i+1,data_ph[i]);
}
fclose(fp);
if((fp=fopen(out.txt,w))==NULL)
{
printf(file open error.\n);
exit(0);
}
for(i=0;i2048;i++)
{
fprintf(fp,%d %f\n,i+1,data_ph[i]);
}
fclose(fp);
}
原始图谱响应函数:
void CShiyanDlg::OnYuantu()
{
// TODO: Add your control notification handler code here
double xViewport,yViewport;
int max;
CWnd *pWnd=GetDlgItem(IDC_P1);
CDC *pDC =pWnd-GetDC();
pDC-SetMapMode(MM_ANISOTROPIC);
CRect rect;
double scale;
GetDlgItem(IDC_P1)-GetWindowRect(rect);
scale=25.4*10/pDC-GetDeviceCaps(LOGPIXELSX);
CDC MemDC;
CBitmap MemBitmap;
MemDC.CreateCompatibleDC(NULL);
MemBitmap.CreateCompatibleBitmap(pDC,rect.Width(),rect.Height());
MemDC.FillSolidRect(0,0,rect.Width(),rect.
文档评论(0)