聊一聊一些熒幕和現(xiàn)場背后的圖像故事(30)--追蹤和捕捉
怎么控制繪圖精度
AutoCAD 有幾種功能來確保你能精確的繪圖。來看看這些你熟悉卻沒用精用的功能:
極軸追蹤。捕捉到最近的預(yù)設(shè)角度并沿該角度指定距離。
鎖定角度。鎖定到單個(gè)指定角度并沿該角度指定距離。
對(duì)象捕捉。捕捉到現(xiàn)有對(duì)象上的精確位置,例如多線段的端點(diǎn)、直線的中點(diǎn)或圓的中心點(diǎn)。
柵格捕捉。捕捉到矩形柵格中的增量。
坐標(biāo)輸入。通過笛卡爾坐標(biāo)或極坐標(biāo)指定絕對(duì)或相對(duì)位置。
當(dāng)然三個(gè)最常用的功能是極軸追蹤、鎖定角度和對(duì)象捕捉。
極軸追蹤
我們可以使用極軸追蹤來引導(dǎo)光標(biāo)以特定方向移動(dòng)。
例如,指定下面直線的第一個(gè)點(diǎn)后,將光標(biāo)移動(dòng)到右側(cè),然后在“命令”窗口中輸入距離以指定直線的精確水平長度。

默認(rèn)情況下,極軸追蹤處于打開狀態(tài)并引導(dǎo)光標(biāo)以水平或垂直方向(0 或 90 度)移動(dòng)。
當(dāng)然你也可以設(shè)置30°、45°等等。
鎖定角度
如果需要以指定的角度繪制直線,可以鎖定下一個(gè)點(diǎn)的角度。例如,如果直線的第二個(gè)點(diǎn)需要以 45 度角創(chuàng)建且長度為 8 個(gè)單位,則需要在“命令”窗口中輸入 <45,如圖所示。

按所需的方向沿 45 度角移動(dòng)光標(biāo)后,可以輸入直線的長度。
對(duì)象捕捉
到目前為止,在對(duì)象上指定精確位置的最重要方式是使用對(duì)象捕捉。
在下圖中,通過標(biāo)記來表示多個(gè)不同種類的對(duì)象捕捉,認(rèn)準(zhǔn)這些標(biāo)記。

只要 AutoCAD 提示可以指定點(diǎn),對(duì)象捕捉就會(huì)在命令執(zhí)行期間變?yōu)榭捎?。例如,如果?chuàng)建一條新線,然后將光標(biāo)移動(dòng)到現(xiàn)有直線端點(diǎn)的附近,光標(biāo)將自動(dòng)捕捉它。

設(shè)置默認(rèn)對(duì)象捕捉
輸入 OSNAP 命令以設(shè)置默認(rèn)對(duì)象捕捉,也稱為“運(yùn)行”對(duì)象捕捉。
可以根據(jù)自己的喜好設(shè)置,例如有時(shí)啟用“中點(diǎn)”對(duì)象捕捉很有用,反正你開心就好哈哈哈。

技巧預(yù)警
1. 在提示輸入點(diǎn)時(shí),可以單獨(dú)執(zhí)行一種對(duì)象捕捉。
按住 Shift 鍵,在繪圖區(qū)域中單擊鼠標(biāo)右鍵,然后從“對(duì)象捕捉”菜單中選擇對(duì)象捕捉。然后,使用光標(biāo)在對(duì)象上選擇一個(gè)位置。
2. 請(qǐng)確保放大到足夠大以避免出現(xiàn)錯(cuò)誤。在復(fù)雜的模型中,捕捉到錯(cuò)誤對(duì)象將導(dǎo)致可能傳播到整個(gè)模型的錯(cuò)誤,不騙你真的。
對(duì)象捕捉追蹤
在命令執(zhí)行期間,可以從對(duì)象捕捉位置水平和垂直對(duì)齊點(diǎn)。
例如在下圖中,首先將光標(biāo)懸停在端點(diǎn) 1 上,然后懸停在端點(diǎn) 2 上。
光標(biāo)移近位置 3 時(shí),光標(biāo)將鎖定到水平和垂直位置。

捕捉好了,就可以從該位置創(chuàng)建的直線、圓或其他對(duì)象!
驗(yàn)證是否精確
想要檢查畫的距離對(duì)不對(duì),就輸入 DIST 命令(或僅 DI)來測(cè)量模型中任意兩點(diǎn)之間的距離。
例如,下圖所示,這可能表示墻角和小桌子角,也可能表示塑料零件和電線的二維截面。
輸入 DIST 后,單擊角點(diǎn) (1) 上的端點(diǎn)。接下來,按住 Shift 鍵,同時(shí)單擊鼠標(biāo)右鍵,然后從對(duì)象捕捉菜單中選擇“垂直”。最后,單擊圓 (2)。

對(duì)象捕捉是追蹤的基礎(chǔ),必須設(shè)置對(duì)象捕捉才能從對(duì)象的捕捉點(diǎn)進(jìn)行追蹤。所謂的追蹤就是:可以沿著基于對(duì)象捕捉點(diǎn)的對(duì)齊路徑進(jìn)行追蹤。操作方法如下:
1、首先在電腦中打開cad軟件,開啟捕捉后,遇到點(diǎn)對(duì)點(diǎn),或者是中心點(diǎn)垂直這個(gè)點(diǎn)。

2、開啟捕捉,只需要點(diǎn)擊軟下方的對(duì)象捕捉按鈕即可,找不到的點(diǎn)擊快捷鍵“F3”即可打開和關(guān)閉。

3、開啟后,不是所有的點(diǎn)都是被捕捉的,還要設(shè)置需要捕捉對(duì)象的模式,在軟件下方的對(duì)象捕捉圖標(biāo)點(diǎn)擊左鍵是開啟,點(diǎn)擊右鍵則是選擇捕捉的模式。

4、還可以輸入快捷鍵“SE”來打開對(duì)象捕捉的設(shè)置界面,輸入后點(diǎn)擊回車或者是空格即可執(zhí)行這個(gè)快捷方式。

5、執(zhí)行后,在出現(xiàn)的界面,點(diǎn)擊對(duì)象捕捉的選項(xiàng)卡,然后設(shè)置對(duì)象捕捉的模式,點(diǎn)擊確定即可。

\qquad本小節(jié)將對(duì)這些狀態(tài)響應(yīng)函數(shù)以及不同狀態(tài)之間的轉(zhuǎn)換關(guān)系做進(jìn)一步說明。
1、捕獲
\qquad一個(gè)通道,在未分配衛(wèi)星和初始化之前,處于關(guān)閉狀態(tài)(CHANNEL_OFF);在分配了衛(wèi)星和初始化之后,進(jìn)入捕獲狀態(tài)(CHANNEL_ACQUISITION)。捕獲狀態(tài)的響應(yīng)函數(shù)(簡稱捕獲函數(shù))為gps_acquire(…),任務(wù)是找到一個(gè)高相關(guān)峰值:
通過搜索GPS L1信號(hào)的頻率空間和碼空間,找到一個(gè)具有高相關(guān)功率值(超過預(yù)定閾值A(chǔ)CQ_thresh)的頻率值和碼相位;
一旦找到了這樣的值,切換通道到確認(rèn)狀態(tài) (CHANNEL_CONFIRM),以便做進(jìn)一步考察;
如果搜索完整個(gè)二維空間也未找到這樣的值,復(fù)位通道為關(guān)閉狀態(tài)(CHANNEL_OFF);
否則(未搜索完整個(gè)二維空間),保持通道的捕獲狀態(tài)。
下面對(duì)函數(shù)中應(yīng)用的常數(shù)和算法予以說明。
(1) 載波/碼搜索區(qū)間和步長
\qquad為了進(jìn)行信號(hào)捕獲,需要搜索載波頻率和碼相位空間,直到檢測(cè)到信號(hào)。偏離載波頻率標(biāo)稱值(IF信號(hào)中心頻率)的最大值由最大載波多普勒頻移加上最大接收時(shí)鐘誤差來定義。最大碼相位由(固定的)碼長度定義。典型地,在一個(gè)給定的載波頻率上搜索所有碼相位,然后再推進(jìn)到下一個(gè)載波頻率上重復(fù)碼相位搜索。為此,在AGRS_GP_1代碼實(shí)現(xiàn)中,進(jìn)行了以下設(shè)置:
IF信號(hào)中心頻率:4.092 MHz
最大接收時(shí)鐘誤差:0(缺省值)
載波搜索區(qū)間:±10 kHz
載波搜索步長:500 Hz
碼搜索區(qū)間:0 ~ 1023碼片
碼搜索步長:0.5碼片
(2) 載波NCO頻率控制字
\qquad在基帶模塊中,一個(gè)通道的載波NCO頻率受控于它的頻率控制字f_control。一旦導(dǎo)航軟件將f_control新值設(shè)置到基帶模塊的指定通道,通道的載波NCO頻率立即就會(huì)改變,從而引起載波NCO信號(hào)的變化。具體而言,f_control數(shù)值按以下公式計(jì)算:
\qquadf = fControl * Clk / 2^N
其中:
\qquadf = 所要求的載波頻率;
\qquadClk = 16.368*6 MHz(基帶模塊時(shí)鐘頻率)
\qquadN = 30 (相位累加器的位長)
\qquadfControl = 29-位(無符號(hào))控制字
(3) 碼NCO頻率控制字
\qquad在基帶模塊中,一個(gè)通道的碼NCO頻率受控于它的頻率控制字f_control。一旦導(dǎo)航軟件將f_control新值設(shè)置到基帶模塊的指定通道,通道的碼NCO頻率就會(huì)立即改變,從而引起碼NCO信號(hào)的變化。具體而言,f_control數(shù)值按以下公式計(jì)算:
\qquadf = fControl * Clk / 2^N
其中:
\qquadf = 所要求的碼頻率;
\qquadClk = 16.368*6 MHz(基帶模塊時(shí)鐘頻率)
\qquadN = 29(相位累加器的位長)
\qquadfControl = 28-位(無符號(hào))控制字
(4) 捕獲和確認(rèn)閾值
\qquad如果超前碼(early)、即時(shí)碼(prompt)、以及滯后碼(late)的功率(power)之和大于一個(gè)預(yù)定義閾值,則通道狀態(tài)機(jī)將從捕獲狀態(tài)切換到確認(rèn)狀態(tài)。這個(gè)閾值可以基于以下考慮來找到:HD-2769-2RF-2射頻前端的MAX2769被設(shè)計(jì)為產(chǎn)生一個(gè)2-位數(shù)字流,具有4個(gè)數(shù)字級(jí)+3, +1, -1和-3。它的每個(gè)量化級(jí)的采樣百分比是均勻的:
\qquad -3\qquad 25%
\qquad -1\qquad 25%
\qquad+1\qquad 25%
\qquad+3\qquad 25%
\qquad來自射頻前端的數(shù)字輸出流在進(jìn)行1ms積分前,被基帶模塊用本地產(chǎn)生的載波復(fù)現(xiàn)信號(hào)(同相和正交)進(jìn)行混頻。這兩個(gè)復(fù)現(xiàn)信號(hào)在一個(gè)載波周期上的數(shù)字流為
? ? In-phase? ? +2 +2 +1 -1 -2 -2 -1 +1
? ? Quadrature? +1 -1 -2 -2 -1 +1 +2 +2
\qquad當(dāng)輸入信號(hào)為+3時(shí),它與同相本地復(fù)現(xiàn)信號(hào)在一個(gè)周期上的乘積為
\qquad+3×(In-Phase) = +6 +6 +3 -3 -6 -6 -3 +3
具有22.5的均方值 (mean square value);當(dāng)輸入信號(hào)為+1時(shí),與同相本地復(fù)現(xiàn)信號(hào)在一個(gè)周期上的乘積為
\qquad+1×(In-Phase)= +2 +2 +1 -1 -2 -2 -1 +1
具有2.5的均方值。假設(shè)采樣頻率為16.368 MHz,則可以找到1ms累積時(shí)間上的同相分支均方值如下:
I 2 = [ ( 22.5 × 0.50 ) + ( 2.5 × 0.50 ) ] × 16.368 × 1000 = 204600 \qquad I^2=[(22.5×0.50)+(2.5×0.50)]×16.368×1000=204600I?
2
?=[(22.5×0.50)+(2.5×0.50)]×16.368×1000=204600
總功率為:
I 2 + Q 2 = 409200 I 2 + Q 2 = 640 \qquad I^2+Q^2=409200 \qquad \sqrt{I^2+Q^2}=640I?
2+Q 2
?=409200?
I 2+Q 2
=640
\qquad這是在無GPS信號(hào)出現(xiàn)情形下,我們期望從early, prompt和 late分支讀取的值。但實(shí)際情況是,噪聲經(jīng)常使這些分支的功率更高。為解決這個(gè)問題,可以嘗試增大閾值以獲得一個(gè)滿意情形。在我們的接收機(jī)中,用1500代替640作為一個(gè)分支的噪聲底限似乎是一個(gè)好選擇,即:
I 2 + Q 2 = 1500 \qquad \sqrt{I^2+Q^2}=1500?
I 2+Q 2
=1500
假設(shè)我們希望跟蹤比噪聲底限高6dB的信號(hào),則這時(shí)應(yīng)該期望得到的值為I 2 + Q 2 I^2+Q^2I?
2+Q 2
?= 8957411。考慮到這點(diǎn),單獨(dú)一個(gè)分支(early、prompt或late)的閾值可以選擇為:
I 2 + Q 2 = 2993 \qquad \sqrt{I^2+Q^2}= 2993?
I 2+Q 2
=2993
并且如果我們求三個(gè)分支之和,在最差情況下 (6dB over early, 3dB over prompt, 0dB over late),可以選擇
2993 + 2119 + 1500 = 6612 \qquad 2993+2119+1500=66122993+2119+1500=6612
AGRS_GP_1項(xiàng)目用以上數(shù)值作為捕獲和確認(rèn)閾值實(shí)現(xiàn)了通道跟蹤代碼。具體常量定義和代碼實(shí)現(xiàn)參見頭文件constants.h和源文件gps_accum_task.c。
2、確認(rèn)
\qquad捕獲函數(shù)一旦找到了一個(gè)高相關(guān)功率值,就會(huì)認(rèn)為捕獲到了似然信號(hào),而立即將通道切換為確認(rèn)狀態(tài)(CHANNEL_CONFIRM)。確認(rèn)狀態(tài)的響應(yīng)函數(shù)(簡稱確認(rèn)函數(shù))為gps_confirm(…),它的任務(wù)是進(jìn)一步判定這個(gè)高相關(guān)峰值的似然性:
保持捕獲函數(shù)所找到的頻率值和碼相位不變,繼續(xù)計(jì)算隨后N_thresh個(gè)(代碼中為10)相關(guān)累積數(shù)據(jù)點(diǎn)上的功率值,并計(jì)數(shù)超過預(yù)定閾值的次數(shù)(稱為確認(rèn)次數(shù),假定為m);
如果m不小于某個(gè)預(yù)定的次數(shù)M_thresh(代碼中為8),則確認(rèn)信號(hào)出現(xiàn)了一個(gè)高相關(guān)峰值,切換通道到頻率調(diào)整狀態(tài) (CHANNEL_FREQ_PULL);
否則(m小于預(yù)定次數(shù)M_thresh),將通道切換回捕獲狀態(tài) (CHANNEL_ACQUISITION)。
下面對(duì)函數(shù)中應(yīng)用的常數(shù)和算法予以說明。
(1) 捕獲和確認(rèn)閾值
\qquad參見小節(jié)“1、捕獲”。
(2) (n,m)檢測(cè)器
\qquad(n,m)檢測(cè)器是n中取m的固定時(shí)間段檢測(cè)器。在n次檢測(cè)的每個(gè)時(shí)間段中,將信號(hào)與其閾值做比較。如果其中有m個(gè)或更多個(gè)超過了閾值,便宣布信號(hào)存在;否則,宣布信號(hào)不存在。有關(guān)(n,m)檢測(cè)器的檢測(cè)概率的進(jìn)一步討論,參見文獻(xiàn)“GPS原理與應(yīng)用(第二版)”的第5.8.2節(jié)。
3、頻率調(diào)整
\qquad由捕獲函數(shù)gps_acquire(…)獲得的頻率值可能與實(shí)際信號(hào)頻率值相差較大,為了提高信號(hào)鎖定速度,函數(shù)gps_confirm(…)在確認(rèn)信號(hào)出現(xiàn)了高相關(guān)峰值后,將通道切換到頻率調(diào)整狀態(tài)(CHANNEL_FREQ_PULL)。頻率調(diào)整狀態(tài)的響應(yīng)函數(shù)為gps_freq_pull(…),它實(shí)現(xiàn)了一個(gè)1-階FLL,它的頻率調(diào)整過程是:
在每個(gè)1 ms相關(guān)累積數(shù)據(jù)點(diǎn)上:
應(yīng)用唐氏判決器檢查信號(hào)功率。如果信號(hào)功率在若干數(shù)據(jù)點(diǎn)上一直較小,使得判決值tang < T_thresh,則將通道退回到捕獲狀態(tài)(CHANNEL_ACQUISITION);
用相關(guān)累積數(shù)據(jù)計(jì)算四象反正切鑒頻值;
累加鑒頻值;
保存最大/最小鑒頻值。
當(dāng)鑒頻計(jì)算次數(shù)m達(dá)到M _fl_thresh = 20時(shí):
在累加鑒頻值中剔除最大/最小鑒頻值;
用累加鑒頻值計(jì)算平均鑒頻值;
用平均鑒頻值作為頻率誤差更新信號(hào)頻率;
將通道切換到微調(diào)狀態(tài) (CHANNEL_PULL_IN)。
下面對(duì)函數(shù)中應(yīng)用的算法予以說明。
(1) 唐氏判決器
\qquad唐氏判決器是一種可變滯留時(shí)間段判決器,在這里用它檢測(cè)在若干時(shí)間段上信號(hào)功率較小的概率是否一直較大。若是,宣布信號(hào)不存在,通道退回捕獲狀態(tài);否則,通道保持當(dāng)前狀態(tài)。具體做法是:
給唐氏判決器的上/下行計(jì)數(shù)器賦初值0;
若信號(hào)功率低于閾值TANG_THRESHOLD,計(jì)數(shù)器減一常數(shù)(代碼中為3);否則,當(dāng)計(jì)數(shù)器值小于上行閾值(代碼中為90)時(shí),計(jì)數(shù)器加一常數(shù)(代碼中為1);
檢查計(jì)數(shù)器值:若小于下行閾值(代碼中為-30),宣布信號(hào)不存在,通道退回捕獲狀態(tài);否則,通道保持當(dāng)前狀態(tài)。
有關(guān)唐氏判決器的初值/閾值選擇和檢測(cè)概率的詳細(xì)討論,參見文獻(xiàn)“GPS原理與應(yīng)用(第二版)”的第5.8.1節(jié)。
(2) 四象反正切鑒頻器
\qquad四象反正切鑒頻器使用相鄰兩相關(guān)累積數(shù)據(jù)點(diǎn)上的即時(shí)碼I II分支(i _ p _ 1 , i _ p _ 2 i\_p\_1, i\_p\_2i_p_1,i_p_2)和Q QQ分支(q _ p _ 1 , q _ p _ 2 q\_p\_1, q\_p\_2q_p_1,q_p_2),計(jì)算它們的叉積(cross)和點(diǎn)積(dot),以及叉積、點(diǎn)積的反正切arctan(cross, dot),從而得到頻率誤差Δ f \Delta fΔf:
c r o s s = i _ p _ 1 ? q _ p _ 2 ? q _ p _ 1 ? i _ p _ 2 d o t = i _ p _ 1 ? i _ p _ 2 + q _ p _ 1 ? q _ p _ 2 Δ f = arctan ? ( c r o s s , d o t ) ( t 2 ? t 1 ) cross = i\_p\_1 \cdot q\_p\_2 - q\_p\_1 \cdot i\_p\_2 \newline dot = i\_p\_1 \cdot i\_p\_2 + q\_p\_1 \cdot q\_p\_2\newline \Delta f=\frac{\arctan(cross ,dot )}{(t_2 - t_1)}
cross=i_p_1?q_p_2?q_p_1?i_p_2
dot=i_p_1?i_p_2+q_p_1?q_p_2
?為相鄰兩點(diǎn)的時(shí)間間隔。
\qquad這種鑒頻器在高和低信噪比時(shí)都為最佳,且鑒頻結(jié)果與信號(hào)幅度無關(guān),其單邊頻率牽引范圍為相關(guān)積分時(shí)間所對(duì)應(yīng)的檢測(cè)帶寬的一半。缺點(diǎn)是對(duì)運(yùn)算量要求較高,通常采用查表法或定點(diǎn)算法。
4、微調(diào)
\qquad捕獲到的頻率經(jīng)過調(diào)整已接近實(shí)際頻率,接著為了鎖定信號(hào),需要對(duì)頻率進(jìn)行微調(diào)。微調(diào)狀態(tài)(CHANNEL_PULL_IN)的響應(yīng)函數(shù)為gps_pull_in(…),它實(shí)現(xiàn)了一個(gè)2-階DLL和一個(gè)1-階FLL輔助的2-階PLL。它在每個(gè)1 ms相關(guān)累積數(shù)據(jù)點(diǎn)上對(duì)信號(hào)頻率進(jìn)行微調(diào),并試圖在這種微調(diào)狀態(tài)達(dá)到T_pullin ms之后,用最后的T_phasetest ms數(shù)據(jù)來判決碼和載波是否都已鎖定。如果都已鎖定,則將通道切換到鎖定狀態(tài)(CHANNEL_LOCK)。下面是響應(yīng)函數(shù)gps_pull_in(…)完成這些任務(wù)的具體步驟:
處理至少21個(gè)相關(guān)累積數(shù)據(jù)。在每個(gè)相關(guān)累積數(shù)據(jù)點(diǎn)上:
應(yīng)用唐氏判決器檢查信號(hào)功率。如果信號(hào)功率在若干數(shù)據(jù)點(diǎn)上一直較小,使得判決值tang < T_thresh,則將通道退回到捕獲狀態(tài)(CHANNEL_ACQUISITION);
應(yīng)用超前減滯后歸一化鑒別器跟蹤碼頻率(2-階DLL);
應(yīng)用四象反正切鑒相器和叉積×符號(hào)(點(diǎn)積)鑒頻器跟蹤載波頻率(1-階FLL輔助的2-階PLL)。
如果未進(jìn)行位同步,檢查位邊界躍變。如果之前20個(gè)累積數(shù)據(jù)具有相同正負(fù)號(hào),而當(dāng)前累積數(shù)據(jù)正負(fù)號(hào)改變,則認(rèn)為發(fā)生了數(shù)據(jù)位邊界躍變:
設(shè)置位同步標(biāo)志;
初始化位流計(jì)數(shù)器;
設(shè)置標(biāo)志使得函數(shù)gps_accum_newdata(…)在下次讀取基帶累積數(shù)據(jù)后,能及時(shí)設(shè)置基帶1 ms歷元計(jì)數(shù)器(1ms epoch counter),這將使這個(gè)歷元計(jì)數(shù)器與這里的位流相同步。
檢查能否切換通道到鎖定狀態(tài)(CHANNEL_LOCK):
對(duì)載波相位誤差進(jìn)行累積;
如果微調(diào)狀態(tài)達(dá)到預(yù)定持續(xù)時(shí)間T_pullin,且連續(xù)出現(xiàn)至少5次正確的位邊界躍變:
計(jì)算累積相位誤差均方值;
如果誤差均方值小于預(yù)定常數(shù),復(fù)位相應(yīng)數(shù)據(jù)成員,切換通道到鎖定狀態(tài);
否則,切換通道到捕獲狀態(tài)(CHANNEL_ACQUISITION)。
下面對(duì)函數(shù)中應(yīng)用的常數(shù)和算法予以說明。
(1) 唐氏判決器
\qquad參見小節(jié)“3、頻率調(diào)整”。
(2) 超前減滯后歸一化鑒別器
(8) 微調(diào)時(shí)間和相位誤差閾值
\qquad在微調(diào)狀態(tài)中,為了減小啟動(dòng)時(shí)的瞬時(shí)變化,碼環(huán)路在2ms后閉合,載波環(huán)路在5ms后閉合。這個(gè)狀態(tài)的有效時(shí)間為GPS_PULLIN_TIME(約1000 ms),其中最后GPS_PHASETEST_TIME(約500ms)用于測(cè)量相位誤差(閾值約40°),且程序試圖同步到一個(gè)數(shù)據(jù)位的邊界。這些參數(shù)值繼承了Namuru源碼的定義,其來源和測(cè)試說明可參考文獻(xiàn)”O(jiān)penSource GPS: Open Source Software for Learning about GPS”。
5、鎖定
\qquad微調(diào)狀態(tài)(CHANNEL_PULL_IN)在鎖定了碼和載波之后,將通道將切換到鎖定狀態(tài)(CHANNEL_LOCK)。鎖定狀態(tài)的響應(yīng)函數(shù)為gps_lock(…),它實(shí)現(xiàn)了一個(gè)2-階DLL和一個(gè)1-階FLL輔助的2-階PLL,用以跟蹤碼和載波,以及解碼導(dǎo)航電文位。具體來說,在每個(gè)相關(guān)累積數(shù)據(jù)點(diǎn)上:
應(yīng)用唐氏判決器檢查信號(hào)功率。如果信號(hào)功率在若干數(shù)據(jù)點(diǎn)上一直較小,使得判決值tang < T_thresh,則將通道退回到捕獲狀態(tài)(CHANNEL_ACQUISITION);
按照從基帶模塊讀取的C/A碼計(jì)數(shù)值(epoch_codes),檢查和校正通道的ms計(jì)數(shù)器(ms_count);
應(yīng)用四象反正切鑒相器和交叉×符號(hào)(點(diǎn))鑒別器跟蹤載波頻率。
累加即時(shí)、超前、以及滯后碼。如果累加次數(shù)達(dá)到T_lock =20:
應(yīng)用超前減滯后歸一化鑒別器跟蹤碼頻率;
用20 ms即時(shí)、超前、滯后碼累加值計(jì)算數(shù)據(jù)位;
設(shè)置標(biāo)志通知相關(guān)數(shù)據(jù)累積任務(wù)(accum_task)處理該數(shù)據(jù)位;
遞增以位為單位的通道時(shí)間(time_in_bits),用于觀測(cè)量讀取任務(wù)(meas_task)。在電文處理任務(wù)(message_task)中,當(dāng)從一個(gè)有效子幀中獲得了TOW時(shí),它將被設(shè)置為正確的時(shí)間;
復(fù)位相應(yīng)數(shù)據(jù)成員。
下面對(duì)函數(shù)中應(yīng)用的常數(shù)和算法予以說明。
(1) 唐氏判決器
\qquad參見小節(jié)“3、頻率調(diào)整”。
(2) 超前減滯后歸一化鑒別器
\qquad參見小節(jié)“4、微調(diào)”。
(3) 二象正弦歸一化鑒相器
\qquad 2-階PLL使用二象歸一化正弦鑒相器的以下變種計(jì)算相位誤差:
Δ p = s g n ( i _ s u m ) ? q _ s u m l m a g ( i _ s u m , q _ s u m ) \Delta p=\frac{sgn(i\_sum) \cdot q\_sum}{lmag(i\_sum, q\_sum)}
Δp=?
lmag(i_sum,q_sum)
sgn(i_sum)?q_sum
?
其中:i _ s u m = i _ p + i _ e + i _ l , q _ s u m = q _ p + q _ e + q _ l i\_sum = i\_p + i\_e + i\_l, q\_sum = q\_p + q\_e + q\_li_sum=i_p+i_e+i_l,q_sum=q_p+q_e+q_l;( i _ p , q _ p ) , ( i _ e , q _ e ) , ( i _ l , q _ l ) (i\_p, q\_p), (i\_e, q\_e), (i\_l, q\_l)(i_p,q_p),(i_e,q_e),(i_l,q_l)分別是即時(shí)碼、超前碼、滯后碼的I II分支和Q QQ分支;l m a g ( i _ s u m , q _ s u m ) = ( i _ s u m 2 + q _ s u m 2 ) 1 / 2 lmag(i\_sum, q\_sum) = (i\_sum^2 + q\_sum^ 2)^{1/2}lmag(i_sum,q_sum)=(i_sum +q_sum 2) 1/2
?。
\qquad在這個(gè)鑒相器中,Q QQ分支被I II、Q QQ分支包絡(luò)歸一化,將輸出相位誤差近似到±π/4。歸一化使得對(duì)高、低信噪聲比不敏感,也使斜率與信號(hào)幅度無關(guān),運(yùn)算量小。
(4) 交叉×符號(hào)(點(diǎn))鑒頻器
\qquad參見小節(jié)“4、微調(diào)”。
(5) DLL參數(shù)計(jì)算
\qquad參見小節(jié)“4、微調(diào)”的“(5) 環(huán)路濾波公式”。對(duì)于鎖定狀態(tài)的DLL,選擇2-階濾波器、1Hz噪聲帶寬、以及20 ms(濾波器)采樣時(shí)間間隔,于是:
4.4.2 BDS B1I信號(hào)捕獲和跟蹤
\qquad對(duì)比BDS B1I信號(hào)和GPS L1信號(hào)的基帶處理可知,其通道的狀態(tài)轉(zhuǎn)換控制、狀態(tài)響應(yīng)邏輯、以及算法總體上是一樣的,不同之處在于BDS B1I信號(hào)包含了D1和D2兩種導(dǎo)航電文,這是跟蹤BDS B1I信號(hào)必須考慮的:
D1數(shù)據(jù)位和D2數(shù)據(jù)位的持續(xù)時(shí)間不同,分別為20 ms和2 ms;
D1數(shù)據(jù)位經(jīng)過了二次編碼, D2數(shù)據(jù)位沒有。
在處理BDS B1I信號(hào)的代碼中,這些特性差異影響了微調(diào)狀態(tài)(CHANNEL_PULL_IN)和鎖定狀態(tài)(CHANNEL_LOCK)的響應(yīng)函數(shù),參見源文件b1i_accum_task.c。本小節(jié)將對(duì)它們予以說明。至于在具體響應(yīng)函數(shù)中,一些預(yù)定常數(shù)的由來和計(jì)算可參考前一小節(jié)中的相應(yīng)說明。
1、微調(diào)
\qquad在BDS B1I信號(hào)通道中,微調(diào)狀態(tài)(CHANNEL_PULL_IN)的響應(yīng)函數(shù)為b1i_pull_in(…),與GPS L1信號(hào)響應(yīng)函數(shù)gps_pull_in(…)一樣,它通過組合使用一個(gè)鎖頻環(huán)(FLL)和一個(gè)鎖相環(huán)(PLL)來跟蹤信號(hào)。它至少需要響應(yīng)21次(21個(gè)相關(guān)累積數(shù)據(jù)),以下是它每次響應(yīng)所進(jìn)行的處理:
應(yīng)用唐氏判決器檢查信號(hào)功率。如果信號(hào)功率在若干數(shù)據(jù)點(diǎn)上一直較小,則將通道退回到捕獲狀態(tài)(CHANNEL_ACQUISITION);
應(yīng)用超前減滯后包絡(luò)鑒別器跟蹤碼頻率;
如果未進(jìn)行位同步,檢查位邊界躍變:
如果為D1導(dǎo)航電文(根據(jù)衛(wèi)星PRN判斷)
剝離當(dāng)前數(shù)據(jù)位的二次碼;
如果之前20個(gè)數(shù)據(jù)位具有相同正負(fù)號(hào),而當(dāng)前數(shù)據(jù)位正負(fù)號(hào)改變,則認(rèn)為發(fā)生了數(shù)據(jù)位邊界躍變,設(shè)置位同步標(biāo)志;
否則(為D2導(dǎo)航電文),如果滿足若干條件,則認(rèn)為發(fā)生了數(shù)據(jù)位邊界躍變,設(shè)置位同步標(biāo)志;
如果本次響應(yīng)確認(rèn)了位同步:
設(shè)置位同步標(biāo)志;
初始化位流計(jì)數(shù)器;
設(shè)置標(biāo)志使得函數(shù)b1i_accum_newdata(…)在下次讀取基帶累積數(shù)據(jù)后,能及時(shí)設(shè)置基帶1 ms歷元計(jì)數(shù)器(1ms epoch counter),它將使這個(gè)歷元計(jì)數(shù)器與這里的位流相同步。
應(yīng)用二象反正切鑒相器和交叉×符號(hào)(點(diǎn))鑒頻器跟蹤載波頻率。
檢查是否能切換通道到鎖定狀態(tài)(CHANNEL_LOCK):
對(duì)載波相位誤差進(jìn)行累積;
如果微調(diào)狀態(tài)達(dá)到預(yù)定持續(xù)時(shí)間:
計(jì)算累積相位誤差均方值;
如果誤差均方值小于預(yù)定常數(shù),復(fù)位相應(yīng)數(shù)據(jù)成員,通知通道分配任務(wù)(allocate_task)本通道正在鎖定中,切換通道到鎖定狀態(tài);
否則,切換通道到捕獲狀態(tài)(CHANNEL_ACQUISITION)。
剝離二次碼
\qquadBDS B1I導(dǎo)航電文,按照速率、結(jié)構(gòu)和衛(wèi)星的不同,分為D1導(dǎo)航電文和D2導(dǎo)航電文。D1導(dǎo)航電文速率為50 bps,調(diào)制有一個(gè)二次碼;D2導(dǎo)航電文速率為500 bps。MEO和IGSO衛(wèi)星的B1I信號(hào)播發(fā)D1導(dǎo)航電文,GEO衛(wèi)星的B1I信號(hào)播發(fā)D2導(dǎo)航電文。
\qquadD1導(dǎo)航電文上的二次碼用20-位Neumann-Hoffman碼(簡稱NH碼)(0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0)進(jìn)行調(diào)制,碼周期為20 ms,與1-位數(shù)據(jù)的寬度相同;碼片寬為1 ms,與C/A碼片周期相同,因此碼片速率為1 kbps。
\qquad剝離二次碼就是將D1導(dǎo)航電文的每個(gè)1 ms C/A碼分支(i _ p , q _ p , i _ e , q _ e , i _ l , q _ l i\_p, q\_p, i\_e, q\_e, i\_l, q\_li_p,q_p,i_e,q_e,i_l,q_l)與上述NH碼的相應(yīng)碼片對(duì)齊并進(jìn)行相關(guān)計(jì)算,即:當(dāng)NH碼片值為1時(shí),C/A碼分支數(shù)值不變,為0時(shí),數(shù)值反號(hào)。
2、鎖定
\qquad在BDS B1I信號(hào)通道中,鎖定狀態(tài)(CHANNEL_LOCK)的響應(yīng)函數(shù)為b1i_lock(…),與GPS L1信號(hào)響應(yīng)函數(shù)gps_lock(…)一樣,它的任務(wù)是跟蹤碼和載波,以及部分解碼導(dǎo)航電文。具體來說,在每個(gè)相關(guān)累積數(shù)據(jù)點(diǎn)上:
應(yīng)用唐氏判決器檢查信號(hào)功率。如果信號(hào)功率在若干數(shù)據(jù)點(diǎn)上一直較小,則將通道退回到捕獲狀態(tài)(CHANNEL_ACQUISITION);
按照從基帶模塊讀取的C/A碼計(jì)數(shù)值(epoch_codes),檢查和校正通道的20 ms計(jì)數(shù)器(ms_count_20);
遞增以位為單位的通道時(shí)間 (time_in_bits),用于觀測(cè)量讀取任務(wù)(meas_task)。在電文處理任務(wù)(message_task)中,當(dāng)從一個(gè)有效子幀中獲得了TOW時(shí),它將被設(shè)置為正確的時(shí)間;
應(yīng)用二象反正切鑒相器和交叉×符號(hào)(點(diǎn))鑒頻器跟蹤載波頻率;
累加即時(shí)、超前、以及滯后碼。如果為D1導(dǎo)航電文,剝離施加在即時(shí)、超前、滯后碼上的二次碼;
跟蹤碼信號(hào):
應(yīng)用超前減滯后包絡(luò)鑒別器跟蹤碼頻率;
用20 ms(D1導(dǎo)航電文)或2 ms(D2導(dǎo)航電文)即時(shí)、超前、滯后碼累加值計(jì)算數(shù)據(jù)位;
設(shè)置標(biāo)志通知相關(guān)數(shù)據(jù)累積任務(wù)(accum_task)處理該數(shù)據(jù)位;
復(fù)位相應(yīng)數(shù)據(jù)成員。
2.在圖像繪制和定位
因?yàn)椴蹲胶妥粉櫟拇嬖?,所以我們可以?/p>
3.在視頻類后期中,追蹤怎么用?
我們經(jīng)常會(huì)看到很多視頻,為了用最簡單的畫幅出最多的效果,會(huì)有一些靜態(tài)的抖動(dòng)
但如果是整個(gè)畫面運(yùn)動(dòng),因?yàn)橐曈X殘留效應(yīng),人會(huì)產(chǎn)生不適
那我們?cè)趺粗圃臁安粫?huì)有不適感“的抖動(dòng)那
那就要用到追蹤

這里的追蹤前后矛盾都是,”必須在計(jì)算機(jī)模擬的,3D拍攝2D”的這種模擬前提下

所以,我們最先想到的就是AE,當(dāng)然blender和3DMAX也都是能實(shí)現(xiàn)的

我們,將攝像機(jī),背景
定位在一個(gè)“更高視平線”
或更低于“視平線”的同一個(gè)z軸上
這樣我們就得到了一個(gè)可以共同于zy周上隨意抖動(dòng)的攝像機(jī)和畫布關(guān)系
這樣技能實(shí)現(xiàn)這種抖動(dòng)且不會(huì)晃眼的效果。
通過“事先”
定義錨點(diǎn)
我們得到了可以隨意運(yùn)動(dòng)的“3D視感2D畫面”