基于聲卡的QPSK信號(hào)的實(shí)時(shí)軟解調(diào)(圖)
關(guān)鍵詞:qpsk;數(shù)字化實(shí)時(shí)解調(diào);聲卡;載波頻率恢復(fù);符號(hào)定時(shí)恢復(fù);自適應(yīng)信道均衡
引言
---目前,調(diào)制解調(diào)器產(chǎn)品大都采用專(zhuān)用dsp芯片作為核心處理器件,這是因?yàn)閐sp是專(zhuān)門(mén)的數(shù)字信號(hào)處理芯片,其處理速度快,實(shí)時(shí)性好。但另一方面,也存在一些弊端,如開(kāi)發(fā)周期長(zhǎng)、價(jià)格昂貴,不能存入和讀取數(shù)據(jù),必須要與pc機(jī)配合使用等。近幾年來(lái),pc機(jī)的各項(xiàng)技術(shù)得到了迅速發(fā)展,cpu的計(jì)算速度、內(nèi)存容量都大幅度提高,其數(shù)字信號(hào)處理能力已經(jīng)完全可以滿(mǎn)足對(duì)常規(guī)通信信號(hào)的實(shí)時(shí)解調(diào)。將調(diào)制解調(diào)器設(shè)計(jì)在聲卡上而不是dsp芯片上,有很多好處:首先,聲卡廉價(jià)易得,充分利用卡上的line in、mic in、line out、spk out等端口,可以實(shí)現(xiàn)多路信號(hào)的實(shí)時(shí)解調(diào),一卡多用;其次,優(yōu)化后的解調(diào)軟件占用cpu的時(shí)間很少,可以在接收數(shù)據(jù)的同時(shí)從事其他工作;第三,不受存儲(chǔ)空間的限制,用高級(jí)語(yǔ)言編程,設(shè)計(jì)周期短。另外,這種設(shè)計(jì)方案與硬件平臺(tái)無(wú)關(guān),軟件升級(jí)周期短。本文正是基于這種思想,拋開(kāi)dsp器件,以pc機(jī)為硬件平臺(tái),實(shí)現(xiàn)對(duì)qpsk信號(hào)的實(shí)時(shí)解調(diào),系統(tǒng)框圖如圖1所示。
---圖1中,接收機(jī)輸出的基帶信號(hào)經(jīng)pc機(jī)聲卡采樣后得到離散化的數(shù)字序列。對(duì)信號(hào)的采樣可調(diào)用windows的api函數(shù)對(duì)聲卡進(jìn)行控制,包括采樣頻率、緩存大小、每次讀入的字節(jié)數(shù)等,具體實(shí)現(xiàn)可參看相關(guān)資料,本文不再贅述。圖1中的解調(diào)軟件部分是本文討論的重點(diǎn),它完成對(duì)信號(hào)的數(shù)字化實(shí)時(shí)解調(diào)功能,其數(shù)字化解調(diào)原理如圖2所示。
軟件agc
---軟件agc用于跟蹤信號(hào)外包絡(luò)變化實(shí)現(xiàn)對(duì)衰落的補(bǔ)償。本文采用圖3所示對(duì)數(shù)agc。
---
圖3中的對(duì)數(shù)agc用軟件實(shí)現(xiàn)時(shí),a(n)的計(jì)算采用下式。
---log{a(n+1)}=log{a(n)}+α[log{r}-log{|a(n)x(n)|}]
---圖中,x(n)是軟件agc的輸入信號(hào),y(n)是輸出信號(hào);a(n)是agc的增益控制變量;α和r為常量,取值根據(jù)設(shè)計(jì)要求在補(bǔ)償速度和穩(wěn)定性之間取折中,當(dāng)要求補(bǔ)償速度迅速時(shí),取較大的值,反之,取較小的值。
dfpll載波頻率恢復(fù)
---在位同步點(diǎn)附近,存在信號(hào)的碼間串?dāng)_問(wèn)題。dfpll的基本思想就是,對(duì)于每個(gè)碼元,利用位同步附近的采樣點(diǎn)計(jì)算碼元的相位,并根據(jù)基帶信號(hào)碼元的相位特點(diǎn),計(jì)算出參考載波與信號(hào)載波的差值,利用此差值調(diào)整vco的相位,進(jìn)行載波恢復(fù)。
---設(shè)qpsk信號(hào)的第n個(gè)碼元在位同步點(diǎn)處的相位信息為:,其中,i=0,1,2,3,θ(n)為第n個(gè)碼元的相位偏移。要得到相位誤差,需要去除相位信息中的信息分量πi/2,通過(guò)觀(guān)察qpsk星座圖可以發(fā)現(xiàn),相鄰星座點(diǎn)間的相差總在π/2附近,于是用如下方法可以去除信息分量。令,并令,其中,mod表示求余,ξ(n)是單個(gè)碼元的相位誤差。如果采樣頻率為fs,碼元速率為fb,則該碼元每個(gè)采樣點(diǎn)的平均相位誤差為e(n)=ξ(n)/(fs/fb)。平均相位誤差送入環(huán)路濾波器,濾波結(jié)果由系數(shù)k調(diào)整后,送入vco進(jìn)行相位增量調(diào)整,當(dāng)e(n)穩(wěn)定在一個(gè)較小值附近時(shí),dfpll處于鎖定狀態(tài)。環(huán)路濾波器采用一階rc低通濾波器。由于其輸入為相位估計(jì)器,考慮來(lái)自相位估計(jì)器的相位差值信號(hào)以碼元速率fb變化,其截止頻率應(yīng)在fb附近,用沖激不變法設(shè)計(jì)歸一化系統(tǒng)函數(shù)為:。濾波器的截止頻率和增益k對(duì)捕獲時(shí)間和環(huán)路的穩(wěn)定性都有影響,調(diào)整這兩個(gè)參數(shù),使之達(dá)到最佳狀態(tài)。
dttl符號(hào)定時(shí)恢復(fù)
---qpsk調(diào)制的dttl符號(hào)定時(shí)恢復(fù)算法原理如圖4所示。該算法由farrow插值器、定時(shí)誤差檢測(cè)器、數(shù)字環(huán)路濾波器及數(shù)控振蕩器等四部分組成??梢钥闯?,它實(shí)際上是一個(gè)帶鎖相環(huán)的反饋定時(shí)誤差同步器。符號(hào)定時(shí)恢復(fù)主要是通過(guò)不斷調(diào)整farrow插值器的參數(shù),使得輸出的樣點(diǎn)值抽樣在每個(gè)符號(hào)周期的最大值上。該算法工作在2個(gè)樣點(diǎn)/符號(hào)。
---圖4中的farrow插值器使用線(xiàn)性插值公式z1(k)=(1-μ(k))y1(k-1)+μ(k)y1(k),其中0≤μ(k)<1。調(diào)整μ(k)的值,即可使樣值采樣在最佳時(shí)刻。誤差檢測(cè)器可表示如下。
---vd(k)=z1(k-1)[sgn(z1(k))-sgn(z1(k-2))]+zq(k-1)[sgn(zq(k))-sgn(zq(k-2))]
---環(huán)路濾波器采用二階數(shù)字環(huán)路濾波器,其輸入輸出關(guān)系可表示如下。
---vc(k)=vc(k-1)+kpvd(k)+(ki-kp)vd(k-1)
---關(guān)于比例增益常量kp和積分增益常量ki的選擇,可以參考文獻(xiàn)4。數(shù)控振蕩器的控制字vo按照下式每個(gè)符號(hào)調(diào)整一次。
---vo(k)=vo(k-1)+kovc(k)
---式中ko為數(shù)控振蕩器靈敏度增益常量。最后,分?jǐn)?shù)索引μ(k)可按下式更新。
---μ(k)=mod(μ(k-1)+vo(k-1),1)
---式中mod表示取余。
kalman dfe自適應(yīng)均衡器
---kalman dfe自適應(yīng)均衡器的均衡原理如圖5所示。
---
由圖5可以看出,dfe均衡器包含兩個(gè)橫向?yàn)V波器,一個(gè)橫向?yàn)V波器用于線(xiàn)性的前向?yàn)V波處理,其判決結(jié)果反饋給另一個(gè)橫向?yàn)V波器。如果前面的判決是正確的,則反饋濾波器就能消除由前面碼元所造成的串?dāng)_。反饋濾波器的抽頭系數(shù)由包括前向?yàn)V波器所造成的信道沖激響應(yīng)拖尾所決定。不難理解,只要誤碼率小于1/2,原則上就能保證收斂。
---圖中前向?yàn)V波器為m階,反饋濾波器為n階;tn為訓(xùn)練序列;yk為前向?yàn)V波器的輸入,ai為其抽頭系數(shù);ik為反饋濾波器的輸入,bi為其抽頭系數(shù);zk為dfe的輸出;e(k)為誤差信號(hào)。均衡器工作時(shí),總是先由接收到的同步序列或訓(xùn)練序列tn等已知序列進(jìn)行訓(xùn)練。在訓(xùn)練期間,dfe均衡器將內(nèi)部產(chǎn)生的理想信號(hào)作為反饋輸入信號(hào),由lms或rls算法對(duì)信道進(jìn)行估計(jì),同時(shí)調(diào)整前向與反饋濾波器的抽頭系數(shù),收斂到均方誤差最小。當(dāng)殘差足夠小時(shí),均衡器被切換到直接判決模式,即由判決符號(hào)重調(diào)制生成的參考信號(hào)作為反饋輸入,均衡器將繼續(xù)工作在均方誤差最小狀態(tài)。
---由圖5可知,
---令xt(k)=yk,yk+1,...,yk+m-1,ik-1,ik-2,...,ik-n)
---wt(k)=(a1,a2, ..., am,b1,b2, ...,bn)
---其中,t表示轉(zhuǎn)置,則誤差信號(hào)e(k)表示如下。
---e(k)=ik-zk=ik-wt(k-1)x(k)
---kalman算法的精髓在于,已知w(k-1),遞推計(jì)算w(k),其遞推步驟如下。
---初始化:0<ω<1;w(0)=0;p(0)=i,i表示單位矩陣。
---for k=1 to n do :e(k)=i(k)-xt(k)w(k-1)
---k(k)= p(k-1)x*(k)
---ω+xt(k)p(k-1)x*(k)
---p(k)= [p(k-1)-k(k)xt(k)p(k-1)]
---w(k)=w(k-1)+k(k)e(k)
---其中,k(k)為卡爾曼增益向量,p(k)為x(k)的協(xié)方差矩陣。均衡器系數(shù)隨時(shí)間改變的量等于誤差e(k)乘以卡爾曼增益向量k(k)。因?yàn)槭莔+n維的,所以每一個(gè)抽頭系數(shù)實(shí)際上受到k(k)的一個(gè)元素的控制,從而獲得快速收斂。
實(shí)時(shí)測(cè)試結(jié)果
---測(cè)試系統(tǒng)框圖如圖1所示。這里接收機(jī)輸出的psk31信號(hào)的載頻為1000hz,碼元速率為31.25波特,調(diào)制方式為qpsk,聲卡的采樣頻率為8000hz。dttl符號(hào)定時(shí)恢復(fù)過(guò)程中,定時(shí)誤差及分?jǐn)?shù)索引的收斂情況如圖6、圖7所示。dfpll載頻恢復(fù)過(guò)程中,vco輸出參考載頻的收斂情況如圖8所示。圖9則分別顯示了未加均衡與加均衡時(shí),解調(diào)出的qpsk星座的對(duì)比。
參考文獻(xiàn)
1 張賢達(dá),保錚.通信信號(hào)處理.國(guó)防工業(yè)出版社
2 john g.proakis著.張力軍,張宗橙,鄭寶玉等譯.數(shù)字通信.電子工業(yè)出版社
3 f.m.gardner,“interpolation in digital modems-part i:fundamentals,” ieee trans.comm., com-41,pp.501-507,mar.1993
4 f.m.gardner,l.eurp,and r.a.harris, “interpolation in digital modems-part ii: implementation and performance,” ieee trans. comm.,com-41, pp. 998-1008 , jun.1993
5 al-dhahir,n.;cioffi,j.m.,"mmse decision-feedback equalizers:finite-length results,"in information theory,ieee transactions on volume:41 4,july 1995,page:961-975
評(píng)論