1.算法運行效果圖預覽
(完整程序運行後無水印)
2.算法運行軟件版本
Matlab2024b/Matlab2022a
3.部分核心程序
(完整版代碼包含詳細中文註釋和操作步驟視頻)
.........................................................................
%MPA譯碼
LLR = func_scma_MPA(y,DCB,No,Niter,F);
% 對輸入信號x進行維度重排,將第2維與第1維交換,第3維不變
xs = permute(x, [2 1 3]);
x1 = xs(:,:,1);% 提取重排後信號的第一頁數據,存儲在x1中
x2 = xs(:,:,2);% 提取重排後信號的第二頁數據,存儲在x2中
X = [x1;x2];
r = de2bi(X, log2(M), 'left-msb');% 將X中的元素轉換為二進制,存儲在r中,
data = zeros(log2(M)*N, numTx*V);
for kk = 1:numTx*V% 遍歷每個用户
% 對r進行下采樣操作,將結果重塑為列向量,存儲在data的對應列中
data(:,kk) = reshape(downsample(r, numTx*V, kk-1).',[],1);
end
% 將對數似然比LLR轉換為二進制數據,小於等於0的為0,大於0的為1
datadec = reshape((LLR <= 0), [log2(M) N*numTx*V]).';
datar = zeros(log2(M)*N, numTx*V);
for kk = 1:numTx*V% 遍歷每個用户
datar(:,kk) = reshape(downsample(datadec, numTx*V, kk-1).',[], 1);
end
err = sum(xor(data, datar));
Nerr(:,u) = Nerr(:,u) + err.';
Nbits(:,u) = Nbits(:,u) + log2(M)*N;
end
%計算誤碼率
BER(:,u) = Nerr(:,u)./Nbits(:,u);
01_216m
4.算法理論概述
多輸入多輸出(MIMO)技術通過在發射端和接收端使用多個天線,能夠顯著提高無線通信系統的容量和可靠性。空時分組碼(STBC)是一種常用的 MIMO編碼技術,它可以在不增加帶寬的情況下提供發射分集增益。最大似然(ML)檢測是一種最優的檢測算法,但計算複雜度較高。消息傳遞算法(MPA)作為一種迭代算法,能夠在可接受的複雜度下接近 ML 檢測的性能。
本文章為轉載內容,我們尊重原作者對文章享有的著作權。如有內容錯誤或侵權問題,歡迎原作者聯繫我們進行內容更正或刪除文章。