一種基於門限的低複雜度MPA算法的製作方法
2023-05-18 18:37:56 1

本發明涉及無線通信技術領域,特別涉及一種基於門限的低複雜度mpa算法。。
背景技術:
隨著4glte系統投入商用,面對不斷增長的用戶數量、無處不在的網絡接入以及更高的通信質量需求,人們開始了對5g的研究。稀疏碼分多址(scma)系統因為其優於lte系統的鏈路傳輸質量和成倍的系統容量而成為新的研究熱點。
scma技術作為一種新型的非正交多址技術,由於碼字具有稀疏特性,即碼字中非零元個數遠小於碼字長度,接收機可以利用消息傳遞算法(mpa)進行多用戶聯合解碼。
mpa算法是一種基於因子圖求邊緣概率分布的迭代算法,該算法中外信息在變量節點(vn)和函數節點(fn)之間不斷的傳遞,最後獲得一個穩定的概率分布作為判決量,最終最優的判決量對應的碼字即為判決輸出結果。相對於聯合最優最大後驗概率(map)檢測算法,mpa是一種次優的方法,但是mpa利用了碼本的稀疏性,極大地降低了多用戶檢測的複雜度。
雖然mpa算法的複雜度相對於最優的map有所降低,但是在系統嚴重過載或碼本尺寸過大的情況下,硬體實現仍然很困難。事實上,在迭代過程中用戶碼字的收斂速度存在差異,收斂快的碼字不需要迭代到最大迭代步數就可以解碼,同時對於一些置信度極低的碼字可以在迭代過程中捨棄。然而,在原始mpa的迭代過程中所有的碼字都被同等對待,每次迭代都需要更新所有的節點消息,直到迭代到最大迭代步數後才對所有的用戶進行解碼,這種不顧碼字置信度的迭代解碼方式導致很多冗餘的計算複雜度。
技術實現要素:
本發明的目的在於克服現有技術的不足,提供一種基於門限的低複雜度mpa算法,該算法通過設置置信度門限來及時對可靠的碼字進行解碼,或對發送概率極低的碼字進行捨棄,從而有效地降低了原始mpa算法的複雜度。
一種基於門限的低複雜度mpa算法,具體步驟如下:
s1、輸入基帶信號;
s2、初始化變量節點消息,具體為:其中,表示第t次迭代中用戶j在頻點k上傳輸碼字χ的概率,表示用戶j的碼本中第m個碼字,m表示碼本尺寸,j表示所有的用戶數,表示用戶j佔用的頻點集合,j=1,...,j,m=1,...,m,t為不為零的自然數;
s3、根據公式更新函數節點和變量節點消息,其中,yk表示第k個頻點的觀測值,表示合成碼字第k維的取值,表示頻點k上疊加的用戶集合,表示從集合中除去用戶j,表示在第t次迭代中在頻點k上檢測到用戶j傳輸碼字χ的概率,normalize(·)表示歸一化,為傳輸條件下接受到yk的條件概率;
s4、根據公式計算各碼字的置信度,其中,表示第t次迭代完成後用戶j傳輸第m個碼字的概率;
s5、判斷s4所述碼字置信度是否滿足門限,確定對碼字進行解碼、捨棄還是繼續迭代,具體如下:
s51、判斷置信度最高的碼字是否滿足第一門限,若是則直接將該碼字作為解碼結果輸出,反之,則進入s52,其中,所述第一門限為經驗設定;
s52、判斷置信度最低的碼字是否滿足第二門限,若否則進入步驟s6,若是則捨棄該碼字並進入s53,其中,所述第二門限為經驗設定,第一門限與第二門限不相等;
s53、判斷捨棄一個置信度最低的碼字後剩餘的碼字個數是否為1,若是則將剩下的碼字作為解碼結果輸出,反之則進入步驟s3,且迭代步數加1;
s6、當s5完成後若存在未被解碼的用戶,則判斷是否達到最大迭代步數,若達到最大迭代步數則對用戶進行解碼,反之,則回到步驟s3,且迭代步數加1。
進一步地,s3所述計算方式為
其中,σ2表示噪聲方差,hj,k表示第j個用戶的第k個分量經歷的信道衰落係數,xj,k表示第j個用戶發送碼字的第k維取值。
本發明的有益效果是:
利用門限將迭代過程中的置信度足夠高的碼字挑選出來進行解碼,從而減少同一頻點上疊加的用戶數;同時,對置信度足夠低的碼字進行捨棄,可以縮小後續迭代過程中消息更新所需的搜素範圍,有效地降低算法複雜度。
附圖說明
圖1為本發明的算法流程圖。
圖2為原始mpa算法流程圖。
圖3為上行scma系統模型圖。
圖4為scma編碼器工作原理圖。
圖5為scma因子圖。
具體實施方式
下面將結合實施例和附圖,對本發明方法進行進一步說明。
本實施例在matlab仿真平臺進行實驗,實施例中的系統參數如表1所示,碼本如表2所示,其系統模型如圖3所示。在awgn信道下對6個用戶共享4個頻率資源,過載率為150%的scma系統進行仿真,包括發送端處理過程和接收端處理過程。
表1仿真系統參數
表2所用碼本
發送端處理流程包括以下步驟:
s101:隨機生成6組長度為2的二進位比特流;
s102:利用scma編碼器進行編碼,將各用戶數據中的2個比特映射為一個碼字,分別獲得碼字x1,x2,...,x6,編碼器工作原理圖如圖4所示;
s103:經過編碼後的碼字經歷不同的信道衰落後疊加在一起發送到接收端;
接收端處理流程包括以下步驟:
s201:接收到長度為4的向量y,其表達式如下:
其中xj=(xj,1,xj,2,···,xj,4)t表示第j個用戶發送的碼字,hj=(hj,1,hj,2,...,hj,4)t表示第j個用戶經歷的信道衰落,n=(n1,n2,...,n4)表示白高斯噪聲向量,且n服從均值為零,方差為σ2i的復高斯分布。
s202:將y輸入到本發明的解碼器中進行解碼,如圖1所示,具體包括以下步驟:
s2021:初始化變量節點消息;
其中表示第t次迭代中用戶j在頻點k上傳輸碼字χ的概率,表示用戶j的碼本中第m個碼字,表示用戶j佔用的頻點集合。
s2022:更新函數節點和變量節點消息,消息沿著如圖5所示的因子圖的邊傳遞;
其中yk表示第k個頻點的觀測值,表示合成碼字第k維的取值,表示頻點k上疊加的用戶集合,表示從集合中除去用戶j,表示在第t次迭代中在頻點k上檢測到用戶j傳輸碼字χ的概率,normalize(·)表示歸一化,為傳輸條件下接受到yk的條件概率,其計算方式如下:
其中σ2表示噪聲方差,hj,k表示第j個用戶的第k個分量經歷的信道衰落係數,xj,k表示第j個用戶發送碼字的第k維取值。
s2023:計算各碼字的置信度;
其中表示第t次迭代完成後用戶j傳輸第m個碼字的概率。
s2024:判斷碼字置信度是否滿足門限,來決定對碼字進行解碼、捨棄還是繼續迭代,具體包括以下步驟:
s20241:判斷置信度最高的碼字是否滿足第一門限th1,若是則直接將該碼字作為解碼結果輸出,反之,則進入下一步;
s20242:判斷置信度最低的碼字是否滿足第二門限th2,若否則進入步驟s2022,反之,則捨棄該碼字並進入下一步;
s20243:判斷捨棄一個置信度最低的碼字後剩餘的碼字個數是否為1,若是則將剩下的碼字作為解碼結果輸出,反之則進入步驟s3,且迭代步數加1;
s2025:當s2024完成後若存在未被解碼的用戶,則判斷是否達到最大迭代步數,若是則對剩下的所有用戶進行解碼,反之,則回到步驟s2022;且迭代步數加1;
本發明在接收端利用基於門限的mpa算法進行多用戶聯合解碼,能夠及時解碼置信度高的碼字,同時也能及時捨棄置信度低的碼字,從而避免了原始mpa中不管碼字置信度造成的多餘的消息更新,如圖2所示,有效地降低了算法複雜度。