Exemple #1
0
            internal void Parse(string values, int colCount)
            {
                string s = "";

                Signal_AixsItem tItem;

                for (int i = 0; i < colCount; i++)
                {
                    s = IniFile.GetItemFrom(values, i, colCount);

                    try
                    {
                        tItem = new Signal_AixsItem();

                        tItem.v = Convert.ToSingle(s);

                        tItems.Add(tItem);
                    }
                    catch (System.InvalidCastException)
                    {
                    }
                }

                Processing();
            }
Exemple #2
0
        private float Offset_F(float f, int I, int J1, int J2, float p)
        {
            float v1 = table[I][J1];
            float v2 = table[I][J2];

            aItem1 = rowHead.GetItem(J1);
            aItem2 = rowHead.GetItem(J2);

            v1 = v1 + _table.Offset1(p);
            v2 = v2 + _table.Offset1(p);

            return(Offset_Linear(f, aItem1.v, v1, aItem2.v, v2));
        }
Exemple #3
0
        private float Offset_dB(float p, int J, int I1, int I2)
        {
            try
            {
                float v1 = table[I1][J];
                float v2 = table[I2][J];

                aItem1 = colHead.GetItem(I1);
                aItem2 = colHead.GetItem(I2);

                v1 = v1 + _table.Offset1(aItem1.v);
                v2 = v2 + _table.Offset1(aItem2.v);
                return(Offset_Linear(p, aItem1.v, v1, aItem2.v, v2));
            }
            catch (Exception e)
            {
                System.Windows.Forms.MessageBox.Show(e.ToString());
                return(0f);
            }
        }
Exemple #4
0
        /// <summary>获取补偿
        ///
        /// </summary>
        /// <param name="f">频率</param>
        /// <param name="p">功率</param>
        /// <param name="tx">Tx_Table</param>
        /// <returns></returns>
        internal float Offset(float f, float p, Tx_Table tx)
        {
            this._table = tx;
            float v  = 0.0f;
            float v1 = 0.0f;
            float v2 = 0.0f;

            if (table == null)
            {
                v = 0.0f;
            }
            else
            {
                mii_I = rowHead.Search(f);
                mii_J = colHead.Search(p);

                //待补偿点,恰好落在表格节点上
                if (mii_I.only_I && mii_J.only_I)
                {
                    v = table[mii_J.I][mii_I.I] + _table.Offset1(p);
                }

                //带补偿点,在横轴(频率f)上落在表格节点上,在纵轴(功率dB)上没有落在表格节点上
                else if (mii_I.only_I && (!mii_J.only_I))
                {
                    if (mii_J.I1 != mii_J.I)
                    {
                        v = Offset_dB(p, mii_I.I, mii_J.I1, mii_J.I);
                    }
                    else
                    {
                        v = Offset_dB(p, mii_I.I, mii_J.I, mii_J.I2);
                    }

                    //带补偿点,在纵轴(功率dB)上落在表格节点上,在横轴(频率f)上没有落在表格节点上
                }
                else if ((!mii_I.only_I) && mii_J.only_I)
                {
                    if (mii_I.I1 != mii_I.I)
                    {
                        v = Offset_F(f, mii_J.I, mii_I.I1, mii_I.I, p);
                    }
                    else
                    {
                        v = Offset_F(f, mii_J.I, mii_I.I, mii_I.I2, p);
                    }

                    //带补偿点,在两个轴向上都没有落在表格节点上
                }
                else
                {
                    int I_F1 = 0;
                    int I_F2 = 0;

                    //先固定f,进行p变换
                    if (mii_I.I1 != mii_I.I)
                    {
                        I_F1 = mii_I.I1;
                        I_F2 = mii_I.I;

                        if (mii_J.I1 != mii_J.I)
                        {
                            v1 = Offset_dB(p, I_F1, mii_J.I1, mii_J.I);
                            v2 = Offset_dB(p, I_F2, mii_J.I1, mii_J.I);
                        }
                        else
                        {
                            v1 = Offset_dB(p, I_F1, mii_J.I, mii_J.I2);
                            v2 = Offset_dB(p, I_F2, mii_J.I, mii_J.I2);
                        }
                    }
                    else
                    {
                        I_F1 = mii_I.I;
                        I_F2 = mii_I.I2;

                        if (mii_J.I1 != mii_J.I)
                        {
                            v1 = Offset_dB(p, I_F1, mii_J.I1, mii_J.I);
                            v2 = Offset_dB(p, I_F2, mii_J.I1, mii_J.I);
                        }
                        else
                        {
                            v1 = Offset_dB(p, I_F1, mii_J.I, mii_J.I2);
                            v2 = Offset_dB(p, I_F2, mii_J.I, mii_J.I2);
                        }
                    }

                    //再进行f变换
                    aItem1 = rowHead.GetItem(I_F1);
                    aItem2 = rowHead.GetItem(I_F2);

                    v = Offset_Linear(f, aItem1.v, v1, aItem2.v, v2);
                }
            }

            return(v + App_Settings.spc.TxRef);
        }