//////////////////////////////////////////////////////////////// // 各種信号の信号強度の生成(衛星の仰角より) //////////////////////////////////////////////////////////////// #define DIV1 1//何個(縦横)にグリッドを区切るか #define DIVMAX 4//グリッドを格納する配列の最大値を設定 const int GPS = 32;//GPS衛星総数 const int SATMAX = 36;//GPSの最大総数 extern int Enable[DIVMAX][DIVMAX],Enable_sat[DIVMAX][DIVMAX][SATMAX];//使用可能衛星 extern int Com_sat[SATMAX],Com_satn; extern double Sat_ele[DIVMAX][DIVMAX][SATMAX],Sat_azi[DIVMAX][DIVMAX][SATMAX];//衛星の仰角、方位角 extern double Cn[SATMAX],Cn2[SATMAX]; void calc_cn() { int i,prn; for(i=0;i=30 && Sat_ele[DIV1][DIV1][prn]<40){ Cn[prn] = 2.5*Sat_ele[DIV1][DIV1][prn]/10.0+37.0; Cn2[prn] = Sat_ele[DIV1][DIV1][prn]*12.5/45.0+257.5/9; } else if(Sat_ele[DIV1][DIV1][prn]>=40 && Sat_ele[DIV1][DIV1][prn]<50){ Cn[prn] = 1.6*Sat_ele[DIV1][DIV1][prn]/10.0+40.6; Cn2[prn] = Sat_ele[DIV1][DIV1][prn]*12.5/45.0+257.5/9; } else if(Sat_ele[DIV1][DIV1][prn]>=50 && Sat_ele[DIV1][DIV1][prn]<60){ Cn[prn] = 0.8*Sat_ele[DIV1][DIV1][prn]/10.0+44.6; Cn2[prn] = Sat_ele[DIV1][DIV1][prn]*1.5/40.0+162.5/4; } else if(Sat_ele[DIV1][DIV1][prn]>=60 && Sat_ele[DIV1][DIV1][prn]<90){ Cn[prn] = 49.4; Cn2[prn] = Sat_ele[DIV1][DIV1][prn]*1.5/40.0+162.5/4; } //L1,L2で区別しない場合 // Cn2[prn] = Cn[prn]; } //上のみだと、移動局の衛星の信号強度を設定できない場合がある? for(i=0;i=30 && Sat_ele[DIV1][DIV1][prn]<40){ Cn[prn] = 2.5*Sat_ele[DIV1][DIV1][prn]/10.0+37.0; Cn2[prn] = Sat_ele[DIV1][DIV1][prn]*12.5/45.0+257.5/9; } else if(Sat_ele[DIV1][DIV1][prn]>=40 && Sat_ele[DIV1][DIV1][prn]<50){ Cn[prn] = 1.6*Sat_ele[DIV1][DIV1][prn]/10.0+40.6; Cn2[prn] = Sat_ele[DIV1][DIV1][prn]*12.5/45.0+257.5/9; } else if(Sat_ele[DIV1][DIV1][prn]>=50 && Sat_ele[DIV1][DIV1][prn]<60){ Cn[prn] = 0.8*Sat_ele[DIV1][DIV1][prn]/10.0+44.6; Cn2[prn] = Sat_ele[DIV1][DIV1][prn]*1.5/40.0+162.5/4; } else if(Sat_ele[DIV1][DIV1][prn]>=60 && Sat_ele[DIV1][DIV1][prn]<90){ Cn[prn] = 49.4; Cn2[prn] = Sat_ele[DIV1][DIV1][prn]*1.5/40.0+162.5/4; } //L1,L2で区別しない場合 // Cn2[prn] = Cn[prn]; } }