📄 test_qpsk_picmud2.m
字号:
clc
clear
k=4; %用户
numbits=1000; %比特序列数
exno=8:2:22; %Eb/N0
BER=zeros(k,length(exno)); %PIC k个用户的误码率
Ber=zeros(k,length(exno));
ber=zeros(k,length(exno)); %NOPIC k个用户的误码率
BER1=zeros(1,length(exno)); %PIC的误码率
BER2=zeros(1,length(exno)); %NOPIC的误码率
bits_add=bitgene(k); %产生扩频码
S=zeros(1,numbits*31/2); %经过QPSK调制的信号
SS=zeros(k,numbits*31/2); %QPSK调制与扩频后的信号
S_out=zeros(k,numbits);
bits=zeros(k,numbits); %产生的随机信号
bits_double=zeros(k,numbits); %对产生的随机信号double
%%%%%%%%%%%%%%%%%%%%%%%%%%%%产生信号%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for i=1:k
bits(i,:)=Sbits(numbits);
bits_double(i,:)=double(bits(i,:));
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%QPSK调制&&扩频%%%%%%%%%%%%%%%%%%%%%%%%%%%
for x=1:k
S_qpsk(x,:)=QPSK_mod(bits_double(x,:));
SS(x,:)=cdma(S_qpsk(x,:),bits_add(x,:));
S(1,:)=SS(x,:)+S(1,:);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%加入噪声%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
SNR=exno-10*log10(31/2);
output=Gnoise(S(1,:),SNR);
%%%%%%%%%%%%%%%%%%%%%%%%%%%PICMUD与解扩%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for y=1:length(exno)
[bits_out2,bits_out,S_out,r]=picmud2(output(y,:),bits_add,k); %bis_ou2为二级PICMUD的信号,bis_out为一级PICMUD的信号 S_out为无PICMUD的信号,均为k行信号
for z=1:k
bits_qpskout2(z,:)=DEQPSK(bits_out2(z,:));
bits_qpskout(z,:)=DEQPSK(bits_out(z,:));
S_qpskout(z,:)=DEQPSK(S_out(z,:));
BER(z,y)=Error(bits_qpskout2(z,:),bits_double(z,:));
Ber(z,y)=Error(bits_qpskout(z,:),bits_double(z,:));
ber(z,y)=Error(S_qpskout(z,:),bits_double(z,:));
end
end
semilogy(exno,BER(1,:),'^k-'); %%%%%%%%%%%%PIC2
hold on
semilogy(exno,Ber(1,:),'*r-'); %%%%%%%%%%%%PIC
hold on
semilogy(exno,ber(1,:),'xb-'); %%%%%%%%%%%%%NOPIC
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -