屈毅, 陳偉, 顧慶水, 陶愛(ài)華, 張菊茜
(1.電子科技大學(xué), 四川 成都 611731; 2.中海油田服務(wù)股份有限公司油田技術(shù)研究院, 北京 101149)
單芯電纜測(cè)井系統(tǒng)中,為簡(jiǎn)化井下儀器的復(fù)雜度,系統(tǒng)上行和下行采用不同的調(diào)制方式。上行鏈路數(shù)據(jù)量大,實(shí)時(shí)性要求高,為了實(shí)現(xiàn)數(shù)據(jù)的高速傳輸,采用頻帶利用率高的自適應(yīng)OFDM調(diào)制技術(shù)[1];下行鏈路中的數(shù)據(jù)多是一些控制指令,對(duì)帶寬和速率的要求不是很高,因此,常利用單芯電纜的低頻段通過(guò)數(shù)字基帶傳輸下發(fā)指令[2]。
AMI碼具有無(wú)直流分量、自同步方便等優(yōu)點(diǎn),下行鏈路常用的數(shù)字基帶傳輸為AMI碼傳輸[3]。傳輸過(guò)程中,AMI碼和直流供電信號(hào)一起耦合在單芯電纜上。耦合電路在其通帶內(nèi)的相頻特性非線性,導(dǎo)致非常數(shù)的群時(shí)延,并最終致使AMI信號(hào)波形失真嚴(yán)重。為減小耦合電路的影響,通??梢圆捎媚M群時(shí)延均衡濾波器進(jìn)行校正,但為了得到所需的均衡效果,均衡器需要較高的階數(shù),從而加大了設(shè)計(jì)和調(diào)試的難度。
相對(duì)數(shù)字基帶傳輸,2FSK信號(hào)具有抗干擾能力強(qiáng)、受信道參數(shù)變化影響小、實(shí)現(xiàn)簡(jiǎn)單等特點(diǎn),因此本文采用了基于DSP的2FSK調(diào)制解調(diào)技術(shù)。該方法將包含用戶數(shù)據(jù)的邏輯幀分解為特定的字節(jié)符號(hào);然后將字節(jié)符號(hào)中的碼元調(diào)制為特定頻率的2FSK信號(hào);最后,在接收端利用狀態(tài)機(jī)和FFT變換實(shí)現(xiàn)信號(hào)的解調(diào)操作[4-6]。經(jīng)測(cè)試,該設(shè)計(jì)不僅很好地解決了接收端的位同步問(wèn)題,而且使數(shù)據(jù)的誤碼率有了明顯改善。
設(shè)計(jì)的下行鏈路總體結(jié)構(gòu)如圖1所示。
圖1 下行鏈路總體結(jié)構(gòu)圖
為實(shí)現(xiàn)單芯電纜下行鏈路數(shù)據(jù)的可靠傳輸,下發(fā)數(shù)據(jù)不僅包括測(cè)井過(guò)程中用戶輸入的數(shù)據(jù),還包括測(cè)井初始化階段的信道激活、訓(xùn)練序列以及比特分配表等系統(tǒng)數(shù)據(jù),因此,在傳輸過(guò)程中需要將各種不同的數(shù)據(jù)通過(guò)邏輯幀進(jìn)行標(biāo)明。為了便于接收端的信號(hào)解調(diào),邏輯幀中的每一個(gè)字節(jié)都采用一個(gè)特定的物理層字節(jié)符號(hào)進(jìn)行傳輸。對(duì)于字節(jié)符號(hào)中的碼元“0”和“1”,通過(guò)載波序列表將其調(diào)制為OFDM信號(hào)的1號(hào)和2號(hào)子載波序列,以保持下行信號(hào)和上行OFDM信號(hào)的正交性。離散信號(hào)經(jīng)DAC、低通濾波器、耦合電路后,由單芯電纜傳輸至井下解調(diào)部分。
井下主要根據(jù)ADC采樣得到的載波信號(hào),利用狀態(tài)機(jī)和8點(diǎn)FFT算法完成信號(hào)的解調(diào),進(jìn)而經(jīng)組幀提取出有效數(shù)據(jù)。
該設(shè)計(jì)重點(diǎn)是以DSP為平臺(tái)的算法和程序設(shè)計(jì)。其中,發(fā)送端邏輯幀的具體結(jié)構(gòu)見(jiàn)圖2。邏輯幀以轉(zhuǎn)義字符DLE和文本起始字符STX開(kāi)始,以DLE和文本結(jié)束字符ETX結(jié)束,中間為數(shù)據(jù)段DAT。類型字符TYP用于標(biāo)示DAT字段的數(shù)據(jù)類型。如果DAT字段中出現(xiàn)DLE字符,則在其前面插入一個(gè)DLE以便區(qū)別。
為了便于在解調(diào)端進(jìn)行信號(hào)的位同步,采用的字節(jié)符號(hào)結(jié)構(gòu)見(jiàn)圖3,1個(gè)字節(jié)符號(hào)包含1個(gè)0值的起始位,8個(gè)數(shù)據(jù)位以及3個(gè)全1值的停止位。
圖3 字節(jié)符號(hào)結(jié)構(gòu)
圖2 邏輯幀結(jié)構(gòu)
對(duì)于字節(jié)符號(hào)中的每個(gè)碼元,其持續(xù)時(shí)間內(nèi)均對(duì)應(yīng)16個(gè)采樣點(diǎn),并且碼元之間相位連續(xù)。根據(jù)OFDM信號(hào)的1號(hào)和2號(hào)子載波的頻率,2組采樣點(diǎn)可事先生成,然后以數(shù)組的方式存放在DSP中,以方便使用時(shí)直接調(diào)用。
由此產(chǎn)生的2FSK序列經(jīng)過(guò)DAC轉(zhuǎn)換為模擬信號(hào),然后通過(guò)低通濾波器濾除帶外噪聲,最終由功放將其放大后耦合至單芯電纜上。
2.2.1 8點(diǎn)實(shí)序列FFT運(yùn)算
在接收端,僅需提取出每個(gè)碼元對(duì)應(yīng)載波的頻率值便可以判斷出該碼元的具體值。因此,可通過(guò)FFT運(yùn)算進(jìn)行信號(hào)解調(diào)。由于載波經(jīng)ADC采樣后成為了一系列離散的實(shí)數(shù)值,而實(shí)數(shù)序列經(jīng)2N點(diǎn)FFT變換后頻域值具有共軛對(duì)稱的性質(zhì),因此,對(duì)碼元進(jìn)行判決時(shí),8點(diǎn)是2N點(diǎn)FFT運(yùn)算的最小點(diǎn)數(shù)。
本文采用的8點(diǎn)實(shí)序列FFT的蝶形運(yùn)算見(jiàn)圖4。碼元“1”的載波在1個(gè)周期內(nèi)有8個(gè)離散點(diǎn),從而對(duì)應(yīng)著8點(diǎn)FFT后的y(1)值;碼元“0”對(duì)應(yīng)的載波在1個(gè)周期內(nèi)有4個(gè)離散點(diǎn),從而對(duì)應(yīng)著y(2)值。因?yàn)橹恍枰容^出2個(gè)頻點(diǎn)模值的相對(duì)大小,所以也可以取消開(kāi)平方操作以減小運(yùn)算量。
本文采用的8點(diǎn)實(shí)序列FFT運(yùn)算將變換結(jié)果中的8個(gè)值減少為2個(gè),極大地減小了運(yùn)算量。另外,無(wú)論對(duì)于碼元“0”還是碼元“1”,8點(diǎn)采樣值均包含整數(shù)個(gè)載波周期,采用了連續(xù)相位的載波連接形式,可以大大減小頻譜泄露的影響。
圖4 8點(diǎn)實(shí)序列FFT蝶形運(yùn)算
2.2.2 狀態(tài)機(jī)解析
對(duì)于圖3中的字節(jié)符號(hào),要完成數(shù)據(jù)提取必須準(zhǔn)確進(jìn)行位同步操作。參考文獻(xiàn)[7-9]提出了一系列的同步方法,但是對(duì)于單芯電纜測(cè)井系統(tǒng),本文采用的同步方法實(shí)現(xiàn)較簡(jiǎn)單,在兼顧了消耗資源較少的情況下有著較高的運(yùn)算速度,滿足了單芯電纜測(cè)井的需要。
具體的解調(diào)過(guò)程通過(guò)狀態(tài)機(jī)實(shí)現(xiàn),狀態(tài)機(jī)的轉(zhuǎn)移過(guò)程見(jiàn)圖5。
圖5 狀態(tài)轉(zhuǎn)移圖
(1) 上電激活:為便于接收端解調(diào),發(fā)送端上電后,在未發(fā)送有效數(shù)據(jù)時(shí)設(shè)定為連續(xù)發(fā)送碼元“1”。每個(gè)碼元均對(duì)應(yīng)16個(gè)采樣點(diǎn),8點(diǎn)的FFT可以看做一個(gè)滑動(dòng)窗口,解調(diào)端可每間隔16個(gè)采樣點(diǎn)將FFT窗口做1次滑動(dòng),并根據(jù)FFT運(yùn)算結(jié)果得到|y(1)|2和|y(2)|2。由于直接根據(jù)兩數(shù)的大小進(jìn)行碼元判定受噪聲影響較大,因此,需定義一個(gè)相對(duì)門(mén)限以提高數(shù)據(jù)的準(zhǔn)確性。門(mén)限設(shè)定如式(1)所示。
(1)
根據(jù)接收端的信號(hào)強(qiáng)度進(jìn)行了大量測(cè)試分析,在兼顧盡量避免乘法操作的同時(shí),最終將門(mén)限值τ設(shè)定為整數(shù)8(左移3位)。若連續(xù)多次判定結(jié)果均為碼元“1”,則認(rèn)為地面發(fā)送端已上電,上電激活狀態(tài)完成。次數(shù)的具體設(shè)定與調(diào)制端上電后首個(gè)指令的發(fā)送有關(guān),本文將這一參數(shù)設(shè)定為4。
(2) 下降沿判定:上電激活狀態(tài)完成后,為了判斷字節(jié)符號(hào)起始位下降沿的位置,需要逐位滑動(dòng)FFT窗口。通過(guò)創(chuàng)建一個(gè)深度為17的循環(huán)緩沖區(qū),FFT運(yùn)算結(jié)果為
Error_y=|y(1)|2-|y(2)|2
(2)
將其值隨著窗口的逐位滑動(dòng)存入緩沖區(qū)內(nèi)。為便于理解,令Error_y(i)表示循環(huán)緩沖區(qū)的第i個(gè)結(jié)果,即Error_y(1)為循環(huán)緩沖區(qū)內(nèi)最先寫(xiě)入的差值,Error_y(17)為緩沖區(qū)內(nèi)當(dāng)前寫(xiě)入的差值,這2個(gè)差值之間相距16個(gè)采樣點(diǎn),即1個(gè)碼元的長(zhǎng)度,做到前后2個(gè)碼元的準(zhǔn)確對(duì)應(yīng)。若緩沖區(qū)結(jié)果滿足式(3)的關(guān)系,則認(rèn)為前一個(gè)碼元為“1”、后一個(gè)碼元為“0”,即出現(xiàn)一個(gè)下降沿。
(3)
(3) 起始位確認(rèn):檢測(cè)到下降沿時(shí),若該位確實(shí)為起始位,那么對(duì)于圖4所示的運(yùn)算,在理論情況下,Error_y(17)對(duì)應(yīng)的8點(diǎn)FFT中只需要x(0)至x(2)包含碼元“1”的信息、x(3)至x(7)包含碼元“0”的信息。因此,若將FFT窗口再次滑動(dòng)7個(gè)采樣點(diǎn),此時(shí)FFT窗口所在的位置正好為起始位碼元對(duì)應(yīng)16個(gè)采樣點(diǎn)的中間8個(gè)點(diǎn)。然后,根據(jù)式(1)的判決關(guān)系,如果再次判定為碼元“0”,則認(rèn)為起始位判定完成,進(jìn)入數(shù)據(jù)位讀取狀態(tài);如果判決為碼元“1”,則認(rèn)為下降沿判斷是噪聲引起的,返回下降沿判定狀態(tài);如果不滿足式(2)的關(guān)系則認(rèn)為調(diào)制端處于下電狀態(tài),進(jìn)入上電激活狀態(tài)。
(4) 數(shù)據(jù)位讀取:在起始位確認(rèn)階段已經(jīng)確定了起始位的中間位置,將FFT滑動(dòng)窗口每間隔16個(gè)采樣點(diǎn)滑動(dòng)1次就可以分別對(duì)應(yīng)8個(gè)數(shù)據(jù)位的中間位置。為了進(jìn)一步提取數(shù)據(jù),定義了一個(gè)16 bit的雙字節(jié)緩存單元。該單元的低8 bit為通過(guò)FFT解調(diào)寫(xiě)入的8個(gè)數(shù)據(jù)位;高8 bit定義為標(biāo)志位,用來(lái)判斷寫(xiě)入低8 bit的數(shù)據(jù)是否有效。
實(shí)際實(shí)現(xiàn)時(shí),由于采樣數(shù)據(jù)存儲(chǔ)在一個(gè)深度一定的緩沖區(qū)中,這可能會(huì)導(dǎo)致緩沖區(qū)內(nèi)存入的并不是一幀完整的數(shù)據(jù),因此需將該狀態(tài)分為8個(gè)狀態(tài)依次對(duì)d[7:0]的各位進(jìn)行讀取。另外,為了簡(jiǎn)化狀態(tài)機(jī),此處的數(shù)據(jù)位判定結(jié)果直接由|y(1)|2和|y(2)|2的大小關(guān)系決定,同時(shí)把數(shù)據(jù)有效性的判斷留給停止位判定狀態(tài)。
(5) 停止位判定:在8 bit數(shù)據(jù)尚未完全讀取時(shí)存在調(diào)制端下電等情況,僅根據(jù)數(shù)據(jù)讀取狀態(tài)解調(diào)的結(jié)果并不能判斷收到的8 bit數(shù)據(jù)是有效數(shù)據(jù)。因此,需要繼續(xù)將FFT窗口做一次16點(diǎn)的滑動(dòng),此時(shí)FFT窗口對(duì)應(yīng)著停止位E1的中間位置。根據(jù)式(2)判定后,若結(jié)果為碼元“1”,則說(shuō)明停止位判定生效,即一幀數(shù)據(jù)完整接收,從而在16 bit緩存單元的高8 bit內(nèi)寫(xiě)入有效標(biāo)志;否則,在16 bit緩存單元的高8 bit內(nèi)寫(xiě)入無(wú)效標(biāo)志并最終將該幀數(shù)據(jù)丟棄。至于停止位E2和E3的保留,是為了在連續(xù)接收下一幀數(shù)據(jù)時(shí)方便進(jìn)行下降沿判定。
在完成狀態(tài)機(jī)解析后,將獲得的字節(jié)數(shù)據(jù)重新組合并形成邏輯幀;然后,通過(guò)解幀操作得到下發(fā)數(shù)據(jù);最終,將該數(shù)據(jù)傳送至井下儀器單元。
在實(shí)驗(yàn)室環(huán)境下,利用7 600 m的單芯電纜對(duì)下行鏈路的設(shè)計(jì)進(jìn)行了系統(tǒng)性能測(cè)試。其中,物理層傳輸速率可以達(dá)到610 bit/s;誤碼率測(cè)試的具體結(jié)果見(jiàn)表1。通過(guò)對(duì)系統(tǒng)數(shù)據(jù)和用戶數(shù)據(jù)分別進(jìn)行6 h的連續(xù)測(cè)試,結(jié)果并未出現(xiàn)誤碼,滿足了一般測(cè)井作業(yè)的需求。
表1 誤碼率測(cè)試結(jié)果
(1) 通過(guò)對(duì)單芯電纜測(cè)井系統(tǒng)下行鏈路的各層數(shù)據(jù)進(jìn)行具體劃分,利用2FSK調(diào)制解調(diào)技術(shù)替代通用的基帶傳輸方案設(shè)計(jì)了一種更加穩(wěn)定可靠的傳輸系統(tǒng)。
(2) 該傳輸系統(tǒng)不僅減小了耦合電路對(duì)下行數(shù)據(jù)的影響,而且保證了下行信號(hào)和上行OFDM信號(hào)的正交性,同時(shí)解決了接收端位同步困難的問(wèn)題,最終使系統(tǒng)的誤碼率有了明顯改善。
(3) 單芯電纜測(cè)井系統(tǒng)正向耐高溫、高速傳輸?shù)姆较虬l(fā)展,該傳輸系統(tǒng)的設(shè)計(jì)使得單芯電纜測(cè)井技術(shù)有了更廣闊的發(fā)展空間。
參考文獻(xiàn):
[1] 張菊茜, 盧濤, 李群, 等. 一種基于OFDM技術(shù)的900 kbit/s測(cè)井?dāng)?shù)據(jù)傳輸系統(tǒng) [J]. 測(cè)井技術(shù), 2009, 3(1): 84-88.
[2] 張淑玲, 沈田. 曼徹斯特編碼技術(shù)在測(cè)井?dāng)?shù)據(jù)傳輸中的應(yīng)用研究 [J]. 計(jì)算機(jī)與數(shù)字工程, 37(9): 187-189.
[3] 陳國(guó)瑞, 賴學(xué)軍. AMI碼及其在有線遙測(cè)數(shù)傳系統(tǒng)中的應(yīng)用 [J]. 石油儀器, 1992, 6(4): 224-228.
[4] 肖妮, 孟超, 阮先麗. 基于DSTFT的FSK信號(hào)數(shù)字解調(diào)方法仿真 [J]. 無(wú)線通信技術(shù), 2009(4): 40-43.
[5] 吳志敏, 黃紅兵, 肖大光. 基于DFT的FSK數(shù)字化解調(diào)算法研究 [J]. 通信技術(shù), 2008, 41(4): 36-41.
[6] Hara S, Wannasarnmaytha A, Tsuchida Y, et al. A Novel FSK Demodulation Method Using Short-time DFT Analysis for LEO Satellite Communication Systems [C]∥IEEE Transactions on Vehicular Technology, 1997, 46(3): 625-633.
[7] 胡延平, 李鋼, 王展, 等. 一種基于DSTFT解調(diào)2FSK信號(hào)的新方法 [J]. 通信學(xué)報(bào), 2000, 21(6): 54-59.
[8] 金文光, 張正宇, 唐少華, 等. 2FSK信號(hào)DSTFT解調(diào)算法中的同步新方法 [J]. 浙江大學(xué)學(xué)報(bào): 工學(xué)版, 2011, 45(6): 1027-1031.
[9] 徐藝文, 陳忠輝, 李雷, 等. 基于DFT的2FSK信號(hào)解調(diào)自適應(yīng)門(mén)限同步檢測(cè)算法 [J]. 四川大學(xué)學(xué)報(bào): 工程科學(xué)版, 2011, 43(1): 169-173.