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

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

?? gpsrcvr.c

?? C寫的用軟件無線電實現的GPS模擬程序
?? C
?? 第 1 頁 / 共 5 頁
字號:
    if ( gps_alm[i].inc>0.0 && gps_alm[i].week!=gps_week)       almanac_valid=0;  }  if ( Iono.al0 == 0.0 && Iono.b0 == 0.0)    almanac_valid = 0;  for (ch=0; ch<=chmax; ch++) // if no satellite is being tracked                              // turn the channel off  {    if ( chan[ch].CNo < 25.0 )    {      chan[ch].state = off;      chan[ch].prn   = 0;    }  }  for ( i=0; i<=chmax; i++)  {    alloc = 0;    for (ch=0; ch<=chmax; ch++)    {      if ( chan[ch].prn == cold_prn)      {        alloc=1;             // satellite is already allocated a channel        break;      }    }    if (alloc == 0) // if not allocated find an empty channel    {      for ( ch=0; ch<=chmax; ch++)      {        if ( chan[ch].state == off)        {          chan[ch].carrier_corr = (long)( -clock_offset * 1575.42 / FRQUNIT);  // GB: cast inserted//          printf("cold_allocate: carrier_ref = %x (%d), chan[ch].carrier_corr = %x (%d)\n", //           carrier_ref, carrier_ref, chan[ch].carrier_corr, chan[ch].carrier_corr);//           getchar();          chan[ch].carrier_freq = carrier_ref + chan[ch].carrier_corr;       // set carrier          ch_carrier( ch, chan[ch].carrier_freq);                            // select carrier          chan[ch].code_freq = code_ref;          ch_code( ch, chan[ch].code_freq);           // 1.023 MHz chipping rate//  0xa000 : select late code in tracking arm          ch_cntl( ch, prn_code[cold_prn] | 0xa000);  //          chan[ch].prn      = cold_prn;          if ( PRNChn[cold_prn])            chan[ch].prn      = PRNChn[cold_prn];          else              chan[ch].prn      = cold_prn;          ch_on( ch);          chan[ch].state    = acquisition;          chan[ch].codes    = 0;          chan[ch].n_freq   = search_min_f;          chan[ch].del_freq = 1;          cold_prn          = cold_prn % 32 + 1;          break;        }       }  // for ( ch=0; ch<=chmax; ch++)    }  // if (alloc==0)  }  // for (i=0; i<=chmax; i++)}/*******************************************************************************FUNCTION rss( long a, long b)RETURNS  long integerPARAMETERS      a  long integer      b  long integerPURPOSE  This function finds the fixed point magnitude of a 2 dimensional vectorWRITTEN BY  Clifford Kelley*******************************************************************************/inline long rss( long a, long b){  long result, c, d;// --- G.B. 02/03/26 ---////  sqrt(a^2+b^2) ~ |a*(1+(b/a)^2/2)| = |a+b^2/(2*a)|  if |b| < |a|//                ~ |b*(1+(a/b)^2/2)| = |b+a^2/(2*b)|  if |a| < |b|//  c = labs( a);  d = labs( b);  if ( c == 0)    result = d;  else if ( d == 0)    result = c;  else if ( d <= c)    result = labs( c + d*d / (2*c));  else if ( d > c)    result = labs( d + c*c / (2*d));// --- G.B. 02/03/26 ---//  //  if ( c == 0 && d == 0) //    result = 0;//  else//  {//    if ( c > d) //      result = ( d >> 1) + c;//    else     //      result = ( c >> 1) + d;//  }  return (result);}/*******************************************************************************FUNCTION ch_acq()RETURNS  None.PARAMETERS None.PURPOSEWRITTEN BY  Clifford Kelley*******************************************************************************/static void ch_acq( char ch){  long prompt_mag, dith_mag;//  if ( ch == 0)//    printf( "*** ch_acq ***\n");// ************** debug *******************//  if ( ch==0)//  {//    extern unsigned long Sample_Counter_Start[], Sample_Counter_End[];////    printf( "acq: (%d-%d) Ip=%4d, Qp=%4d, Id=%4d, Qd=%4d, r/lk:%5.2f, d/lk:%.2f\n", //      Sample_Counter_Start[0], Sample_Counter_End[0], //      chan[ch].i_prmt, chan[ch].q_prmt, chan[ch].i_dith, chan[ch].q_dith, //      chan[ch].car_lock_det, chan[ch].cod_lock_det);//    getchar();  //  }  // ************** debug *******************  if ( abs( chan[ch].n_freq) <= search_max_f)        // search frequencies  {    prompt_mag = rss( chan[ch].i_prmt, chan[ch].q_prmt);    dith_mag   = rss( chan[ch].i_dith, chan[ch].q_dith);//  acq_thresh = 650 (default)    if (( dith_mag > acq_thresh) && ( prompt_mag > acq_thresh))    {// <<< **** >>>//      ch_code_slew( ch, 2044);         // slew back 1 chip so we can// <<< **** >>>      chan[ch].state     = confirm;    // confirm the signal      chan[ch].i_confirm = 0;      chan[ch].n_thresh  = 0;//      printf("ch_acq: acq->conf, prompt_mag: %d, dith_mag: %d, acq_thresh: %d\n",//        prompt_mag, dith_mag, acq_thresh);//      getchar();    }    else    {// <<< **** >>>//      ch_code_slew( ch, 2);            // slew forward 1 chip//      chan[ch].codes += 2;      ch_code_slew( ch, 1);            // slew forward 1 chip      chan[ch].codes += 1;// <<< **** >>>//      printf("ch_acq: below thresh - ch_code_slew -> 2, prompt_mag: %d, dith_mag: %d, acq_thresh: %d\n",//        prompt_mag, dith_mag, acq_thresh);//      getchar();    }    if ( chan[ch].codes == 2044)    {//  stepped thru complete code period, now step to next frequency          chan[ch].n_freq      += chan[ch].del_freq;//  step forward and backwards with increasing widths :  0,1,-1,2,-2, ...      chan[ch].del_freq     = -(chan[ch].del_freq + sign( chan[ch].del_freq));      chan[ch].carrier_freq = carrier_ref + chan[ch].carrier_corr +         delta_frq * chan[ch].n_freq;   // set carrier//      printf("ch_acq: carrier_ref = %x (%d), chan[ch].carrier_corr = %x (%d) \n",//        carrier_ref, carrier_ref, chan[ch].carrier_corr, chan[ch].carrier_corr);//      printf("ch_acq: delta_frq = %x (%d), chan[ch].n_freq = %x (%d)", //        delta_frq, delta_frq, chan[ch].n_freq, chan[ch].n_freq);//      getchar();      ch_carrier( ch, chan[ch].carrier_freq);           // select carrier      chan[ch].codes        = 0;    }  }  else  {    chan[ch].n_freq       = search_min_f;               // keep looping    chan[ch].del_freq     = 1;    chan[ch].carrier_freq = carrier_ref + chan[ch].carrier_corr +       delta_frq * chan[ch].n_freq;                         // set carrier frq//    printf("ch_acq: carrier_ref = %x (%d), chan[ch].carrier_corr = %x (%d) \n",//     carrier_ref, carrier_ref, chan[ch].carrier_corr, chan[ch].carrier_corr);//    printf("ch_acq: delta_frq = %x (%d), chan[ch].n_freq = %x (%d)", //     delta_frq, delta_frq, chan[ch].n_freq, chan[ch].n_freq);//     getchar();    ch_carrier( ch, chan[ch].carrier_freq);             // select carrier    chan[ch].codes = 0;  }}/*******************************************************************************FUNCTION ch_confirm()RETURNS  None.PARAMETERS None.PURPOSEWRITTEN BY  Clifford Kelley*******************************************************************************/static void ch_confirm( char ch){  long prompt_mag, dith_mag;//  if ( ch == 0)//    printf( "*** ch_confirm ***\n");// ************** debug *******************//  if ( ch==0)//  {//    extern unsigned long Sample_Counter_Start[], Sample_Counter_End[];////    printf( "cnf: (%d-%d) Ip=%4d, Qp=%4d, Id=%4d, Qd=%4d, r/lk:%.2f, d/lk:%.2f\n", //      Sample_Counter_Start[0], Sample_Counter_End[0], //      chan[ch].i_prmt, chan[ch].q_prmt, chan[ch].i_dith, chan[ch].q_dith, //      chan[ch].car_lock_det, chan[ch].cod_lock_det);//    getchar();  //  }  // ************** debug *******************  prompt_mag = rss( chan[ch].i_prmt, chan[ch].q_prmt);  dith_mag   = rss( chan[ch].i_dith, chan[ch].q_dith);  if (( prompt_mag > acq_thresh) || (dith_mag > acq_thresh))   {    chan[ch].n_thresh++;//    printf( "ch_confirm: above thresh, prompt: %d, dith: %d, acq_thresh: %d\n", //      prompt_mag, dith_mag, acq_thresh);  }//  else//  {//    printf( "ch_confirm: below thresh, prompt: %d, dith: %d, acq_thresh: %d\n", //      prompt_mag, dith_mag, acq_thresh);//    printf( "ch_confirm: chan[%d].i_prmtpt =  %d, chan[%d].q_prmtpt = %d\n", //      ch, chan[ch].i_prmtpt, ch, chan[ch].q_prmtpt);//    getchar();  //  }    //// channel need to be confirmed 'confirm_m' (10) times// before being promoted to state 'pull_in'////  printf( "ch_confirm: chan[ch].i_confirm: %d, confirm_m: %d\n",//    chan[ch].i_confirm, confirm_m);  if ( chan[ch].i_confirm == confirm_m)  {//    printf( "ch_confirm: chan[ch].n_thresh: %d, n_of_m_thresh: %d\n",//      chan[ch].n_thresh, n_of_m_thresh);//    getchar();    if ( chan[ch].n_thresh >= n_of_m_thresh)    {      chan[ch].state   = pull_in;      chan[ch].ch_time = 0;      chan[ch].sum     = 0;      chan[ch].th_rms  = 0;    }    else       chan[ch].state = acquisition;   // fall back to acquisition state  }  chan[ch].i_confirm++;  return;}/*******************************************************************************FUNCTION fix_atan2( long y, long x)RETURNS  long integerPARAMETERS       x  in phase fixed point value      y  quadrature fixed point valuePURPOSE      This function computes the fixed point arctangent represented by      x and y in the parameter list      1 radian = 16384 = 2^14      based on the power series  f - f^3*2/9WRITTEN BY  Clifford Kelley  Fixed for y==x  added special code for x==0*******************************************************************************/// pi/2 * 16384#define SCALED_PI_ON_2  25736L// pi * 16384#define SCALED_PI       51472L// pi * 16384#define SCALED_2PI     102944Linline long fix_atan2( long y, long x){  long result, n, n3;    if ((x == 0) && (y == 0))    return (0); // invalid case  if ( x > 0 && x >= labs( y))  {     n  = (y << 14) / x;     n3 = ((((n*n) >> 14) * n) >> 13) / 9;     result = n-n3;  }  else if( x <= 0 && -x >= labs( y))  {     n  = (y << 14) / x;     n3 = ((((n*n) >> 14)*n) >> 13)/9;     if ( y > 0)        result = n - n3 + SCALED_PI;     else       result = n - n3 - SCALED_PI;  }  else if( y > 0 &&  y > labs( x))  {     n  = (x << 14) / y;     n3 = ((((n*n) >> 14) * n) >> 13) / 9;     result = SCALED_PI_ON_2 - n + n3;  }  else if( y < 0 && -y > labs( x))  {     n  = (x << 14) / y;     n3 = ((((n*n) >> 14) * n) >> 13) / 9;     result = -n + n3 - SCALED_PI_ON_2;  }  return (result);}/*******************************************************************************FUNCTION analyze_databit_histogram()RETURNS    Start of bit transition (number between 0,...,19)   or -1 (too noise, back to acq)PARAMETERS   ch : channel numberPURPOSE  Find start of bit transition within 20 x 1 msec segments (bit   synchronization) using histogram method.  REFERENCES  Krunvieda et al., A complete IF software GPS receiver: a tutorial about    the detail, Data Fusion CorporationWRITTEN BY  G. Beyerle  TO DONOTES*******************************************************************************/static int analyze_databit_histogram( int ch){  int i, maxhistidx, ret = -1;   unsigned int maxhist = 0, nofentry = 0;  //  printf( "bithist (%d):", ch);  for ( i=0; i<NOFMSECPERDATABIT; i++)  {//    printf( " %d", chan[ch].databithist[i]);        nofentry += chan[ch].databithist[i];    if ( maxhist < chan[ch].databithist[i])    {      maxhist = chan[ch].databithist[i];      maxhistidx = i;    }// --- clear array ---    chan[ch].databithist[i] = 0;  }  //  printf( "\n");// --- more than 50% of events in one bin -> synchronized! ---  if ( 2 * maxhist > nofentry)    ret = maxhistidx;  return (ret);}/*******************************************************************************FUNCTION ch_pull_in()RETURNS    nonePARAMETERS   ch : channel numberPURPOSE  Pull in carrier and code frequency by trying to track the signal with 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区四区五区入口| 91视频一区二区三区| 三级久久三级久久久| 亚洲国产cao| 午夜欧美视频在线观看| 日韩精品国产精品| 婷婷综合在线观看| 日韩中文字幕av电影| 国产成人在线看| 丁香另类激情小说| 亚洲午夜久久久久中文字幕久| 日本精品一区二区三区高清| 国产精品一级黄| 激情图区综合网| 9191精品国产综合久久久久久| 日本电影欧美片| 精品国产三级电影在线观看| 国产欧美日韩在线观看| 亚洲福利一二三区| 粉嫩av亚洲一区二区图片| 在线观看视频91| 国产精品嫩草久久久久| 日本特黄久久久高潮| 91天堂素人约啪| 日本电影亚洲天堂一区| 欧美二区三区的天堂| 国产精品午夜电影| 捆绑紧缚一区二区三区视频| 99视频热这里只有精品免费| 日韩视频一区二区三区| 中文字幕视频一区二区三区久| 蜜臀va亚洲va欧美va天堂 | 国产喂奶挤奶一区二区三区| 亚洲超碰精品一区二区| 91性感美女视频| 久久免费的精品国产v∧| 亚洲mv在线观看| 欧美午夜精品电影| 亚洲欧美经典视频| 成人性色生活片免费看爆迷你毛片| 欧美日韩免费在线视频| 依依成人精品视频| 91蝌蚪国产九色| 亚洲综合久久av| 国产成人精品免费视频网站| 久久久亚洲精华液精华液精华液| 日本大胆欧美人术艺术动态| 欧美天堂一区二区三区| 国产精品久久久久久久久搜平片 | 国产精品1区2区3区在线观看| 日韩一区二区三区视频在线| 午夜精品久久久久影视| 欧美日韩黄色影视| 美女任你摸久久| 国产日韩欧美综合一区| av欧美精品.com| 亚洲愉拍自拍另类高清精品| 欧美日韩免费视频| 麻豆成人91精品二区三区| 久久午夜色播影院免费高清| 国产精品一级二级三级| 国产精品视频免费看| 日本韩国欧美在线| 舔着乳尖日韩一区| 国产日韩欧美高清| 欧美性受极品xxxx喷水| 免费成人在线视频观看| 国产精品视频第一区| 在线欧美日韩精品| 久久www免费人成看片高清| 久久色在线视频| 在线免费精品视频| 日韩成人精品在线观看| 中文字幕巨乱亚洲| 欧美性videosxxxxx| 国产精品一区二区x88av| 亚洲免费av观看| 精品久久一区二区三区| 欧美色图免费看| 成人不卡免费av| 韩国女主播成人在线观看| 五月天丁香久久| 国产精品丝袜在线| 精品国精品国产尤物美女| 国内久久婷婷综合| 亚洲精品成人精品456| 久久亚洲免费视频| 久久精品国产精品亚洲精品| 国产精品久线在线观看| 亚洲韩国一区二区三区| 日韩av在线免费观看不卡| 久久精品国产亚洲a| 国产精品亚洲一区二区三区妖精 | 日本成人在线视频网站| 精久久久久久久久久久| av在线这里只有精品| 欧美影院精品一区| 精品国内二区三区| 综合精品久久久| 日本亚洲免费观看| 国产91精品精华液一区二区三区| 懂色av一区二区夜夜嗨| 正在播放亚洲一区| 自拍视频在线观看一区二区| 亚洲欧美一区二区三区孕妇| 亚洲欧美日韩电影| 中文字幕一区二区三区不卡在线| 日韩欧美电影在线| 久久理论电影网| 欧美哺乳videos| 亚洲国产精品成人综合色在线婷婷 | 欧美一级日韩一级| 中文字幕在线一区免费| 蜜桃av一区二区| 色94色欧美sute亚洲线路一久| 精品国产一区二区在线观看| 亚洲国产欧美在线| 91女人视频在线观看| 91久久人澡人人添人人爽欧美| 91精品国产综合久久久久久久久久| 亚洲欧洲av在线| 国产aⅴ综合色| 久久久综合激的五月天| 亚欧色一区w666天堂| 色综合久久久网| 自拍偷拍亚洲综合| 9l国产精品久久久久麻豆| 亚洲精品在线三区| 麻豆国产一区二区| 日韩欧美亚洲国产另类| 日韩专区在线视频| 欧美视频完全免费看| 亚洲欧美另类小说| 91欧美激情一区二区三区成人| 国产精品欧美精品| 成人黄色777网| 久久久精品tv| 国产91丝袜在线18| 最新久久zyz资源站| 色综合一区二区| 视频在线观看91| 精品精品国产高清一毛片一天堂| 美国毛片一区二区| 久久免费看少妇高潮| 成人一二三区视频| 亚洲丝袜精品丝袜在线| 欧美日韩国产一级| 国产一区二区三区| 国产精品传媒在线| 欧美日韩精品一区二区天天拍小说| 免费观看成人av| 国产视频一区二区在线| 99精品国产热久久91蜜凸| 亚洲综合免费观看高清完整版| 欧美日本一区二区三区四区| 久久91精品国产91久久小草| 中文字幕不卡在线观看| 在线观看网站黄不卡| 久久99精品一区二区三区三区| 国产精品久久久久永久免费观看 | 免费看日韩精品| 久久久精品蜜桃| 欧美三级三级三级爽爽爽| 国产自产2019最新不卡| 国产精品夫妻自拍| 欧美日韩精品电影| 成人黄色综合网站| 免费观看在线综合| 国产精品私人影院| 日韩一级视频免费观看在线| www.欧美亚洲| 黄页视频在线91| 免费视频一区二区| 亚洲一区在线电影| 亚洲同性同志一二三专区| 欧美大片一区二区| 国产乱码精品1区2区3区| 日本一区二区视频在线观看| 2023国产精品自拍| 精品污污网站免费看| 色综合久久久久久久| 99久久99久久免费精品蜜臀| 国产一区二区三区四区五区美女 | 91污在线观看| 日本国产一区二区| 99久久精品费精品国产一区二区| 成人一区二区三区中文字幕| 国产在线不卡一区| 粉嫩av一区二区三区粉嫩 | 欧美成人乱码一区二区三区| 在线观看91av| 精品黑人一区二区三区久久 | 免费国产亚洲视频| 激情图区综合网| 国产91在线|亚洲| 91小视频免费看| 欧美日韩国产影片| 欧美大片在线观看一区| 久久综合久久综合亚洲| 中文字幕av一区 二区|