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


3 仿真實驗及結果分析





4 結束語