1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/ZZuUmJtx
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
在数字通信中,正交相移键控(QPSK)是一种高效的调制方法,它能够在有限的带宽内传输更多的信息。然而,在实际通信过程中,由于信道噪声、多径效应等因素,接收到的QPSK信号可能会出现相位偏移,导致解调性能下降。为了解决这个问题,本文提出了一种基于深度学习的QPSK调制解调系统相位检测和补偿算法。该算法利用深度学习网络对接收到的信号进行相位检测,并根据检测结果对信号进行相位补偿,从而提高解调性能。
4.部分源码
................................................................
K = 2; %调制阶数
SNR = [0:1:20]; %信噪比范围0~25
phase = [pi/6]; %相位范围0~pi/4
LEN = 1000;
for i = 1:length(SNR)
i
for j = 1:20
[i,j]
%产生信号
signal = round(rand(1,LEN));
signal_modulated1 = Modulator(signal,K);
signal_receive1 = awgn(signal_modulated1,SNR(i),'measured');
signal_receive2 = signal_receive1*exp(sqrt(-1)*phase);
offset2 = func_phase_est_dnn(signal_receive2);%基于深度学习的相位估计
RR = signal_receive2*exp(-sqrt(-1)*mean2(offset2));
%加相位补偿
output = DeModulator(RR,K);
msgr = ones(size(output));
idx = find(output<=0);
msgr(idx) = 0;
len = length(find(signal==msgr));
errrate(i,j)= 1-len/length(signal);
%没有相位补偿
output2 = DeModulator(signal_receive2,K);
msgr2 = ones(size(output2));
idx2 = find(output2<=0);
msgr2(idx2) = 0;
len2 = length(find(signal==msgr2));
errrate2(i,j)= 1-len2/length(signal);
end
end
figure;
semilogy(SNR,mean(errrate2,2),'b-o');
hold on
semilogy(SNR,mean(errrate,2),'r-s');
grid on
xlabel('SNR');
ylabel('误码率');
legend('QPSK无相位补偿误码率','QPSK相位补偿误码率');
0X_038m
---