通信人家园
标题:
OTDR接续衰减自动分析
[查看完整版帖子]
[打印本页]
时间:
2012-10-16 20:53
作者:
ml3701
标题:
OTDR接续衰减自动分析
出于竣工资料使用,07年编的,08年使用了几次(好浪费),好几年不用,拿出来晒晒别发霉了!!
刚开始还是VB编的,后来改成C#的了:),都是好老的东东。。。。哈哈
这个老版本只能分析安捷伦OTDR轨迹
可以把接续损耗自动导入到EXCEL竣工资料格式模版
可以按照竣工资料要求打印成同一页正、反向轨迹图像
新版本可以使用安捷伦、EXFO、安利和只要是标准BellCore-CR196 1.0、1.1、2.0格式的轨迹(新版也不新啦,都是07年的)
新版本使用小波的方法快速判断、分析接续点。
只是用于学习哈。。。
[attach]191142[/attach]
时间:
2012-10-16 20:59
作者:
ml3701
key:
SN-5DEF742EF4AA3
时间:
2012-10-17 18:29
作者:
欧华良
可以用吗?
时间:
2012-10-17 21:29
作者:
sxnrh
时间:
2012-10-17 21:31
作者:
Muyeter
好东西 谢了
时间:
2012-10-18 09:15
作者:
pangmj2
wokk
时间:
2012-10-18 09:17
作者:
pangmj2
打不开
时间:
2012-10-19 10:33
作者:
just108
怎么操作啊?
时间:
2012-10-19 18:23
作者:
ml3701
操作挺简单的啊,看看帮助,也可以联系我QQ 273556464
时间:
2012-10-20 10:30
作者:
wuwuwu111
:):)
时间:
2012-10-21 14:41
作者:
wssqxjp
我是刚来的学习者,请大家多多指教!谢谢!
时间:
2012-10-21 16:46
作者:
c53520
谢谢楼主分享 有没有打印测试资料可以A4里面打4张的没
时间:
2012-10-22 08:18
作者:
ml3701
A4里打四张的可以定做,不过没有时间搞啊
时间:
2012-10-23 09:22
作者:
ml3701
现在越来越笨,老啦!原来的文档,也已经好陌生!
//*************************************************************************
//钩子事件,执行FileView窗体的TreeViewMenuClik菜单选项事件
//放到主窗口操作
//输入:sender TreeView对象
//动作:读入标记为选择的Sor文件
//*************************************************************************
private void FileView_OnMyTreeViewMenuClik(object sender, EventArgs e)
{
MultiSelectTreeView.MultiSelectTreeView MyTreeView = FileView.treeView1;
int i, ParentNode;
ParentNode = MyTreeView.SelectedNode.Parent.Index;
for (i = MyTreeView.Nodes[ParentNode].Nodes.Count - 1; i >= 0; i--)
{
if (MyTreeView.Nodes[ParentNode].Nodes[i].Checked == true && MyTreeView.SelectedNode.Text != "正向文件" && MyTreeView.SelectedNode.Text != "反向文件")
{
FormatOtdrView(MyTreeView.Nodes[ParentNode].Nodes[i].Text, (short)MyTreeView.Nodes[ParentNode].Nodes[i].Index);
OtdrView.OpenSorFile[i].sName = MyTreeView.SelectedNode.Text;
OtdrView.OpenSorFile[i].sPath = MyTreeView.SelectedNode.Index.ToString();
}
}
FormatOtdrEventView();
MessageBox.Show("完成读入轨迹");
}
时间:
2012-10-26 10:27
作者:
js-fang@163.com
高手
时间:
2012-10-29 21:22
作者:
ml3701
本人对小波研究不深,请高手帮助改改
这段半成品代码并不能够对所有的轨迹进行分析
尤其是轨迹噪音较大的时候,并且在极个别轨迹不错的情况下也会判断错误
//****************************************
//用小波分析事件并输出
//输入:Name 轨迹名称
//输出:EventW 事件类型
//其中: .x 事件位置
//其中: .y 事件高度
//其中: .dB 事件衰减
//其中: .M1 左1点
//其中: .M2 左2点
//其中: .M3 右1点
//其中: .M4 右2点
//其中: .M5 事件点
//****************************************
public EventW[] EventWavelet(String Name, double EndX)
{
int i, L, SK, SK1;
Double[] F1 = new Double[] { };
Double[] F2 = new Double[] { };
Double[] F3 = new Double[] { };
Double[] F4 = new Double[] { };
int StartI;
int EndI;
SK = DataPts.TNDP;
SK1 = SK;
Blind = BlindArea(FxdParams.PWU, GR96_20_EndSx);
F1 = new Double[SK1]; F2 = new Double[SK1]; F3 = new Double[SK1];
StartI = Convert.ToInt16(Blind.StartTolerance / (GR96_20_EndSx / DataPts.TNDP));
EndI = Convert.ToInt16(EndX / (GR96_20_EndSx / DataPts.TNDP));
for (i = StartI; i < EndI - 1; i++)
{
F1[i] = DataPts.DS[i];
}
while (SK > 1)
{
SK = SK / 2;
for (i = 0; i <= SK - 1; i++)
{
F3[i] = (F1[2 * i] + F1[2 * i + 1]) / (1 * Math.Sqrt(2));
F3[SK + i] = (F1[2 * i] - F1[2 * i + 1]) / (1 * Math.Sqrt(2));
}
for (L = 0; L <= SK; L++)
{
F1[L] = F3[L];
}
}
int Number1 = 0;
for (i = SK1 / 8; i < SK1 / 4; i++)
{
if ((F3[i] > 30 && F3[i] < 2800) || (F3[i] < -30 && F3[i] > -2800))
{
Number1 = Number1 + 1;
}
}
EventWL = new EventW[Number1];
Number1 = 0;
for (i = SK1 / 8; i < SK1 / 4; i++)
{
if ((F3[i] > 30 && F3[i] < 2800) || (F3[i] < -30 && F3[i] > -2800))
{
EventWL[Number1].x = (double)(i - SK1 / 8) * 8 * (GR96_20_EndSx / DataPts.TNDP);
EventWL[Number1].y = (double)(65535 - DataPts.DS[(i - SK1 / 8) * 8]) / 1000;
Number1 = Number1 + 1;
}
}
int l = 0,j=0;
for (i = 0; i < EventWL.Count() - 1; i++)
{
for (j = i; j < EventWL.Count() - 1; j++)
{
if (Math.Abs(EventWL[i + 1].x - EventWL[i].x) >= Blind.DistanceTolerance)
{
l++;
}
}
}
EventWLS = new EventW[l + 1];
l = 0;
for (i = 0; i < EventWL.Count() - 1; i++)
{
for (j = i; j < EventWL.Count() - 1; j++)
{
if (Math.Abs(EventWL[i + 1].x - EventWL[i].x) >= Blind.DistanceTolerance)
{
EventWLS[l].x = EventWL[i].x;
EventWLS[l].y = EventWL[i].y;
l++;
}
}
}
return EventWLS;
}
时间:
2012-12-22 18:00
作者:
dali2011
:)
时间:
2013-1-18 18:11
作者:
XQ433
来学习。谢谢!
时间:
2013-1-18 19:31
作者:
247578733
学习了
时间:
2013-2-4 17:38
作者:
boln
下来核实一下功能
时间:
2013-2-26 20:28
作者:
程博士
顶
时间:
2013-3-18 21:15
作者:
mingyang_203
看看
时间:
2013-5-9 16:28
作者:
hq89625
膜拜大神啊,小弟学习学习。特别想知道OTDR的自动测试原理是怎么实现的,能讲讲吗。
时间:
2013-5-25 09:23
作者:
haorenliuxian
能用吗?我一直在找呢
时间:
2013-6-11 21:48
作者:
ml3701
hq89625 发表于 2013-5-9 16:28
膜拜大神啊,小弟学习学习。特别想知道OTDR的自动测试原理是怎么实现的,能讲讲吗。
同一中继段内测量光纤芯数达到一定数量级后,接续衰减的随机性,会让我们找到所有接续衰减。。。。
时间:
2013-7-4 10:37
作者:
喻斌松
不错的东西
时间:
2013-7-5 08:29
作者:
593843152
学习
时间:
2013-7-6 11:08
作者:
czzzj
看看下
时间:
2013-8-22 08:51
作者:
yangzegift
时间:
2013-11-13 21:08
作者:
青河
还要编程序吗
时间:
2015-1-8 22:30
作者:
niu016
能用
时间:
2020-1-9 10:06
作者:
zxcv00228
正想要学习
时间:
2020-4-3 14:24
作者:
android-gis
通信人家园 (https://www.txrjy.com/)
Powered by C114