1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/ZZ6TlZ5y
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
基于深度学习的QPSK调制解调系统频偏估计和补偿算法,是一种利用神经网络模型对无线通信中出现的载波频率偏移进行实时、精确估计并实施有效补偿的技术。QPSK(Quadrature Phase Shift Keying)是一种常用的数字调制方式,它通过改变正交载波的相位来传输二进制信息。在实际通信环境中,由于发射机和接收机之间的硬件差异、环境因素等影响,接收信号往往会发生频率偏移(Frequency Offset, FO),导致解调错误。
4.部分源码
................................................................................
K = 2; %调制阶数
SNR = [0:2:30]; %信噪比范围0~30
OFFSET = 6;%频偏范围0~10Hz
LEN = 1000;
Fs = 1e4;
t = [1:LEN/K]/Fs;
for i = 1:length(SNR)
i
for j = 1:10
[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)*2*pi*OFFSET*t );
offset2 = func_phase_est_dnn(signal_receive2);%基于深度学习的相位估计
RR = signal_receive2.*exp(-sqrt(-1)*2*pi*mean2(offset2)*t);
%加相位补偿
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_045m
---