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(); }
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)); }
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); } }
/// <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); }