亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gpsrcvr.c

?? C寫的用軟件無線電實現的GPS模擬程序
?? C
?? 第 1 頁 / 共 5 頁
字號:
// ************** debug *******************//  if ( ch==0)//  {//    printf( "trk: (%d) Ip=%4d, Qp=%4d, Id=%4d, Qd=%4d, r/lk:%.2f, d/lk:%.2f\n", //      chan[ch].t_count, Ip, Qp, Id, Qd, chan[ch].car_lock_det, chan[ch].cod_lock_det);//    getchar();  //  }  // ************** debug *******************  if ( chan[ch].ms_count >= 19)  {    chan[ch].tr_bit_time++;    chan[ch].prompt_mag = rss( chan[ch].i_prmt_sum, chan[ch].q_prmt_sum);    chan[ch].dith_mag   = rss( chan[ch].i_dith_sum, chan[ch].q_dith_sum);    chan[ch].sum        += chan[ch].prompt_mag + chan[ch].dith_mag;//    chan[ch].bit = ( chan[ch].i_prmt_sum + chan[ch].i_dith_sum > 0) ? 1 : 0;    chan[ch].bit = ( chan[ch].bitsign > 0) ? 1 : 0;// see if we can find the preamble    pream( ch, chan[ch].bit);       chan[ch].message[chan[ch].t_count] = chan[ch].bit;   // message[] : array of 0 & 1    chan[ch].t_count++;    write_to_file_navbit( ch);//    if ( chan[ch].t_count % 5 == 0)//    {//      chan[ch].avg = chan[ch].sum / 10;//      chan[ch].sum = 0;//    }////    chan[ch].q_dith_20 = 0;//    chan[ch].q_prmt_20 = 0;//    chan[ch].i_dith_20 = 0;//    chan[ch].i_prmt_20 = 0;  } // --- if ( chan[ch].ms_count >= 19) ---//  one data frame (1500 bits) completed  if ( chan[ch].t_count == 1500)  {    chan[ch].n_frame++;    chan[ch].t_count = 0;  }//  printf("chan[%d].t_count = %d\n", ch, chan[ch].t_count);//  getchar();  chan[ch].old_i_sum = i_sum;  chan[ch].ms_count = (++chan[ch].ms_count) % NOFMSECPERDATABIT;  return;}/*******************************************************************************FUNCTION pream()RETURNS  None.PARAMETERS  ch   channel number (0-11)  bit  the latest bit from the satellitePURPOSE  This function finds the preamble in the navigation messageWRITTEN BY  Clifford Kelley*******************************************************************************/void pream( char ch, char bit){  unsigned int parity, parity1;     // int replaced by unsigned int (GB-020217)  unsigned long TOWs, sum, pinv, dinv;  static unsigned long pream = 0x22c00000L,    // 0x8b << 22                       fifo0[13],                        fifo1[13];  static unsigned long pb1 = 0xbb1f3480L,                        pb2 = 0x5d8f9a40L,                        pb3 = 0xaec7cd00L,                       pb4 = 0x5763e680L,                        pb5 = 0x2bb1f340L,                        pb6 = 0xcb7a89c0L;////  fifo0 = 0x1,0x3,0x7,...,0x1fffffff,//  if ( fifo1[ch] & 0x20000000L)      fifo0[ch] = (fifo0[ch] << 1) + 0x1;  else     fifo0[ch] = fifo0[ch] << 1;      fifo1[ch] = (fifo1[ch] << 1) + bit;  sum = (pream^fifo0[ch]) & 0x3fc00000L;  if ( sum == 0 || sum == 0x3fc00000L)  {////  preamble bit pattern found://  bit 22-29 are 0x8b or 0x74 (= 0x8b^0xff)//    dinv = 0;    if ( sum == 0x3fc00000UL)       dinv = 0x3;    parity = (xors( fifo0[ch] & pb1) << 5) +              (xors( fifo0[ch] & pb2) << 4) +             (xors( fifo0[ch] & pb3) << 3) +              (xors( fifo0[ch] & pb4) << 2) +             (xors( fifo0[ch] & pb5) << 1) +                xors( fifo0[ch] & pb6);    pinv = 0;    if ( fifo1[ch] & 0x40000000L)       pinv = 0xffffffffL;    if ( parity == (fifo0[ch] & 0x3f))    {      parity1 = (xors( fifo1[ch] & pb1) << 5) +                 (xors( fifo1[ch] & pb2) << 4) +                (xors( fifo1[ch] & pb3) << 3) +                 (xors( fifo1[ch] & pb4) << 2) +                (xors( fifo1[ch] & pb5) << 1) +                  xors( fifo1[ch] & pb6);      if ( parity1 == (fifo1[ch] & 0x3f) && ((fifo1[ch] & 0x3) == dinv ))      {      //        printf("preamble found!\n");//        getchar();              chan[ch].sfid = (int)(((fifo1[ch]^pinv) & 0x700) >> 8);        if ( chan[ch].sfid == 1)     // synchronize on subframe 0 if TOW matches        {                            // clock within 300 seconds          TOWs = ((fifo1[ch]^pinv) & 0x3fffffffL) >> 13;          d_tow = clock_tow - TOWs * 6 + 5;          if ( labs( d_tow) < 300)          {            chan[ch].offset = chan[ch].t_count - 59;            ch_epoch_load( ch, (0x1f & ch_epoch_chk( ch)) | 0xa00);  ///// cwk            if ( chan[ch].offset < 0)               chan[ch].offset += 1500;            chan[ch].tr_bit_time = TOWs * 300 - 240;            chan[ch].TOW         = TOWs;            chan[ch].tow_sync    = 1;            thetime              = thetime - d_tow;            clock_tow            = TOWs * 6 - 5;          }        }// allow resync on other subframes if TOW matches clock to 3 seconds// this should improve the re-acquisition time        if ( chan[ch].sfid > 1 && chan[ch].sfid < 6)        {          TOWs = ((fifo1[ch]^pinv) & 0x3fffffffL) >> 13;          d_tow = clock_tow - TOWs * 6 + 5;          if ( labs( d_tow) < 3)          {            chan[ch].offset = chan[ch].t_count - 59 - (chan[ch].sfid - 1) * 300;            ch_epoch_load( ch, (0x1f & ch_epoch_chk( ch)) | 0xa00);  ///// cwk            if ( chan[ch].offset < 0)               chan[ch].offset += 1500;            chan[ch].tr_bit_time = TOWs * 300 - 240;            chan[ch].tow_sync    = 1;          }        }      }    }  }  // --- if ( sum == 0 || sum == 0x3fc00000L) ---//  a 1500 bit frame of data is ready to be read  if (( chan[ch].t_count-chan[ch].offset) % 1500 == 0)     chan[ch].frame_ready = 1;  return;  }/*******************************************************************************FUNCTION xors()RETURNS  IntegerPARAMETERS        pattern  a 32 bit dataPURPOSE        check the patternWRITTEN BY  Clifford Kelley*******************************************************************************/int xors( long pattern){  int count = 0, i;    pattern = pattern >> 6;  for ( i=0; i<=25; i++)  {    count += (int)( pattern & 0x1);    pattern = pattern >> 1;  }  count = count % 2;  return (count);}/*******************************************************************************FUNCTION sign()RETURNS  IntegerPARAMETERS LongPURPOSE       This function returns +1 when parameter is positive            0 when zero           -1 when negativeWRITTEN BY  Clifford Kelley*******************************************************************************/inline int sign( long data){  int result;    if      ( data > 0 )     result = 1;  else if ( data == 0 )     result = 0;  else if ( data < 0 )     result = -1;  return(result);}/*******************************************************************************FUNCTION bsign()RETURNS  IntegerPARAMETERS long integerPURPOSEWRITTEN BY  Clifford Kelley*******************************************************************************/inline int bsign( long data){  int result;    if ( data > 0 )     result = 1;  else      result = 0;  return (result);}/*******************************************************************************FUNCTION bit_test()RETURNS  None.PARAMETERS None.PURPOSEWRITTEN BY  Clifford Kelley*******************************************************************************/inline int  bit_test( int data, char bit_n){  return (data & test[bit_n]);}/*******************************************************************************FUNCTION near_int()RETURNS  longPARAMETERS doublePURPOSE  This function finds the nearest integer of a doubleWRITTEN BY  Clifford Kelley*******************************************************************************/long near_int( double input){  long result;    if ( input > 0.0 )    result = (long) (input + 0.5);  else     result = (long) (input - 0.5);  return result;}/*******************************************************************************FUNCTION velocity()RETURNS  None.PARAMETERS None.PURPOSE  To convert velocity from ecef to local level axesWRITTEN BY  Clifford Kelley*******************************************************************************/void velocity( void){  double  pt,pb,dxn,dyn,dzn,dn_mag,dxe,dye,de_mag,dxu,dyu,dzu;  double  north,east,up;  pt = (a*a-b*b) * sin( rp_llh.lat)*cos( rp_llh.lat);//  printf("vor sqrt() *** 3 ***\n");  pb = sqrt( a*a * cos( rp_llh.lat) * cos( rp_llh.lat) +              b*b * sin( rp_llh.lat) * sin( rp_llh.lat));//  printf("nach sqrt() *** 3 ***\n");  dxn =  a * a * pt / pow( pb, 3) * cos( rp_llh.lat) * cos( rp_llh.lon) -         (a * a / pb + rp_llh.hae) * sin( rp_llh.lat) * cos( rp_llh.lon);  dyn =  a * a * pt / pow( pb, 3) * cos( rp_llh.lat) * sin( rp_llh.lon) -         (a * a / pb + rp_llh.hae) * sin( rp_llh.lat) * sin( rp_llh.lon);  dzn =  b * b * pt / pow( pb, 3) * sin( rp_llh.lat) +         (b * b / pb + rp_llh.hae) * cos( rp_llh.lat);//  printf("vor sqrt() *** 4 ***\n");  dn_mag = sqrt( dxn * dxn + dyn * dyn + dzn * dzn);  // north magnitude//  printf("nach sqrt() *** 4 ***\n");  if ( dn_mag == 0.0)     north = 0.0;  else     north = (rpvt.xv*dxn+rpvt.yv*dyn+rpvt.zv*dzn)/dn_mag;  dxe = -(a*a/pb + rp_llh.hae) * cos( rp_llh.lat) * sin( rp_llh.lon);  dye =  (a*a/pb + rp_llh.hae) * cos( rp_llh.lat) * cos( rp_llh.lon);//  printf("vor sqrt() *** 5 ***\n");  de_mag = sqrt(dxe*dxe+dye*dye);             // east magnitude//  printf("nach sqrt() *** 5 ***\n");  if ( de_mag == 0.0)     east = 0.0;  else     east = (rpvt.xv * dxe + rpvt.yv * dye) / de_mag;  dxu = cos( rp_llh.lat) * cos( rp_llh.lon);  dyu = cos( rp_llh.lat) * sin( rp_llh.lon);  dzu = sin( rp_llh.lat);  up = rpvt.xv*dxu + rpvt.yv*dyu + rpvt.zv*dzu;   // up magnitude//  printf("vor sqrt() *** 6 ***\n");  speed   = sqrt( north*north + east*east);//  printf("nach sqrt() *** 6 ***\n");  heading = atan2( east, north);  if ( out_vel && stream)     fprintf( stream, "vel north=%lf,east=%lf,up=%lf\n", north, east, up);  return;}/* ------------------------------------------------------------------FUNCTION calc_track_par()RETURNS  None.PARAMETERS None.  float BandWidth   : natural loop frequency  float DampRatio   : damping ratio  float Gain        : loop gain  float *par1   float *par2PURPOSE  Calculate tracking loop parameters from bandwidth and gain------------------------------------------------------------------ */static void calc_track_par( float BandWidth, float DampRatio, float Gain,  float *par1, float *par2){// typical values// loop gain//   CodGain  = 50e-3;    50 if chips are used//   CarGain  = 4*pi*100;  // band width//   CodBW    =  1;  //   CarBW    = 20; // damping ratio//   DampRatio = 0.707 : PLL is critically damped  float wT, c1, c2;  float tupd = UPDATETIME;// wT is natural frequency times update time  wT = 2.0 * BandWidth / (DampRatio + 1.0 / (4.0*DampRatio)) * tupd;  c1 = 1.0 / Gain * 8.0 * DampRatio*wT / (4.0 + 4.0 * DampRatio * wT + wT*wT);  c2 = 1.0 / Gain * 4.0 * wT*wT        / (4.0 + 4.0 * DampRatio * wT + wT*wT);  *par1 = (c1 + c2) / tupd;  *par2 = c1 / tupd;//  printf("calc_track_par: Gain = %e \n", Gain);//  printf("calc_track_par: wT = %e, BandWidth = %e \n", wT, BandWidth);//  printf("calc_track_par: c1 = %e, c2 = %e, tupd = %e\n", c1, c2, tupd);//  printf("calc_track_par: par1 = %e, par2 = %e, tupd = %e\n", *par1, *par2, tupd);//  getchar();  return;}static void init_tracking_par( void){//  tracking loops in tracking state  calc_track_par( bw_car_track, damp_car_track, gain_car_track,     &car_PLL_track_p1, &car_PLL_track_p2);  calc_track_par( bw_cod_track, damp_cod_track, gain_cod_track,     &cod_PLL_track_p1, &cod_PLL_track_p2);//  tracking loops in pul

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲bdsm女犯bdsm网站| 精品粉嫩超白一线天av| 宅男在线国产精品| 久久理论电影网| 亚洲综合一区二区精品导航| 婷婷一区二区三区| 懂色av一区二区夜夜嗨| 欧美视频日韩视频在线观看| 日韩欧美中文字幕一区| 亚洲天堂久久久久久久| 秋霞电影网一区二区| 成人一道本在线| 欧美一区二区视频在线观看2022 | 亚洲一级不卡视频| 九九久久精品视频| 日本丶国产丶欧美色综合| 欧美va亚洲va在线观看蝴蝶网| 中文字幕一区二| 久久国产三级精品| 一本大道久久a久久综合| 欧美电影免费观看高清完整版在 | 欧美私模裸体表演在线观看| 久久精品这里都是精品| 亚洲国产美女搞黄色| 高清免费成人av| 日韩三级高清在线| 亚洲午夜久久久久久久久电影院 | 亚洲视频图片小说| 久久国产尿小便嘘嘘| 欧美特级限制片免费在线观看| 国产日韩成人精品| 日韩av不卡在线观看| 色综合久久六月婷婷中文字幕| 精品国产一区a| 亚洲电影一区二区三区| 99久久精品国产网站| 久久午夜羞羞影院免费观看| 日韩激情视频网站| 色猫猫国产区一区二在线视频| 久久众筹精品私拍模特| 免费观看91视频大全| 欧洲生活片亚洲生活在线观看| 欧美国产一区在线| 国产在线一区观看| 欧美一级黄色录像| 五月激情六月综合| 欧洲av一区二区嗯嗯嗯啊| 136国产福利精品导航| 丰满少妇在线播放bd日韩电影| 欧美va日韩va| 秋霞影院一区二区| 91麻豆精品国产无毒不卡在线观看| 一区二区视频在线| 99国内精品久久| 国产精品久久福利| 国产成人在线看| 亚洲精品一区二区三区99| 免费看日韩a级影片| 欧美日韩国产123区| 亚洲成人综合在线| 欧美三级中文字幕在线观看| 亚洲精品国产无套在线观| 97成人超碰视| 综合电影一区二区三区 | 亚洲欧美综合在线精品| 国产a精品视频| 国产丝袜欧美中文另类| 国产一区二区三区黄视频 | 国产成人免费视频| 久久久久综合网| 国产激情偷乱视频一区二区三区| 久久久影视传媒| 国产成人av电影在线| 国产免费久久精品| 成人91在线观看| 亚洲视频 欧洲视频| 91丨porny丨最新| 亚洲精品国产a久久久久久| 欧美性做爰猛烈叫床潮| 亚洲一区成人在线| 日韩欧美中文字幕一区| 狠狠色丁香九九婷婷综合五月| wwwwxxxxx欧美| 国产suv精品一区二区三区| 国产精品免费看片| 91福利在线播放| 日韩精品色哟哟| 精品伦理精品一区| 懂色av一区二区三区蜜臀| 综合中文字幕亚洲| 欧美日韩国产综合一区二区三区 | 精品国产一区二区三区av性色 | 亚洲欧洲一区二区三区| 欧洲精品一区二区三区在线观看| 亚洲1区2区3区4区| 精品国产乱码久久久久久牛牛| 国产精品亚洲第一区在线暖暖韩国| 日本一区二区在线不卡| 91蜜桃网址入口| 亚洲高清一区二区三区| 精品久久国产字幕高潮| 成熟亚洲日本毛茸茸凸凹| 一区二区三区免费在线观看| 日韩一级片在线播放| 成人综合在线观看| 亚洲成人动漫精品| 久久噜噜亚洲综合| 欧美在线视频不卡| 国内久久婷婷综合| 亚洲天堂成人在线观看| 91精品国产综合久久福利| 国产乱人伦偷精品视频免下载 | 91麻豆精品秘密| 日本在线不卡一区| 国产精品嫩草久久久久| 欧美日韩精品高清| 国产成人在线视频网址| 一区二区欧美视频| 国产亚洲综合色| 欧美性视频一区二区三区| 韩国中文字幕2020精品| 亚洲精品自拍动漫在线| 精品卡一卡二卡三卡四在线| av在线这里只有精品| 美女尤物国产一区| 亚洲黄色性网站| 精品国产99国产精品| 在线日韩一区二区| 岛国av在线一区| 日本在线不卡视频一二三区| 亚洲人成小说网站色在线| 欧美不卡激情三级在线观看| 色呦呦网站一区| 国产精品资源在线看| 亚洲第一狼人社区| 一区在线中文字幕| 26uuu国产一区二区三区| 欧美色涩在线第一页| zzijzzij亚洲日本少妇熟睡| 久久国产免费看| 日韩精品亚洲专区| 一片黄亚洲嫩模| 国产精品国产三级国产aⅴ原创 | 国产成人精品aa毛片| 日韩国产一二三区| 亚洲女性喷水在线观看一区| 久久一留热品黄| 欧美一级在线视频| 在线视频一区二区免费| 成人午夜视频福利| 九九久久精品视频| 免费看精品久久片| 五月婷婷久久丁香| 亚洲一区免费观看| 亚洲色图欧美在线| 国产精品你懂的在线| 欧美精品一区二| 欧美tickling网站挠脚心| 欧美二区三区的天堂| 欧美三级电影在线观看| 色94色欧美sute亚洲13| fc2成人免费人成在线观看播放| 国产综合色在线视频区| 久久精品国产澳门| 人人狠狠综合久久亚洲| 日韩成人av影视| 五月婷婷欧美视频| 亚洲国产美国国产综合一区二区| 一区二区在线免费观看| 亚洲美女屁股眼交3| 《视频一区视频二区| 亚洲欧洲国产日韩| **欧美大码日韩| 亚洲欧美日韩国产成人精品影院| 国产精品不卡一区二区三区| 国产精品私人自拍| 亚洲欧美综合另类在线卡通| 成人免费在线视频| 成人欧美一区二区三区在线播放| 中文字幕日韩精品一区| 亚洲视频香蕉人妖| 亚洲黄色小说网站| 亚洲成人激情自拍| 日韩电影在线免费| 麻豆久久久久久久| 精品一区二区三区免费观看| 国产精选一区二区三区| 国产v日产∨综合v精品视频| 本田岬高潮一区二区三区| 成人av中文字幕| 91福利视频网站| 欧美高清视频不卡网| 日韩欧美国产综合| 久久综合丝袜日本网| 国产精品素人一区二区| 亚洲美女电影在线| 天堂成人国产精品一区| 久久国产婷婷国产香蕉| 国产99久久久国产精品潘金| 91免费国产在线|