1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/ZJWZm5du
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
BPSK:Binary Phase Shift Keying 二相相移键控,一个符号代表1bit
QPSK:Quadrature Phase Shift Keying 四相相移键控,一个符号代表2bit
8PSK:8 Phase Shift Keying 八相相移键控,一个符号代表3bit
16QAM:16 Quadrature Amplitude Modulation 16正交幅相调制,一个符号代表4bit
64QAM:64 Quadrature Amplitude Modulation 64正交幅相调制,一个符号代表6bitPSK是相移键控(Phase Shift Keying),是通过相位的变化代表“0”和“1”的。BPSK中的B是“Binary”的意思,也就是有两个变化状态,比如说相位上的“+90°(代表1)、-90°(代表0)”,一个状态代表的就是一个比特。QPSK的“Q”是“Quadrature”的意思,有四个变化状态,如相位上的“+45°(代表00)、-45°(代表11)、+135°(代表10)、-135°(代表01)”,那么一个状态就代表两个比特的信息,如图2所示。同理8PSK的一个状态代表三个比特。
4.部分源码
.......................................................................
load dat.mat
%传输
SNRdB = 0:5:30;
SER_matrix = zeros(5,length(SNRdB));
Ttotal_matrix = zeros(5,length(SNRdB));
for i = 1:5
for j = 1:length(SNRdB)
[i,j]
[temp1,temp2] = TransmissionEffectFun(dats,SNRdB(j),i);
SER_matrix(i,j) = temp1;
Ttotal_matrix(i,j) = temp2;
end
end
figure
subplot(231)
semilogy(SNRdB,SER_matrix(1,:),'-bs',...
'LineWidth',1,...
'MarkerSize',8,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[0.9,0.9,0.0]);
legend('BPSK');
xlabel('SNR');
ylabel('误码率');
grid on
subplot(232)
semilogy(SNRdB,SER_matrix(2,:),'-mo',...
'LineWidth',1,...
'MarkerSize',6,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[0.5,0.9,0.0]);
legend('QPSK');
xlabel('SNR');
ylabel('误码率');
grid on
subplot(233)
semilogy(SNRdB,SER_matrix(3,:),'-b^',...
'LineWidth',1,...
'MarkerSize',6,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[0.2,0.9,0.5]);
legend('16QAM');
xlabel('SNR');
ylabel('误码率');
grid on
subplot(234)
semilogy(SNRdB,SER_matrix(4,:),'-r>',...
'LineWidth',1,...
'MarkerSize',6,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[0.9,0.9,0.0]);
legend('64QAM');
xlabel('SNR');
ylabel('误码率');
grid on
subplot(235)
semilogy(SNRdB,SER_matrix(5,:),'-r<',...
'LineWidth',1,...
'MarkerSize',6,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[0.9,0.3,0.3]);
grid on
legend('自适应调制');
xlabel('SNR');
ylabel('误码率');
figure
semilogy(SNRdB,SER_matrix(1,:),'-bs',...
'LineWidth',1,...
'MarkerSize',8,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[0.9,0.9,0.0]);
hold on
semilogy(SNRdB,SER_matrix(2,:),'-mo',...
'LineWidth',1,...
'MarkerSize',6,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[0.5,0.9,0.0]);
hold on
semilogy(SNRdB,SER_matrix(3,:),'-b^',...
'LineWidth',1,...
'MarkerSize',6,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[0.2,0.9,0.5]);
hold on
semilogy(SNRdB,SER_matrix(4,:),'-r>',...
'LineWidth',1,...
'MarkerSize',6,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[0.9,0.9,0.0]);
hold on
semilogy(SNRdB,SER_matrix(5,:),'-r<',...
'LineWidth',1,...
'MarkerSize',6,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[0.9,0.3,0.3]);
grid on
legend('BPSK','QPSK','16QAM','64QAM','自适应调制');
xlabel('SNR');
ylabel('误码率');
figure
plot(SNRdB,Ttotal_matrix(1,:),'-bs',...
'LineWidth',1,...
'MarkerSize',6,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[0.9,0.0,0.0]);
hold on
plot(SNRdB,Ttotal_matrix(2,:),'-mo',...
'LineWidth',1,...
'MarkerSize',6,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[0.5,0.9,0.0]);
hold on
plot(SNRdB,Ttotal_matrix(3,:),'-b^',...
'LineWidth',1,...
'MarkerSize',6,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[0.2,0.9,0.5]);
hold on
plot(SNRdB,Ttotal_matrix(4,:),'-r>',...
'LineWidth',1,...
'MarkerSize',6,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[0.9,0.9,0.0]);
hold on
plot(SNRdB,Ttotal_matrix(5,:),'-r<',...
'LineWidth',1,...
'MarkerSize',6,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[0.9,0.3,0.3]);
grid on
legend('BPSK','QPSK','16QAM','64QAM','自适应调制');
xlabel('SNR');
ylabel('传输时间');
A416