1.算法運(yùn)行效果圖預(yù)覽
2.算法運(yùn)行軟件版本
matlab2022a
3.算法理論概述
???????32QAM(Quadrature Amplitude Modulation殉挽,四相幅度調(diào)制)是一種高效的數(shù)字調(diào)制技術(shù),能夠在一個(gè)信道內(nèi)同時(shí)傳輸多比特信息拓巧∷孤担基于BP(Backpropagation)神經(jīng)網(wǎng)絡(luò)的32QAM解調(diào)算法,利用神經(jīng)網(wǎng)絡(luò)的強(qiáng)大非線性映射能力肛度,直接從接收到的復(fù)數(shù)信號(hào)中估計(jì)出原始的調(diào)制符號(hào)傻唾,從而恢復(fù)數(shù)據(jù)。這種方法尤其適用于處理含有噪聲承耿、干擾和失真的復(fù)雜通信環(huán)境策吠。
??????BP神經(jīng)網(wǎng)絡(luò)是一種多層前饋網(wǎng)絡(luò),主要包括輸入層瘩绒、隱藏層和輸出層猴抹。在32QAM解調(diào)應(yīng)用中,網(wǎng)絡(luò)架構(gòu)可以如下設(shè)計(jì):
???????BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練基于梯度下降法锁荔,通過(guò)最小化損失函數(shù)(如交叉熵?fù)p失)來(lái)更新權(quán)重和偏置蟀给。訓(xùn)練過(guò)程包括以下步驟:
在訓(xùn)練完成后,解調(diào)過(guò)程簡(jiǎn)化為前向傳播過(guò)程:
4.部分核心程序
% 第一部分:加載并可視化數(shù)據(jù)
real1 = [ 5,-5,5,-5 ,3,-3, 3,-3,...
???????????5,-5,5,-5, 3,-3, 3,-3,...
???????????3,-3,3,-3, 1,-1, 1,-1,...
???????????1,-1,1,-1, 1,-1, 1,-1
]./sqrt(30);
?imag1= 1*[-3,-3,3, 3,-3,-3,-5,-5,...
??????????-1,-1,1, 1,-1,-1, 1, 1,...
???????????5,5 ,3, 3,-3,-3,-5,-5,...
???????????5,5, 3, 3,-1,-1, 1, 1
?]./sqrt(30);?
IQmap = real1'+sqrt(-1)*imag1';
for ij = 1:length(SNR)
???ij
???for j = 1:20
???????%為每個(gè)神經(jīng)網(wǎng)絡(luò)尋找最佳超參數(shù)組合
???????[accuracy,yfit] = func_ANN_qpsk(Si, Sh, Nlabel, lambda, IQmap, SrxT,StxT, SrxV, StxV);
???????err(ij,j)=1-accuracy/100;
???end
end
% 調(diào)用函數(shù)繪制星座圖阳堕,展示數(shù)據(jù)的10%
func_constellation(Srx,Stx,0.5)?
figure;
semilogy(SNR,mean(err,2),'b-o');
grid on
xlabel('SNR');
ylabel('誤碼率');
legend('32QAM誤碼率');
figure
plot(yfit,'-r>',...
???'LineWidth',1,...
???'MarkerSize',6,...
???'MarkerEdgeColor','k',...
???'MarkerFaceColor',[0.9,0.9,0.0]);
xlabel('訓(xùn)練迭代次數(shù)');
ylabel('神經(jīng)網(wǎng)絡(luò)訓(xùn)練曲線');