通信人家园

标题: 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