本发明涉及光纤温度分布测试仪领域,具体涉及光纤温度分布测试仪光纤长度自动校准及自动测试方法。
背景技术:
光纤温度分布测试仪(又称拉曼光时域反射计,简称rotdr)由于分布式可连续、测试距离长、耐腐蚀、本质安全、抗电磁干扰、抗雷击、寿命长等特点已广泛用于电力电缆测温度监测、智能管廊温度监测、输油储油设施温度监测及火灾预警等领域,但是在rotdr的研制、生产及使用过程中,对温度检测及火灾预警的定位是否准确严重依赖于对光纤长度的准确计算与校准。
目前对于rotdr光纤长度校准主要依赖于人工手动校准,通过人为手动对光纤温度曲线、斯托克斯曲线或反斯托克斯曲线进行分析,实现对光纤长度的校准,由于人工分析中主观因素较多,会影响校准效果;而且人工手动校准效率很低,难以满足rotdr生产、使用过程中的需求;同时人工手动校准也导致人工成本增加。
技术实现要素:
针对现有的光纤温度分布测试仪光纤长度校准主要依赖于人工手动校准,效率很低,难以满足光纤温度分布测试仪生产、使用过程中的需求的问题,本发明提供了光纤温度分布测试仪光纤长度自动校准及自动测试方法。
本发明采用以下的技术方案:
一种光纤温度分布测试仪光纤长度自动校准及自动测试方法,包括以下步骤:
步骤101:启动光纤温度分布测试仪,断开被测光纤;
步骤102:启动光纤长度自动校准功能,输入光纤实际长度fl,光纤1550nm折射率ir_in,1550nm折射率ir_in可由光纤厂家给出,设置反斯托克斯光折射率ir_as为ir_in,设置斯托克斯光折射率ir_s为ir_in,设置空间分辨率参数sfr为1m,采样分辨率samf为0.2m,设置测试量程fr=光纤长度fl+1km,设置内部光纤斯托克斯补偿数据长度dc_s为0,内部光纤反斯托克斯补偿数据长度dc_as为0,计算测试数据数目n,n的典型值大于等于(光纤长度fl+1km)÷采样分辨率samf;
步骤103:启动光纤末端长度计算功能,计算内部光纤斯托克斯曲线末端pfs_s为fs_s,内部光纤反斯托克斯曲线末端pfs_as为fs_as;
步骤104:将被测光纤接入光纤温度分布测试仪;
步骤105:再次启动光纤末端长度计算功能,计算被测光纤斯托克斯曲线末端pfe_s为fs_s,被测光纤反斯托克斯曲线末端pfe_as为fs_as;
步骤106:读取斯托克斯距离数据dsx[0~n],该数据通过斯托克斯光折射率ir_s以及采样分辨率samf计算得到;,反斯托克斯距离数据dasx[0~n],该数据通过反斯托克斯光折射率ir_as以及采样分辨率samf计算得到;计算斯托克斯数据光纤测试长度s_dl为dsx[pfe_s]和dsx[pfs_s]的差值,反斯托克斯数据光纤测试长度as_dl为dasx[pfe_as]和dasx[pfs_as]的差值;
步骤107:计算ir_s为(2*s_dl/fl-1)*ir_in,ir_as为(2*as_dl/fl-1)*ir_in;
步骤108:根据ir_s与ir_as重新计算dsx[0]到dsx[n]、dsax[0]到dsax[n];
步骤109:设置dc_s为dsx[pfs_s],dc_as为dsax[pfs_as];
步骤110:启动光纤末端长度计算功能,计算被测光纤斯托克斯曲线末端pfe_s为fs_s,被测光纤反斯托克斯曲线末端pfe_as为fs_as;
步骤111:判断dsx[pfe_s]与fl差值的绝对值是否小于sfr,如果是,转步骤112,否则转步骤115;
步骤112:判断dsax[pfe_as]与fl差值的绝对值是否小于sfr,如果是,转步骤113,否则转步骤115;
步骤113:判断dsx[pfe_s]与dsax[pfe_as]差值的绝对值是否小于sfr,如果是,转步骤114,否则转步骤115;
步骤114:校准成功,结束;
步骤115:校准失败,检查光路,结束。
优选地,步骤103,步骤105和步骤110的光纤长度末端计算功能具体步骤如下所示,通过对斯托克斯测试数据与反斯托克斯数据分析,实现光纤长度末端的准确计算与识别:
步骤:10301:启动温度分布测试功能,等待测试完毕;
步骤10302:读取斯托克斯测试数据ds[0~n],反斯托克斯测试数据das[0~n],读取测试数据数目n;
步骤10303:计算斯托克斯测试数据噪声dns为ds[n-500]到ds[n]的平均值,反斯托克斯测试数据噪声dnas为das[n-500]到das[n]的平均值;
步骤10304:计算去除噪声斯托克斯数据ds_sn[0]到ds_sn[n]分别为ds[0]-dns到ds[n]-dns的值,去除噪声反斯托克斯数据das_sn[0]到das_sn[n]分别为das[0]-dnas到das[n]-dnas的值;
步骤10305:根据ds_sn[0]到ds_sn[n]的去除噪声斯托克斯数据,das_sn[0]到das_sn[n]的去除噪声反斯托克斯数据,计算内部光路斯托克斯曲线末端fs_s,反斯托克斯曲线末端fs_as;
步骤10306:输出斯托克斯光纤长度fs_s,反斯托克斯光纤长度fs_as,结束。
优选地,步骤10305具体包括以下步骤:
步骤201:读取ds_sn[0]到ds_sn[n]的去除噪声斯托克斯数据,das_sn[0]到das_sn[n]的去除噪声反斯托克斯数据,读取测试空间分辨率参数sfr,采样分辨率samf;
步骤202:计算分解层数ssrn为sfr÷samf的值向上取整,设置i为0,m为0,sfr典型值为1m,samf典型值为0.2m,且samf小于sfr,mm为n/ssrn;
步骤203:计算对数分解斯托克斯数据ds_sn_ssr[i][m]为ds_sn[m*ssrn+i]的对数,计算对数分解反斯托克斯数据das_sn_ssr[i][m]为das_sn[m*ssrn+i]的对数;
步骤204:判断m是否大于mm,如果是,转步骤206,否则转步骤205;
步骤205:设置m的值加1,并转步骤203再次进行计算;
步骤206:判断i是否大于ssrn,如果是,转步骤208,否则转步骤207;
步骤207:设置l的值加1,并转步骤203再次进行计算;
步骤208:设置j为0,i为0,设置末端判定阈值eth,典型值为2db/m*sfr;
步骤209:计算对数分解斯托克斯差分数据ds_sn_ssr_diff[i][j]为ds_sn_ssr[i][j]和ds_sn_ssr[i][j+1]的差值,计算对数分解反斯托克斯差分数据das_sn_ssr_diff[i][j]为das_sn_ssr[i][j]和das_sn_ssr[i][j+1]的差值;
步骤210:判断j是否大于mm-1,如果是,转步骤212,否则转步骤211;
步骤211:设置j的值加1,并转步骤209再次进行计算;
步骤212:记录ds_sn_ssr_diff[i][0]到ds_sn_ssr_diff[i][mm-1]中所有大于eth的值,存入波包数组ds_sn_ssr_fewave[i][0]到ds_sn_ssr_fewave[i][mm-1]中,记录das_sn_ssr_diff[i][0]到das_sn_ssr_diff[i][mm-1]中所有大于eth的值,存入波包数组das_sn_ssr_fewave[i][0]到das_sn_ssr_fewave[i][mm-1]中;
步骤213:判断i是否大于ssrn,如果是,转步骤215,否则转步骤214;
步骤214:设置l的值加1,并转步骤209再次进行计算;
步骤215:根据ds_sn_ssr_fewave[0][0]到ds_sn_ssr_fewave[ssrn][mm-1]、ds_sn_ssr_diff[0][0]到ds_sn_ssr_diffssrn][mm-1]与ds_sn_ssr[0][0]到ds_sn_ssr[ssrn][mm]进行计算,得到光纤长度fs_s;
根据判断条件对das_sn_ssr_fewave[0][0]到das_sn_ssr_fewave[ssrn][mm-1]、das_sn_ssr_diff[0][0]到das_sn_ssr_diff[ssrn][mm-1]与das_sn_ssr[0][0]到das_sn_ssr[ssrn][mm]进行计算,得到光纤长度fs_as;
步骤216:输出斯托克斯光纤长度fs_s,反斯托克斯光纤长度fs_as,结束。
优选地,步骤212多重差分波包判定数组计算步骤包括:
步骤21201:设置jj为0,读取i的值,ds_sn_ssr_fewave[i][0]到ds_sn_ssr_fewave[i][mm]全部设置为0;
步骤21202:判断ds_sn_ssr_diff[i][jj]是否大于等于eth,如果是,转步骤21203,否则转步骤21209;
步骤21203:设置临时计数变量tempj为jj+1,并转步骤21204;
步骤21204:判断ds_sn_ssr_diff[i][tempj]是否大于等于eth,如果是,转步骤21207,否则转步骤21205;
步骤21205:判断tempj是否大于等于mm-1,如果是,转步骤21207,否则转步骤21206;
步骤21206:设置tempj为tempj+1,并转步骤21204再次进行判断;
步骤21207:设置ds_sn_ssr_fewave[i][jj]到ds_sn_ssr_fewave[i][tempj-1]全部为1,并转步骤21208;
步骤21208:设置jj为tempj,并转步骤21202;
步骤21209:判断ds_sn_ssr_diff[i][jj]是否小于等于-1*eth,如果是,转步骤21210,否则转步骤21215;
步骤21210:设置tempj为jj+1,并转步骤21211;
步骤21211:判断ds_sn_ssr_diff[i][jj]是否小于等于-1*eth,如果是,转步骤21214,否则转步骤21212;
步骤21212:判断tempj是否大于等于mm-1,如果是,转步骤21214,否则转步骤21213;
步骤21213:设置tempj的值加1,并转步骤21211再次进行判断;
步骤21214:设置ds_sn_ssr_fewave[i][jj]到ds_sn_ssr_fewave[i][tempj-1]全部为-1,并转步骤21208;
步骤21215:判断jj是否大于等于mm-1,如果是,转步骤21217,否则转步骤21216;
步骤21216:设置jj的值加1,并转步骤21202;
步骤21217:设置jj为0,读取i的值,das_sn_ssr_fewave[i][0]ds_sn_ssr_fewave[i][mm]全部设置为0;
步骤21218:判断das_sn_ssr_diff[i][jj]是否大于等于eth,如果是,转步骤21219,否则转步骤21225;
步骤21219:设置tempj为jj+1,并转步骤21220;
步骤21220:判断das_sn_ssr_diff[i][tempj]是否大于等于eth,如果是,转步骤21223,否则转步骤21221;
步骤21221:判断tempj是否大于等于mm-1,如果是,转步骤21223,否则转步骤21222;
步骤21222:设置tempj为tempj+1,并转步骤21220再次进行判断;
步骤21223:设置das_sn_ssr_fewave[i][jj]到das_sn_ssr_fewave[i][tempj-1]全部为1,并转步骤21224;
步骤21224:设置jj为tempj,并转步骤21218;
步骤21225:判断das_sn_ssr_diff[i][jj]是否小于等于-1*eth,如果是,转步骤21226,否则转步骤21231;
步骤21226:设置tempj为jj+1,并转步骤21227;
步骤21227:判断das_sn_ssr_diff[i][jj]是否小于等于-1*eth,如果是,转步骤21230,否则转步骤21228;
步骤21228:判断tempj是否大于等于mm-1,如果是,转步骤21230,否则转步骤21229;
步骤21229:设置tempj的值加1,并转步骤21217再次进行判断;
步骤21230:设置das_sn_ssr_fewave[i][jj]到das_sn_ssr_fewave[i][tempj-1]全部为-1,并转步骤21224;
步骤21231:判断jj是否大于等于mm-1,如果是,转步骤21233,否则转步骤21232;
步骤21232:设置jj的值加1,并转步骤21218;
步骤21233:输出ds_sn_ssr_fewave[i][0]到ds_sn_ssr_fewave[i][mm]的值,
输出das_sn_ssr_fewave[i][0]到das_sn_ssr_fewave[i][mm]的值,结束。
优选地,步骤215根据多重分解差分波包数组计算综合累加权重波包数组的步骤包括:
步骤21501:读取ds_sn_ssr_fewave[0][0]到ds_sn_ssr_fewave[ssrn][mm-1]、ds_sn_ssr_diff[0][0]到ds_sn_ssr_diff[ssrn][mm-1]、ds_sn_ssr[0][0]ds_sn_ssr到[ssrn][mm]的值,
读取das_sn_ssr_fewave[0][0]到das_sn_ssr_fewave[ssrn][mm-1]、das_sn_ssr_diff[0][0]到das_sn_ssr_diff[ssrn][mm-1]、das_sn_ssr[0][0]到das_sn_ssr[ssrn][mm]的值;
步骤21502:设置jj为0,ii为0,斯托克斯数据综合累加权重波包临时数组ds_sn_ssr_fewave_t[0~mm]全部设置为0;
步骤21503:计算ds_sn_ssr_fewave_t[jj]的值为ds_sn_ssr_fewave_t[jj]加ds_sn_ssr_fewave[ii][jj];
步骤21504:判断ii是否大于等于ssrn,如果是,转步骤21506,否则转步骤21505;
步骤21505:设置ii的值加1,并转步骤21503;
步骤21506:判断ds_sn_ssr_fewave_t[jj-1]是否满足:0<ds_sn_ssr_fewave_t[jj-1]<ssrn-1或者0>ds_sn_ssr_fewave_t[jj-1]>1-ssrn,并且ds_sn_ssr_fewave_t[jj]为0,并且ds_sn_ssr_fewave_t[jj-2]为0,如果是,转步骤21507,否则转步骤21508;
步骤21507:设置ds_sn_ssr_fewave_t[jj-1]为0,并转步骤21508;
步骤21508:判断jj是否大于等于mm-1,如果是,转步骤21511,否则转步骤21509;
步骤21509:设置jj的值加1,并转步骤21510;
步骤21510:设置ii为0,并转步骤21503再次进行赋值;
步骤21511:设置jj为0,ii为0,反斯托克斯数据综合累加权重波包临时数组das_sn_ssr_fewave_t[0]到das_sn_ssr_fewave_t[mm]全部设置为0,转步骤21512;
步骤21512:设置das_sn_ssr_fewave_t[jj]的值为das_sn_ssr_fewave_t[jj]+ds_sn_ssr_fewave[ii][jj],转步骤21513;
步骤21513:判断ii是否大于等于ssrn,如果是,转步骤21515,否则转步骤21514;
步骤21514:设置ii的值加1,并转步骤21512再次进行赋值;
步骤21515::判断das_sn_ssr_fewave_t[jj-1]是否满足:0<das_sn_ssr_fewave_t[jj-1]<ssrn-1或者0>das_sn_ssr_fewave_t[jj-1]>1-ssrn,并且das_sn_ssr_fewave_t[jj]为0,并且das_sn_ssr_fewave_t[jj-2]为0,如果是,转步骤21516,否则转步骤21517;
步骤21516:设置das_sn_ssr_fewave_t[jj-1]为0,转步骤21517;
步骤21517:判断jj是否大于等于mm-1,如果是,转步骤21520,否则转步骤21518;
步骤21518:设置jj的值加1,转步骤21519;
步骤21519:设置ii为0,并转步骤21512再次进行赋值;
步骤21520:计算并设置斯托克斯综合累加权重波包核验数据ds_sn_ssr_fewave_t_hy[jj+ii]为ds_sn_ssr_fewave_t[ii][jj],反斯托克斯综合累加权重波包核验数据das_sn_ssr_fewave_t_hy[jj+ii]为das_sn_ssr_fewave_t[ii][jj],其中ii的范围为0~mm-1,jj的范围为0~ssrn;
步骤21521:根据ds_sn_ssr_fewave_t_hy[0]到ds_sn_ssr_fewave_t_hy[n]、ds_sn[0]到ds_sn[n]的值计算斯托克斯光纤长度fs_s,根据das_sn_ssr_fewave_t_hy[0]到das_sn_ssr_fewave_t_hy[n]、das_sn[0]到das_sn[n]的值计算反斯托克斯光纤长度fs_as,结束。
优选地,步骤21521的根据综合累加权重波包数组计算光纤末端的步骤包括:
步骤301:读取ds_sn_ssr_fewave_t_hy[0]到ds_sn_ssr_fewave_t_hy[n]、ds_sn[0]到ds_sn[n]的值,并计算fs_s,读取das_sn_ssr_fewave_t_hy[0]到das_sn_ssr_fewave_t_hy[n]、das_sn[0]到das_sn[n]的值并计算fs_as,设置信号判定阈值sth,典型值为20db;
步骤302:设置jj为n,jae为n,jal为0,jar为0;
步骤303:判断ds_sn_ssr_fewave_t_hy[jj]是否大于0,如果是,转步骤308,否则转步骤304;
步骤304:判断jj是否大于0,如果是,转步骤305,否则转步骤306;
步骤305:设置jj的值减1,并转步骤303再次进行判断;
步骤306:判断jae是否小于n,如果是,转步骤314,否则转步骤307;
步骤307:反馈错误信息,无法分析末端,结束;
步骤308:设置ii为jj-1,转步骤309;
步骤309:判断ds_sn_ssr_fewave_t_hy[ii]是否为0,如果是,转步骤315,否则转步骤310;
步骤310:判断ii是否大于0,如果是,转步骤311,否则转步骤312;
步骤311:设置ii的值减1,转步骤309再次进行判断;
步骤312:设置临时波包数据tw[0~n]的值为ds_sn_ssr_fewave_t_hy[0~n]对应的值,临时去噪数据td[0~n]的值为ds_sn[0~n]对应的值,ts为0,te为jj,计算jar;
步骤313:判断jar是否小于sth,如果是,转步骤314,否则转步骤307;
步骤314:设置fs_s为0,转步骤319;
步骤315:设置tw[0]到tw[n]的值为ds_sn_ssr_fewave_t_hy[0]到ds_sn_ssr_fewave_t_hy[n]对应的值,td[0]到td[n]为ds_sn[0]到ds_sn[n]对应的值,ts为ii+1,te为jj,计算jal与jar;
步骤316:如果jal大于等于sth且jar小于sth,转步骤318,否则转步骤317;
步骤317:设置jj为ii-1,jae为ii-1,转步骤303,再次进行判断;
步骤318:设置fs_s为ii-1,转步骤319;
步骤319:设置jj为n,jae为n,jal为0,jar为0,转步骤320;
步骤320:判断das_sn_ssr_fewave_t_hy[jj]是否大于0,如果是,转步骤324,否则转步骤321;
步骤321:判断jj是否大于0,如果是,转步骤322,否则转步骤323;
步骤322:设置jj的值减1,转步骤320再次进行判断;
步骤323:判断jae是否小于n,如果是,转步骤330,否则转步骤307;
步骤324:设置ii为jj-1,转步骤325;
步骤325:判断das_sn_ssr_fewave_t_hy[ii]是否为0,如果是,转步骤331,否则转步骤326;
步骤326:判断ii是否大于0,如果是,转步骤327,否则转步骤328;
步骤327:设置ii的值减1,转步骤325再次进行判断;
步骤328:设置tw[0]到tw[n]的值为das_sn_ssr_fewave_t_hy[0]到das_sn_ssr_fewave_t_hy[n]对应的值,td[0]到td[n]为das_sn[0]到das_sn[n]对应的值,ts为0,te为jj,计算jar,详见步骤31501;
步骤329:判断jar是否小于sth,如果是,转步骤330,否则转步骤307;
步骤330:设置fs_as为0,转步骤335;
步骤331:设置tw[0]到tw[n]的值为das_sn_ssr_fewave_t_hy[0]到das_sn_ssr_fewave_t_hy[n]对应的值,td[0]到td[n]为das_sn[0]到das_sn[n]对应的值,ts为ii+1,te为jj,计算jal与jar;
步骤332:如果jal大于等于sth且jar小于sth,转步骤334,否则转步骤333;
步骤333:设置jj为ii-1,jae为ii-1,转步骤320再次进行判断;
步骤334:设置fs_as为ii-1,转步骤335;
步骤335:输出fs_s与fs_as的值,结束。
优选地,jar和jal的计算步骤包括:
步骤31501:读取tw[0]到tw[n],td[0]到td[n]的值,读取ts和te的值;
步骤31502:设置ii为te+1,转步骤31503;
步骤31503:判断tw[ii]是否大于0,如果是,转步骤31506,否则转步骤31504;
步骤31504:判断ii是否小于n,如果是,转步骤31505,否则转步骤31507;
步骤31505:设置ii的值加1,转步骤31502再次进行赋值;
步骤31506:设置jar为td[te]到td[ii-1]的平均值,转步骤31508;
步骤31507:设置jar为td[te+1]到td[n]的平均值,转步骤31508;
步骤31508:判断ts是否为0,如果是,转步骤31509,否则转步骤31510;
步骤31509:输出jar的值,转步骤31517;
步骤31510:设置ii为ts-1,转步骤31511;
步骤31511:判断tw[ii]是否大于0,如果是,转步骤31514,否则转步骤31512;
步骤31512:判断ii是否大于0,如果是,转步骤31513,否则转步骤31515;
步骤31513:设置ii的值减1,转步骤31510再次进行赋值;
步骤31514:设置jal为td[ii+1]到td[ts-1]的平均值,转步骤31516;
步骤31515:设置jal为td[0]到td[ts-1]的平均值,转步骤31516;
步骤31516:输出jal和jar的值;
步骤31517:分析结束。
本发明具有的有益效果是:
本发明提供的光纤温度分布测试仪光纤长度自动校准及自动测试方法,以提出的基于斯托克斯与反斯托克斯数据的多重降采样复合数据长度分析方法,通过对光纤温度分布测试仪系统中斯托克斯与反斯托克斯数据进行深入分析,实现对斯托克斯曲线与反斯托克斯曲线光纤末端的识别计算,并以此为基础实现对光纤温度分布测试仪接入光纤长度的分析,该自动测试方法节省人工成本、校准精度高、校准效率高、无需硬件改动、不增加硬件成本,可以有效提高光纤温度分布测试仪生产及使用过程中的长度校准速度。
附图说明
图1为光纤温度分布测试仪光纤长度自动校准及自动测试方法的流程图。
图2为光纤长度末端计算功能具体流程示意图。
图3为斯托克斯与反斯托克斯光纤长度计算步骤示意图。
图4为多重差分波包判定数组计算流程示意图。
图5为根据多重分解差分波包数组计算综合累加权重波包数组流程示意图。
图6为根据综合累加权重波包数组计算光纤末端流程示意图。
图7为jar和jal计算流程示意图。
具体实施方式
下面结合附图和具体实施例对本发明的具体实施方式做进一步说明:
结合图1至图7,一种光纤温度分布测试仪光纤长度自动校准及自动测试方法,包括以下步骤:
步骤101:启动光纤温度分布测试仪,断开被测光纤;
步骤102:启动光纤长度自动校准功能,输入光纤实际长度fl,光纤1550nm折射率ir_in,1550nm折射率ir_in可由光纤厂家给出,设置反斯托克斯光折射率ir_as为ir_in,设置斯托克斯光折射率ir_s为ir_in,设置空间分辨率参数sfr为1m,采样分辨率samf为0.2m,设置测试量程fr=光纤长度fl+1km,设置内部光纤斯托克斯补偿数据长度dc_s为0,内部光纤反斯托克斯补偿数据长度dc_as为0,计算测试数据数目n,n的典型值大于等于(光纤长度fl+1km)÷采样分辨率samf;
步骤103:启动光纤末端长度计算功能,计算内部光纤斯托克斯曲线末端pfs_s为fs_s,内部光纤反斯托克斯曲线末端pfs_as为fs_as;
步骤104:将被测光纤接入光纤温度分布测试仪;
步骤105:再次启动光纤末端长度计算功能,计算被测光纤斯托克斯曲线末端pfe_s为fs_s,被测光纤反斯托克斯曲线末端pfe_as为fs_as;
步骤106:读取斯托克斯距离数据dsx[0~n],该数据通过斯托克斯光折射率ir_s以及采样分辨率samf计算得到;,反斯托克斯距离数据dasx[0~n],该数据通过反斯托克斯光折射率ir_as以及采样分辨率samf计算得到;计算斯托克斯数据光纤测试长度s_dl为dsx[pfe_s]和dsx[pfs_s]的差值,反斯托克斯数据光纤测试长度as_dl为dasx[pfe_as]和dasx[pfs_as]的差值;
步骤107:计算ir_s为(2*s_dl/fl-1)*ir_in,ir_as为(2*as_dl/fl-1)*ir_in;
步骤108:根据ir_s与ir_as重新计算dsx[0]到dsx[n]、dsax[0]到dsax[n];
步骤109:设置dc_s为dsx[pfs_s],dc_as为dsax[pfs_as];
步骤110:启动光纤末端长度计算功能,计算被测光纤斯托克斯曲线末端pfe_s为fs_s,被测光纤反斯托克斯曲线末端pfe_as为fs_as;
步骤111:判断dsx[pfe_s]与fl差值的绝对值是否小于sfr,如果是,转步骤112,否则转步骤115;
步骤112:判断dsax[pfe_as]与fl差值的绝对值是否小于sfr,如果是,转步骤113,否则转步骤115;
步骤113:判断dsx[pfe_s]与dsax[pfe_as]差值的绝对值是否小于sfr,如果是,转步骤114,否则转步骤115;
步骤114:校准成功,结束;
步骤115:校准失败,检查光路,结束。
如图2所示:
步骤103,步骤105和步骤110的光纤长度末端计算功能具体步骤如下所示,通过对斯托克斯测试数据与反斯托克斯数据分析,实现光纤长度末端的准确计算与识别:
步骤:10301:启动温度分布测试功能,等待测试完毕;
步骤10302:读取斯托克斯测试数据ds[0~n],反斯托克斯测试数据das[0~n],读取测试数据数目n;
步骤10303:计算斯托克斯测试数据噪声dns为ds[n-500]到ds[n]的平均值,反斯托克斯测试数据噪声dnas为das[n-500]到das[n]的平均值;
步骤10304:计算去除噪声斯托克斯数据ds_sn[0]到ds_sn[n]分别为ds[0]-dns到ds[n]-dns的值,去除噪声反斯托克斯数据das_sn[0]到das_sn[n]分别为das[0]-dnas到das[n]-dnas的值;
步骤10305:根据ds_sn[0]到ds_sn[n]的去除噪声斯托克斯数据,das_sn[0]到das_sn[n]的去除噪声反斯托克斯数据,计算内部光路斯托克斯曲线末端fs_s,反斯托克斯曲线末端fs_as;
步骤10306:输出斯托克斯光纤长度fs_s,反斯托克斯光纤长度fs_as,结束。
如图3所示,斯托克斯与反斯托克斯光纤长度计算过程如下:
步骤10305具体包括以下步骤:
步骤201:读取ds_sn[0]到ds_sn[n]的去除噪声斯托克斯数据,das_sn[0]到das_sn[n]的去除噪声反斯托克斯数据,读取测试空间分辨率参数sfr,采样分辨率samf;
步骤202:计算分解层数ssrn为sfr÷samf的值向上取整,设置i为0,m为0,sfr典型值为1m,samf典型值为0.2m,且samf小于sfr,mm为n/ssrn;
步骤203:计算对数分解斯托克斯数据ds_sn_ssr[i][m]为ds_sn[m*ssrn+i]的对数,计算对数分解反斯托克斯数据das_sn_ssr[i][m]为das_sn[m*ssrn+i]的对数;
步骤204:判断m是否大于mm,如果是,转步骤206,否则转步骤205;
步骤205:设置m的值加1,并转步骤203再次进行计算;
步骤206:判断i是否大于ssrn,如果是,转步骤208,否则转步骤207;
步骤207:设置l的值加1,并转步骤203再次进行计算;
步骤208:设置j为0,i为0,设置末端判定阈值eth,典型值为2db/m*sfr;
步骤209:计算对数分解斯托克斯差分数据ds_sn_ssr_diff[i][j]为ds_sn_ssr[i][j]和ds_sn_ssr[i][j+1]的差值,计算对数分解反斯托克斯差分数据das_sn_ssr_diff[i][j]为das_sn_ssr[i][j]和das_sn_ssr[i][j+1]的差值;
步骤210:判断j是否大于mm-1,如果是,转步骤212,否则转步骤211;
步骤211:设置j的值加1,并转步骤209再次进行计算;
步骤212:记录ds_sn_ssr_diff[i][0]到ds_sn_ssr_diff[i][mm-1]中所有大于eth的值,存入波包数组ds_sn_ssr_fewave[i][0]到ds_sn_ssr_fewave[i][mm-1]中,记录das_sn_ssr_diff[i][0]到das_sn_ssr_diff[i][mm-1]中所有大于eth的值,存入波包数组das_sn_ssr_fewave[i][0]到das_sn_ssr_fewave[i][mm-1]中;
步骤213:判断i是否大于ssrn,如果是,转步骤215,否则转步骤214;
步骤214:设置l的值加1,并转步骤209再次进行计算;
步骤215:根据ds_sn_ssr_fewave[0][0]到ds_sn_ssr_fewave[ssrn][mm-1]、ds_sn_ssr_diff[0][0]到ds_sn_ssr_diffssrn][mm-1]与ds_sn_ssr[0][0]到ds_sn_ssr[ssrn][mm]进行计算,得到光纤长度fs_s;
根据判断条件对das_sn_ssr_fewave[0][0]到das_sn_ssr_fewave[ssrn][mm-1]、das_sn_ssr_diff[0][0]到das_sn_ssr_diff[ssrn][mm-1]与das_sn_ssr[0][0]到das_sn_ssr[ssrn][mm]进行计算,得到光纤长度fs_as;
步骤216:输出斯托克斯光纤长度fs_s,反斯托克斯光纤长度fs_as,结束。
如图4所示:
步骤212多重差分波包判定数组计算步骤包括:
步骤21201:设置jj为0,读取i的值,ds_sn_ssr_fewave[i][0]到ds_sn_ssr_fewave[i][mm]全部设置为0;
步骤21202:判断ds_sn_ssr_diff[i][jj]是否大于等于eth,如果是,转步骤21203,否则转步骤21209;
步骤21203:设置临时计数变量tempj为jj+1,并转步骤21204;
步骤21204:判断ds_sn_ssr_diff[i][tempj]是否大于等于eth,如果是,转步骤21207,否则转步骤21205;
步骤21205:判断tempj是否大于等于mm-1,如果是,转步骤21207,否则转步骤21206;
步骤21206:设置tempj为tempj+1,并转步骤21204再次进行判断;
步骤21207:设置ds_sn_ssr_fewave[i][jj]到ds_sn_ssr_fewave[i][tempj-1]全部为1,并转步骤21208;
步骤21208:设置jj为tempj,并转步骤21202;
步骤21209:判断ds_sn_ssr_diff[i][jj]是否小于等于-1*eth,如果是,转步骤21210,否则转步骤21215;
步骤21210:设置tempj为jj+1,并转步骤21211;
步骤21211:判断ds_sn_ssr_diff[i][jj]是否小于等于-1*eth,如果是,转步骤21214,否则转步骤21212;
步骤21212:判断tempj是否大于等于mm-1,如果是,转步骤21214,否则转步骤21213;
步骤21213:设置tempj的值加1,并转步骤21211再次进行判断;
步骤21214:设置ds_sn_ssr_fewave[i][jj]到ds_sn_ssr_fewave[i][tempj-1]全部为-1,并转步骤21208;
步骤21215:判断jj是否大于等于mm-1,如果是,转步骤21217,否则转步骤21216;
步骤21216:设置jj的值加1,并转步骤21202;
步骤21217:设置jj为0,读取i的值,das_sn_ssr_fewave[i][0]ds_sn_ssr_fewave[i][mm]全部设置为0;
步骤21218:判断das_sn_ssr_diff[i][jj]是否大于等于eth,如果是,转步骤21219,否则转步骤21225;
步骤21219:设置tempj为jj+1,并转步骤21220;
步骤21220:判断das_sn_ssr_diff[i][tempj]是否大于等于eth,如果是,转步骤21223,否则转步骤21221;
步骤21221:判断tempj是否大于等于mm-1,如果是,转步骤21223,否则转步骤21222;
步骤21222:设置tempj为tempj+1,并转步骤21220再次进行判断;
步骤21223:设置das_sn_ssr_fewave[i][jj]到das_sn_ssr_fewave[i][tempj-1]全部为1,并转步骤21224;
步骤21224:设置jj为tempj,并转步骤21218;
步骤21225:判断das_sn_ssr_diff[i][jj]是否小于等于-1*eth,如果是,转步骤21226,否则转步骤21231;
步骤21226:设置tempj为jj+1,并转步骤21227;
步骤21227:判断das_sn_ssr_diff[i][jj]是否小于等于-1*eth,如果是,转步骤21230,否则转步骤21228;
步骤21228:判断tempj是否大于等于mm-1,如果是,转步骤21230,否则转步骤21229;
步骤21229:设置tempj的值加1,并转步骤21217再次进行判断;
步骤21230:设置das_sn_ssr_fewave[i][jj]到das_sn_ssr_fewave[i][tempj-1]全部为-1,并转步骤21224;
步骤21231:判断jj是否大于等于mm-1,如果是,转步骤21233,否则转步骤21232;
步骤21232:设置jj的值加1,并转步骤21218;
步骤21233:输出ds_sn_ssr_fewave[i][0]到ds_sn_ssr_fewave[i][mm]的值,
输出das_sn_ssr_fewave[i][0]到das_sn_ssr_fewave[i][mm]的值,结束。
如图5所示:
步骤215根据多重分解差分波包数组计算综合累加权重波包数组的步骤包括:
步骤21501:读取ds_sn_ssr_fewave[0][0]到ds_sn_ssr_fewave[ssrn][mm-1]、ds_sn_ssr_diff[0][0]到ds_sn_ssr_diff[ssrn][mm-1]、ds_sn_ssr[0][0]ds_sn_ssr到[ssrn][mm]的值,
读取das_sn_ssr_fewave[0][0]到das_sn_ssr_fewave[ssrn][mm-1]、das_sn_ssr_diff[0][0]到das_sn_ssr_diff[ssrn][mm-1]、das_sn_ssr[0][0]到das_sn_ssr[ssrn][mm]的值;
步骤21502:设置jj为0,ii为0,斯托克斯数据综合累加权重波包临时数组ds_sn_ssr_fewave_t[0~mm]全部设置为0;
步骤21503:计算ds_sn_ssr_fewave_t[jj]的值为ds_sn_ssr_fewave_t[jj]加ds_sn_ssr_fewave[ii][jj];
步骤21504:判断ii是否大于等于ssrn,如果是,转步骤21506,否则转步骤21505;
步骤21505:设置ii的值加1,并转步骤21503;
步骤21506:判断ds_sn_ssr_fewave_t[jj-1]是否满足:0<ds_sn_ssr_fewave_t[jj-1]<ssrn-1或者0>ds_sn_ssr_fewave_t[jj-1]>1-ssrn,并且ds_sn_ssr_fewave_t[jj]为0,并且ds_sn_ssr_fewave_t[jj-2]为0,如果是,转步骤21507,否则转步骤21508;
步骤21507:设置ds_sn_ssr_fewave_t[jj-1]为0,并转步骤21508;
步骤21508:判断jj是否大于等于mm-1,如果是,转步骤21511,否则转步骤21509;
步骤21509:设置jj的值加1,并转步骤21510;
步骤21510:设置ii为0,并转步骤21503再次进行赋值;
步骤21511:设置jj为0,ii为0,反斯托克斯数据综合累加权重波包临时数组das_sn_ssr_fewave_t[0]到das_sn_ssr_fewave_t[mm]全部设置为0,转步骤21512;
步骤21512:设置das_sn_ssr_fewave_t[jj]的值为das_sn_ssr_fewave_t[jj]+ds_sn_ssr_fewave[ii][jj],转步骤21513;
步骤21513:判断ii是否大于等于ssrn,如果是,转步骤21515,否则转步骤21514;
步骤21514:设置ii的值加1,并转步骤21512再次进行赋值;
步骤21515::判断das_sn_ssr_fewave_t[jj-1]是否满足:0<das_sn_ssr_fewave_t[jj-1]<ssrn-1或者0>das_sn_ssr_fewave_t[jj-1]>1-ssrn,并且das_sn_ssr_fewave_t[jj]为0,并且das_sn_ssr_fewave_t[jj-2]为0,如果是,转步骤21516,否则转步骤21517;
步骤21516:设置das_sn_ssr_fewave_t[jj-1]为0,转步骤21517;
步骤21517:判断jj是否大于等于mm-1,如果是,转步骤21520,否则转步骤21518;
步骤21518:设置jj的值加1,转步骤21519;
步骤21519:设置ii为0,并转步骤21512再次进行赋值;
步骤21520:计算并设置斯托克斯综合累加权重波包核验数据ds_sn_ssr_fewave_t_hy[jj+ii]为ds_sn_ssr_fewave_t[ii][jj],反斯托克斯综合累加权重波包核验数据das_sn_ssr_fewave_t_hy[jj+ii]为das_sn_ssr_fewave_t[ii][jj],其中ii的范围为0~mm-1,jj的范围为0~ssrn;
步骤21521:根据ds_sn_ssr_fewave_t_hy[0]到ds_sn_ssr_fewave_t_hy[n]、ds_sn[0]到ds_sn[n]的值计算斯托克斯光纤长度fs_s,根据das_sn_ssr_fewave_t_hy[0]到das_sn_ssr_fewave_t_hy[n]、das_sn[0]到das_sn[n]的值计算反斯托克斯光纤长度fs_as,结束。
如图6所示:
步骤21521的根据综合累加权重波包数组计算光纤末端的步骤包括:
步骤301:读取ds_sn_ssr_fewave_t_hy[0]到ds_sn_ssr_fewave_t_hy[n]、ds_sn[0]到ds_sn[n]的值,并计算fs_s,读取das_sn_ssr_fewave_t_hy[0]到das_sn_ssr_fewave_t_hy[n]、das_sn[0]到das_sn[n]的值并计算fs_as,设置信号判定阈值sth,典型值为20db;
步骤302:设置jj为n,jae为n,jal为0,jar为0;
步骤303:判断ds_sn_ssr_fewave_t_hy[jj]是否大于0,如果是,转步骤308,否则转步骤304;
步骤304:判断jj是否大于0,如果是,转步骤305,否则转步骤306;
步骤305:设置jj的值减1,并转步骤303再次进行判断;
步骤306:判断jae是否小于n,如果是,转步骤314,否则转步骤307;
步骤307:反馈错误信息,无法分析末端,结束;
步骤308:设置ii为jj-1,转步骤309;
步骤309:判断ds_sn_ssr_fewave_t_hy[ii]是否为0,如果是,转步骤315,否则转步骤310;
步骤310:判断ii是否大于0,如果是,转步骤311,否则转步骤312;
步骤311:设置ii的值减1,转步骤309再次进行判断;
步骤312:设置临时波包数据tw[0~n]的值为ds_sn_ssr_fewave_t_hy[0~n]对应的值,临时去噪数据td[0~n]的值为ds_sn[0~n]对应的值,ts为0,te为jj,计算jar;
步骤313:判断jar是否小于sth,如果是,转步骤314,否则转步骤307;
步骤314:设置fs_s为0,转步骤319;
步骤315:设置tw[0]到tw[n]的值为ds_sn_ssr_fewave_t_hy[0]到ds_sn_ssr_fewave_t_hy[n]对应的值,td[0]到td[n]为ds_sn[0]到ds_sn[n]对应的值,ts为ii+1,te为jj,计算jal与jar;
步骤316:如果jal大于等于sth且jar小于sth,转步骤318,否则转步骤317;
步骤317:设置jj为ii-1,jae为ii-1,转步骤303,再次进行判断;
步骤318:设置fs_s为ii-1,转步骤319;
步骤319:设置jj为n,jae为n,jal为0,jar为0,转步骤320;
步骤320:判断das_sn_ssr_fewave_t_hy[jj]是否大于0,如果是,转步骤324,否则转步骤321;
步骤321:判断jj是否大于0,如果是,转步骤322,否则转步骤323;
步骤322:设置jj的值减1,转步骤320再次进行判断;
步骤323:判断jae是否小于n,如果是,转步骤330,否则转步骤307;
步骤324:设置ii为jj-1,转步骤325;
步骤325:判断das_sn_ssr_fewave_t_hy[ii]是否为0,如果是,转步骤331,否则转步骤326;
步骤326:判断ii是否大于0,如果是,转步骤327,否则转步骤328;
步骤327:设置ii的值减1,转步骤325再次进行判断;
步骤328:设置tw[0]到tw[n]的值为das_sn_ssr_fewave_t_hy[0]到das_sn_ssr_fewave_t_hy[n]对应的值,td[0]到td[n]为das_sn[0]到das_sn[n]对应的值,ts为0,te为jj,计算jar,详见步骤31501;
步骤329:判断jar是否小于sth,如果是,转步骤330,否则转步骤307;
步骤330:设置fs_as为0,转步骤335;
步骤331:设置tw[0]到tw[n]的值为das_sn_ssr_fewave_t_hy[0]到das_sn_ssr_fewave_t_hy[n]对应的值,td[0]到td[n]为das_sn[0]到das_sn[n]对应的值,ts为ii+1,te为jj,计算jal与jar;
步骤332:如果jal大于等于sth且jar小于sth,转步骤334,否则转步骤333;
步骤333:设置jj为ii-1,jae为ii-1,转步骤320再次进行判断;
步骤334:设置fs_as为ii-1,转步骤335;
步骤335:输出fs_s与fs_as的值,结束。
如图7所示:
jar和jal的计算步骤包括:
步骤31501:读取tw[0]到tw[n],td[0]到td[n]的值,读取ts和te的值;
步骤31502:设置ii为te+1,转步骤31503;
步骤31503:判断tw[ii]是否大于0,如果是,转步骤31506,否则转步骤31504;
步骤31504:判断ii是否小于n,如果是,转步骤31505,否则转步骤31507;
步骤31505:设置ii的值加1,转步骤31502再次进行赋值;
步骤31506:设置jar为td[te]到td[ii-1]的平均值,转步骤31508;
步骤31507:设置jar为td[te+1]到td[n]的平均值,转步骤31508;
步骤31508:判断ts是否为0,如果是,转步骤31509,否则转步骤31510;
步骤31509:输出jar的值,转步骤31517;
步骤31510:设置ii为ts-1,转步骤31511;
步骤31511:判断tw[ii]是否大于0,如果是,转步骤31514,否则转步骤31512;
步骤31512:判断ii是否大于0,如果是,转步骤31513,否则转步骤31515;
步骤31513:设置ii的值减1,转步骤31510再次进行赋值;
步骤31514:设置jal为td[ii+1]到td[ts-1]的平均值,转步骤31516;
步骤31515:设置jal为td[0]到td[ts-1]的平均值,转步骤31516;
步骤31516:输出jal和jar的值;
步骤31517:分析结束。
当然,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护范围。