李 濛,吳呈瑜,占 敖
(浙江理工大學(xué) 信息學(xué)院, 杭州 浙江 310018)
頻移鍵控信號(Frequency Shift Keying,FSK)[1]具有產(chǎn)生方法簡單、易于實(shí)現(xiàn)、可以異步傳輸和抗噪聲能力強(qiáng)的性能,使得多進(jìn)制頻移鍵控(Multiple Frequency Shift Keying,MFSK)信號在無線通信中得到廣泛的應(yīng)用[2]。
目前對MFSK信號的解調(diào)方法主要包括快速傅里葉變換 (Fast Fourier Transform,FFT)[3]、短時傅里葉變化 (Short-Time Fourier Transform,STFT)[4]以及小波變化[5]解調(diào)算法。文獻(xiàn)[6]中FFT解調(diào)器方案是根據(jù)同相(I)和正交(Q)樣本組成的接收信號輸入FFT后,通過選取FFT輸出中可選功率最大的位置,對信號進(jìn)行解調(diào),但該方法的復(fù)雜度較高,信號處理效率較低。文獻(xiàn)[7]中基于STFT是通過求解信號的能量系數(shù),根據(jù)其序列的極大值點(diǎn)對應(yīng)著時頻能量來對信號進(jìn)行解調(diào),但抗噪性能較差且只對低階的MFSK信號效果較好。文獻(xiàn)[8]基于小波變化對信號進(jìn)行解調(diào)是通過對小波脊線提取進(jìn)而得到信號的瞬時頻率,但小波變化存在小波尺度盲點(diǎn)、抗噪聲性能差等問題。文獻(xiàn)[9]中MFSK正交解調(diào)方案通過對瞬時速率的抽樣判決完成對信號的解調(diào),但沒有對高噪聲的信號進(jìn)行進(jìn)一步處理,抗噪能力較弱。近幾年有采用神經(jīng)網(wǎng)絡(luò)[10-14]對信號進(jìn)行解調(diào),效果較好,但該方法需要大量數(shù)據(jù),且僅針對特定訓(xùn)練的信號效果較好。
本文通過MFSK信號I、Q兩路的正交特性和頻域特性對信號的信號同步、調(diào)制碼識別和進(jìn)制識別進(jìn)行了研究:通過對信號不同頻率點(diǎn)處的功率譜峰值進(jìn)行檢測判決完成了信號同步;通過信號的正交特性進(jìn)而對信號斜率進(jìn)行提取,再根據(jù)信號斜率構(gòu)建差值序列并建立解調(diào)的數(shù)學(xué)模型,完成了調(diào)制進(jìn)制M的識別和調(diào)制碼的解調(diào)。本文的算法復(fù)雜度較低且僅呈線性增長,有著較高的信號處理速率和較廣應(yīng)用前景。
MFSK是一種可用多個不同的載波頻率代表多種數(shù)字信息的調(diào)制方式[15],其表達(dá)式為:
(1)
式中,A0為信號幅度,g(n-m)表示基帶信號,am∈{1,2,3,…,M}為發(fā)送的數(shù)據(jù),Δω為載波頻率間隔。通過將接收的MFSK信號相干解調(diào)處理后,可以得到兩路正交的I、Q信號,如式(2)所示:
(2)
根據(jù)式(2)中的SI(n)和SQ(n),進(jìn)一步建立優(yōu)化模型求解信號所有碼元數(shù)的實(shí)際信號和設(shè)定信號之間的最小頻率誤差,設(shè)定H為頻率誤差,以信號頻率的取值范圍為約束條件,則該優(yōu)化模型可表示為:
|A0sin(akω)-SI(t+(k-1)N:t+k·N)|
s.t.a1 (3) 式中,L為信號的總碼元數(shù),ak為信號第k個碼元所發(fā)送的數(shù)據(jù),SQ和SI為信號的同向和正交分量,t為信號的起始點(diǎn),N為信號的碼元長度。 上述問題是一個含離散變量的非凸非線性規(guī)劃問題,難以獲得其最優(yōu)解[16],在實(shí)際問題中,信號長度往往很長,調(diào)制進(jìn)制也會出現(xiàn)16、32等較高的階的情況,會進(jìn)一步增加問題求解的復(fù)雜度。本文通過對上述問題進(jìn)行簡化,求解該問題的次優(yōu)解,進(jìn)而減少計(jì)算的復(fù)雜度和計(jì)算量。 本文首先計(jì)算信號起始點(diǎn)位置,再根據(jù)信號的正交性對式(3)中的優(yōu)化問題進(jìn)行簡化并求其次優(yōu)解,具體如下: ① 信號同步:首先將MFSK信號通過FFT變化進(jìn)行信號同步,找到信號的起始點(diǎn)t。 ② 信號解調(diào):通過I、Q兩路信號的相位正交性得到信號的斜率,根據(jù)信號斜率構(gòu)建差值序列對信號進(jìn)行建模解調(diào),求解出該問題的次優(yōu)解。 假設(shè)接收到信號的采樣率為FS,碼速率為C,此時碼元長度N=Fs/C,通過FSK信號和FFT的原理可知,通過對長度為N的信號進(jìn)行FFT,可以得到當(dāng)前碼元的頻率值。并根據(jù)得到頻率值進(jìn)行判決可以完成信號同步,以下是進(jìn)行信號同步的步驟,假設(shè)數(shù)據(jù)的起始位置計(jì)為t: ① 讀取t到t+N的數(shù)據(jù),進(jìn)行FFT; ② 計(jì)算出所得功率譜中最大值max(A)及最小值min(A),并設(shè)定需要進(jìn)行判決的門限D(zhuǎn)=max(A)/min(A); ③ 當(dāng)?shù)玫降拈T限D(zhuǎn)小于一個設(shè)定值,并且此時的最大值max(A)大于一個設(shè)定的門限,將其判定為有效信息; ④ 找到當(dāng)前頻率譜中最大的兩個值,t值遞增,當(dāng)頻率譜中這兩個值最接近時,此時t處于符號的中間位置,在向前移動半個碼元,即可得到信號的起始位置。 首先將MFSK信號的I、Q兩路信號SI、SQ進(jìn)行反正切運(yùn)算得到信號的斜率Sv: (4) (5) Sv(x)=pωx,x∈(-kπ/2,kπ/2),k=1,2,3…,n, (6) 其中,p∈{a1,a2,a3,…,aM}為發(fā)送的數(shù)據(jù)。 考慮到實(shí)際系統(tǒng)中反正切運(yùn)算量較大,且在FPGA中也難以直接實(shí)現(xiàn),通過式(7)改進(jìn)算法來簡化計(jì)算過程[9]: (7) 通過式(6)可以看出不同頻率的信號對應(yīng)不同的斜率,通過對相鄰的兩斜率值求差,可得不同頻率信號的斜率差值d(k): (8) 由于不同頻率的信號對應(yīng)不同的斜率,可以通過斜率差值的數(shù)量確定MFSK信號的調(diào)制進(jìn)制M。將得到的M個差值通過式(8)構(gòu)建差值序列R1~RM,再將信號的斜率Sv通過式(9)進(jìn)行求差,得到整段信號的斜率差值Sc,并對Sc進(jìn)行低通濾波以減少高頻噪聲的影響,最后建立以頻率誤差H最小化為目標(biāo),以差值序列的取值范圍為約束的優(yōu)化模型。 Rk=d(k)·IN,1, (9) Sc=Sv(n+1)-Sv(n), (10) (11) 其中,IN,1是長度為碼元長度N的單位矩陣,Sc(t+(i-1)·N:t+i·N)為信號的第i個碼元。 對于上述優(yōu)化問題,根據(jù)式(8)所得斜率差值,設(shè)定不同的門限值,進(jìn)行門限判決進(jìn)而求解出每個碼元的頻點(diǎn)。對信號一個長度為N的碼元進(jìn)行求解的時間復(fù)雜度為O(N),對L個碼元的信號建立模型求解的總計(jì)時間復(fù)雜度為O(LN),算法復(fù)雜度僅呈線性增長。 通過解決式(9)的問題,可確定Sv中每段信號所處的頻點(diǎn),最后再根據(jù)MFSK調(diào)制映射對照關(guān)系解出比特信息。 首先設(shè)定W初始值為0,截取W~W+N信號進(jìn)行FFT,當(dāng)功率譜中最大值和最小值的比值不符合判決門限時,W不斷遞增,直到功率譜中最大的兩個值之差最小時,可得信號的起始點(diǎn)為W-N/2,再通過反正切運(yùn)算得到信號的斜率,并構(gòu)建差值序列對信號進(jìn)行建模解調(diào),算法實(shí)現(xiàn)的具體流程如圖1所示。 圖1 算法實(shí)現(xiàn)程序流程框圖Fig.1 Algorithm implementation program flow diagram 算法實(shí)現(xiàn)的偽代碼如算法1所示,首先將FFT變化后信號中的最大值result和次大值result1提取出來,并設(shè)定判決門限set1和set2,當(dāng)滿足判決門限時且result與result1差值最小時,得到信號起始點(diǎn)為W-N/2,再通過反正切運(yùn)算得到信號斜率Sv,并求得信號的斜率差值d(k),最后根據(jù)斜率差值,設(shè)定不同的門限值,進(jìn)行門限判決進(jìn)而求解出每個碼元的頻點(diǎn)。 算法 1 解調(diào)算法輸入:接收信號S,I路信號SI,Q路信號SQ,碼元長度N輸出:Rn碼元頻點(diǎn)1:functionDemodulation(S,SI,SQ,N)2: W ←03: while1 do4: W ←W+15: c ←min(result)/ 106: result ←FFT(S/(W+(k-1)N:W+N×k),N)7: result1 ←result[find(result =max(result))] = null8: set1←4×mean(result)/min(result)9: set2←5×mean(result)10: D ←max(result)/min(result) 11: ifD < set1 and max(result) > set2 then12: if max(result)-max(result) < cthen13: t ←W-N/214: Break15: end if16: end if17: m ←018: R ←019: L ←length(S)/N20: Sv ←arctan(SI/SQ)21: fork=0 →length(Sv)-1 do22: d(k) ←Sv(k+1)-Sv(k)23: end for24: fori=1 →L do25: ifR≠(∑t+N×ik=t+N×(i-1)d(k)/N) then26: m ←m+127: R(m)←(∑t+N×ik=t+N×(i-1)d(k)/N28: end if29: end for30: for i=1 →Ldo31: fork=1 →mdo32: H(k) ←R(k)-d(t+N×(i-1),t+N×i)33: end for 34: Rn(i) ←min(H)35: end for36: returnRn 為比較本文算法以及文獻(xiàn)[17]的算法,設(shè)置仿真參數(shù)如表1所示。 表1 仿真參數(shù)設(shè)置Tab.1 Simulation parameter settings 同時設(shè)置實(shí)驗(yàn)如下:通過Matlab仿真生成2FSK、4FSK、8FSK、16FSK信號,信號的先驗(yàn)信息保持一致,均采用加性的高斯白噪聲,信噪比為1 dB步進(jìn)到12 dB,每個不同信噪比下均進(jìn)行200次蒙特卡羅試驗(yàn),分別使用文獻(xiàn)[17]算法、傳統(tǒng)相干解調(diào)[18]和本文算法進(jìn)行計(jì)算。仿真不同進(jìn)制下的解調(diào)誤碼率,三種算法的誤碼率曲線如圖2~圖5所示。 圖2 2FSK性能對比Fig.2 2FSK performance comparison 圖3 4FSK性能對比Fig.3 4FSK performance comparison 圖4 8FSK性能對比Fig.4 8FSK performance comparison 圖5 16FSK性能對比Fig.5 16FSK performance comparison 由圖2~圖5可以看出,本文算法在實(shí)驗(yàn)過程中有良好的穩(wěn)定性和準(zhǔn)確性。在低信噪比(<6 dB)時,斜率差值誤差較大,導(dǎo)致無法正確地設(shè)置判決門限,誤碼率較高;在高信噪比(>6 dB)時,2FSK、4FSK、8FSK和16FSK的解調(diào)正確率都可以達(dá)到90%以上,且表現(xiàn)出很高的穩(wěn)定性,解調(diào)性能優(yōu)于傳統(tǒng)的小波解調(diào)和相干解調(diào)算法。當(dāng)面對一個未知的信號時,基于小波變化的解調(diào)算法無法事先確定好尺度因子的選擇。因此,可以認(rèn)為本文算法所需先驗(yàn)知識更少,本文算法也更加適用于MFSK信號的解調(diào)[19]。 本文提出了一種基于正交MFSK信號的解調(diào)算法,首先利用MFSK信號在功率譜中的能量聚集性,對功率譜頻率的峰值進(jìn)行檢測判決來完成信號同步,然后利用信號的正交性對信號斜率進(jìn)行提取,最后根據(jù)信號斜率構(gòu)建差值序列并建立解調(diào)的數(shù)學(xué)模型,完成了調(diào)制進(jìn)制M的識別和調(diào)制碼的解調(diào)。本文算法復(fù)雜度較低且僅呈線性增長,仿真結(jié)果表明,有較為理想的處理性能和較高的運(yùn)行效率,適于工程實(shí)現(xiàn)。2 MFSK信號解調(diào)模型
2.1 信號同步
2.2 信號解調(diào)
2.3 算法的實(shí)現(xiàn)
3 仿真實(shí)驗(yàn)及結(jié)果分析
4 結(jié)束語