本發明屬于數字通信技術領域,涉及一種dbpsk解調方法,具體涉及一種基于多個神經網絡的dbpsk解調方法,可用于衛星通信、深空通信。
技術背景
為了使數字信號在帶通信道中傳輸,必須用數字基帶信號對載波進行調制,以使信號與信道的特性相匹配。這種用數字基帶信號控制載波,把數字基帶信號變換為數字帶通信號的過程稱為數字調制,在接收端通過解調器把帶通信號還原成數字基帶信號的過程稱為數字解調。數字調制包含psk、ask以及fsk等多種方式,其中bpsk是psk中最為簡單的一種,它利用兩種載波相位0和π分別表示二進制“1”和“0”。因此bpsk已調信號的時域表達式為:
其中,
bpsk信號的解調通常采用相干解調法,即在解調端產生與接收信號同頻同相的相干載波,使其與接收信號相乘并經過低通濾波后,即可得到基帶信號。但是,在bpsk信號載波恢復過程中可能出現相干載波與接收信號完全反相的情況,此時解調出的數字基帶信號會與發送的數字基帶信號正好相反,判決器輸出的碼元符號全部出錯,為了避免這種現象,實際應用中常常使用差分相移鍵控,即dbpsk。這種調制方式在調制時對基帶信號進行差分編碼,然后解調時再對相鄰碼元進行異或處理,即可得到原數字基帶數據。
dbpsk調制方法是利用前后相鄰碼元的載波相對相位變化傳遞數字信息的,所以又稱相對相移鍵控。假設δq為當前碼元與前一碼元的載波相位差,可定義一種數字信息與δq之間的關系為:
由以上原理可知,dbpsk信號的相位并不直接代表基帶信號,而前后碼元相對相位的差才唯一決定信息符號。dbpsk信號的調制過程為:先對二進制數字基帶信號進行差分編碼,即把表示數字信息序列的絕對碼變換成相對碼,然后再根據相對碼進行絕對調相,即對相對碼進行普通bpsk調制,即可產生二進制差分相移鍵控信號。上述差分編碼的規則為:
式中:
其解調過程使用以上過程的逆過程,稱為差分譯碼,即:
解調時,先對dbpsk信號進行相干解調,恢復出相對碼,再經碼反變換器變換為絕對碼,從而恢復出發送的二進制數字信息。
onder等人2016年發表的論文《advancedneuralnetworkreceiverdesigntocombatmultiplechannelimpairments》(turkishjournalofelectricalengineeringandcomputersciences·january2016)中公開了一種使用單個神經網絡進行mpsk信號的解調方法。此方法將已調信號的采樣點按照碼元周期分組,將每個碼元周期對應的采樣點作為神經網絡的輸入向量,神經網絡輸出向量代表對應的符號碼元,將輸出的符號碼元按時間順序排列成碼元序列,就得到了解調輸出。
使用onder等人公開的方法進行dbpsk解調,神經網絡解調得到的是相對碼,需要進行額外的差分譯碼過程,這樣會造成解調過程中速度的下降和系統復雜度的上升。并且本方法沒有考慮神經網絡對采樣時刻的敏感性,在初始采樣時刻有偏差時神經網絡無法準確判斷輸入向量對應的碼元,而在實踐中adc對已調信號采樣的初始時刻是隨機的,因此使用此方法進行解調會帶來較大誤碼。
技術實現要素:
本發明的目的在于克服上述現有技術存在的不足,提供了一種基于多神經網絡的dbpsk信號解調方法,使用多個神經網絡結合搜索幀頭的方法來判斷初始采樣時刻,以兩個碼元周期對應的采樣點作為神經網絡的輸入向量,然后神經網絡直接輸出解調結果,用于解決現有dbpsk信號解調方法中誤碼率高的技術問題。
為實現上述的目的,本發明采取的技術方案包括如下步驟:
(1)獲取01隨機序列o和加噪信號r:
(1a)仿真軟件隨機產生01隨機序列o;
(1b)對01隨機序列o進行差分編碼,得到差分編碼序列;
(1c)對差分編碼序列進行bpsk調制,并對調制結果進行加性高斯白噪聲信道仿真,得到加噪信號r;
(2)獲取加噪信號r的采樣序列集θ1,θ2,…,θi,…,θm:
(2a)設加噪信號r初始采樣時刻分別為t1,t2,…,ti,…,tk,其中,ti為第i種初始采樣時刻,且ti=it/k,t為加噪信號r的碼元周期,k為加噪信號r初始采樣時刻的種數,且k≥2;
(2b)利用加噪信號r初始采樣時刻t1,t2,…,ti,…,tk的每種時刻分別對加噪信號r進行采樣,得到加噪信號r的采樣序列集θ1,θ2,…,θi,…,θm,其中,m為采樣序列的個數,且m=k,θi為第i個加噪信號r的采樣序列;
(3)設定神經網絡結構:設定包含輸入層、隱藏層和輸出層的前饋神經網絡結構,其中輸入層節點個數與待解調信號兩個碼元周期內的采樣點個數相等,隱藏層節點個數等于輸入層節點個數的一半,輸出層節點個數為1,且隱藏層和輸出層的激活函數均采用sigmoid函數;
(4)獲取m組神經網絡訓練集:
(4a)以加噪信號r的采樣序列集θ1,θ2,…,θi,…,θm的各采樣序列中任意兩個相鄰碼元周期對應的采樣點作為神經網絡的不同輸入向量,每個采樣序列中所有輸入向量組成一組輸入向量集,得到m組神經網絡輸入向量集,其中的輸入向量的維度與設定的神經網絡結構的輸入層節點個數相同;
(4b)將01隨機序列o中各碼元作為神經網絡的不同輸出向量,得到神經網絡輸出向量集,其中的輸出向量的維度與設定的神經網絡結構的輸出層節點個數相同;
(4c)將m組神經網絡輸入向量集中的每組向量集分別與輸出向量集合并,得到m組神經網絡訓練集;
(5)訓練神經網絡:利用m組神經網絡訓練集對設定的神經網絡結構進行訓練,得到已訓練的神經網絡集n1,n2,…,ni,…,nn,其中,ni為第i個神經網絡,n為神經網絡的數量,且n=m;
(6)對設定的待解調信號進行多神經網絡解調:
(6a)設定格式為基帶數據中每間隔一定數量的碼元插入一個幀頭c的待解調信號;
(6b)對設定的待解調信號進行ad采樣,獲得待解調信號采樣序列;
(6c)將待解調信號采樣序列中任意兩個相鄰碼元周期對應的采樣點作為神經網絡的不同輸入向量,得到待解調信號輸入向量集;
(6d)將待解調信號輸入向量集中的輸入向量逐個分別輸入到神經網絡集n1,n2,…,ni,…,nn的每一個神經網絡中,得到n個神經網絡輸出序列;
(6e)在n個神經網絡輸出序列中搜索待解調信號所設定的幀頭c,并保留連續多次搜索到幀頭c的輸出序列對應的神經網絡,關閉其余神經網絡,得到保留的神經網絡集n'1,n'2,…,n'q,其中,q為保留的神經網絡集中的神經網絡總數;
(6f)將神經網絡
本發明與現有技術相比,具有以下優點:
1.本發明在實現dbpsk解調的過程中,首先產生多組初始采樣時刻不同的訓練集,然后使用訓練集訓練多個神經網絡,并使用這些神經網絡來處理未知初始采樣時刻的待解調信號采樣點,對于任意初始采樣時刻的待解調信號序列,都能選取匹配的網絡進行解調,得到解調輸出,與現有技術相比,有效地降低了解調誤碼率。
2.本發明在實現dbpsk解調的過程中,采用的神經網絡可以同時完成bpsk解調和差分譯碼的功能,與現有技術相比,簡化了解調系統,且提高了解調速度。
3.本發明在實現dbpsk解調的過程中,使用多個神經網絡來判斷采樣時刻,使解調系統可以更好的應對多普勒頻移和采樣時鐘誤差,因此具有較強的抗干擾性。
附圖說明
圖1是本發明的實現流程圖;
圖2是本發明dbpsk調制信號波形圖;
圖3是兩種不同采樣時刻的采樣點波形對比圖;
圖4是本發明神經網絡結構圖。
具體實施方式
下面結合附圖和具體實施例,對本發明作進一步說明。
參照圖1,一種基于多神經網絡的dbpsk解調方法,包括如下步驟:
步驟1,獲取隨機序列o和加噪信號r:
步驟1a,仿真軟件隨機產生01隨機序列o,隨機序列o是包含20000個二進制碼元的隨機序列,o=(o1,o2,…,o20000)。
步驟1b,對其01隨機序列o進行差分編碼,起始碼元b0取1,得到包含20001個二進制碼元的差分編碼序列。假設01隨機序列起始的12個碼元為“011011000101”,則編碼后的差分編碼序列為“1101101111001”。
步驟1c,對編碼后序列進行bpsk調制,產生20001個碼元周期的調制信號,調制時碼元頻率為1mhz,載波頻率為1mhz,獲得調制信號的起始部分如圖2所示。并對調制結果進行加性高斯白噪聲信道仿真,信噪比為5db,得到加噪信號r。
步驟2,獲取加噪信號r的采樣序列集θ1,θ2,…,θi,…,θ32:
由于在解調過程中對調制信號進行采樣時,初始的采樣時刻是隨機的,而不同時刻采樣點對應的信號特征是不同的。所述的初始采樣時刻為,以加噪信號r的碼元周期的初始時刻為零時刻,采樣序列中第一個采樣點的采樣時刻。假設初始采樣時刻為t,則使用t=t0樣本訓練出的網絡無法對t=t1(t1≠t0)的數據進行精確解調。如圖3(a)和圖3(b)所示,假設碼元周期為t,t=0和t=17t/32的采樣點在特征上有較大區別。
為了解決這個問題,本發明采用多個神經網絡進行解調。在步驟1產生加噪信號的基礎上,本實施例假設加噪信號r初始采樣時刻t分別為0,t/32,2t/32,…,it/32,…,31t/32,利用這些初始采樣時刻分別對加噪信號r進行采樣,采樣頻率fs為16mhz,得到加噪信號r的采樣序列集θ1,θ2,…,θi,…,θ32,其中,θi為第i組加噪信號采樣序列,其初始采樣時刻為it/32。
步驟3,設定神經網絡結構:本發明設定的神經網絡結構如如圖4所示,設定包含輸入層、隱藏層和輸出層的前饋神經網絡結構,其中輸入層節點個數與待解調信號兩個碼元周期內的采樣點個數相等,隱藏層節點個數等于輸入層節點個數的一半,輸出層節點個數為1。本實施例中待解調信號碼元頻率f為1mhz,載波頻率fc為1mhz,采樣頻率fs為16mhz,故所述待解調信號一個碼元周期內的采樣點個數為16,所以輸入層節點個數為32,隱藏層節點個數為16,輸出層節點個數為1。隱藏層和輸出層的激活函數均采用sigmoid函數。
步驟4,獲取m組神經網絡訓練集:
步驟4a,以加噪信號r的采樣序列集θ1,θ2,…,θi,…,θ32的采樣序列θi中任意兩個相鄰碼元周期對應的采樣點作為神經網絡的不同輸入向量,每個加噪信號采樣序列中所有輸入向量組成一組輸入向量集,得到32組神經網絡輸入向量集。由于加噪信號r的碼元頻率為1mhz,采樣頻率為16mhz,故一個碼元周期內的采樣點個數為16,神經網絡輸入向量的維度為32,與步驟3中所述的神經網絡輸入層節點個數相同。以采樣序列θ1為例,以采樣序列θ1前兩個碼元周期對應的采樣點即第1到32個采樣點作為第一個輸入向量,以第2、3個碼元周期對應的采樣點即第17到48個采樣點作為第二個輸入向量,以此類推,將θ1中所有采樣點轉換為神經網絡的輸入向量,得到20000個輸入向量,組成了θ1對應的神經網絡輸入向量集。
步驟4b,將01隨機序列o=(o1,o2,…o20000)中各碼元作為神經網絡的不同輸出向量,其中o1為第1個輸出向量,o2為第2個輸出向量,以此類推,得到20000個神經網絡輸出向量,組成一組神經網絡輸出向量集。其中每個輸出向量的維度都是1,與步驟3中所述的神經網絡輸出層節點個數相同。
步驟4c,將32組神經網絡輸入向量集中的每組向量集分別與輸出向量集合并,得到32組神經網絡訓練集。
步驟5,利用32組神經網絡訓練集對設定的神經網絡結構進行訓練,得到神經網絡集n1,n2,…,ni,…,n32,共包含32個訓練好的神經網絡,其中,ni為第i個神經網絡。訓練神經網絡實現步驟為:
步驟5a,對設定的神經網絡結構各層節點的權值和偏置分別進行初始化。
步驟5b,設定神經網絡訓練均方誤差的閾值,設定閾值為0.01。
步驟5c,將32組神經網絡訓練集中的所有輸入向量輸入給神經網絡,得到神經網絡實際輸出向量,并計算該神經網絡實際輸出向量與神經網絡訓練集中的輸出向量之間的均方誤差。
步驟5d,對神經網絡實際輸出向量與神經網絡訓練集中的輸出向量之間的均方誤差進行反向傳播,并利用反向傳播的結果對經過初始化的神經網絡結構各層節點的權值和偏置分別進行調整,得到神經網絡結構各層節點新的權值和偏置。
步驟5e,循環執行步驟5c到步驟5d,當均方誤差小于設定的神經網絡訓練均方誤差閾值0.01時停止循環執行,此時步驟5c到步驟5d的循環次數為3057,得到神經網絡集n1,n2,…,ni,…,n32。
步驟6,對設定的待解調信號進行多神經網絡解調:
步驟6a,設定格式為基帶數據中每間隔一定數量的碼元插入一個幀頭c的待解調信號,在本實施例中,所述間隔的碼元數量為1024,所述幀頭長度為32個碼元,內容為二進制序列“0x5ce9ab43”。
步驟6b,待解調信號的載波頻率為1mhz,碼元頻率為1mhz,對設定的待解調信號進行ad采樣,采樣頻率為16mhz,獲得待解調信號采樣序列。
步驟6c,將待解調信號采樣序列中任意兩個相鄰碼元周期對應的采樣點作為神經網絡的輸入向量,待解調信號一個碼元周期內的采樣點個數為16,以待解調信號采樣序列前兩個碼元周期對應的采樣點即第1到32個采樣點作為的第一個輸入向量,以第2、3個碼元周期對應的采樣點即第17到48個采樣點作為第二個輸入向量,以此類推,將所有待解調信號采樣點轉換為神經網絡的輸入向量,得到待解調信號輸入向量集。
步驟6d,將待解調信號輸入向量集中的輸入向量逐個分別輸入到神經網絡集n1,n2,…,ni,…,n32的每一個神經網絡中,得到32個神經網絡輸出序列。以神經網絡n1為例,將待解調信號輸入向量集中的一個輸入向量輸入給神經網絡n1,得到一個神經網絡n1的輸出向量,將神經網絡n1的所有輸出向量按時間順序排列,得到個神經網絡n1的輸出序列。所述的輸出序列就是基帶數據輸出,在本步驟中神經網絡同時完成了解調和差分譯碼的功能。
步驟6e,在32個神經網絡輸出序列中搜索待解調信號所設定的幀頭c“0x5ce9ab43”,并保留連續多次搜索到幀頭c的輸出序列對應的神經網絡,關閉其余神經網絡,在本實施例中,得到保留的神經網絡集n7,n8,n9。
步驟6f,選取下標處于中間的神經網絡n8作為選中的神經網絡,將神經網絡n8的輸出序列作為解調結果,并輸出。
以上是對本發明的具體實施例進行了描述。需要理解的是,本發明并不局限于上述特定實施方式,本領域技術人員可以在權利要求范圍內做出各種變形或修改,這并不影響本發明的實質內容。