?? test_qpsk_picmud.m
字號:
clc
clear
k=16; %用戶數為k
numbits=10000; %比特序列數
exno=2:1:20; %Eb/N0
BER=zeros(k,length(exno)); %PIC k個用戶的誤碼率
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_out,S_out,r]=picmud(output(y,:),bits_add,k); %bis_out為PIC的信號 S_out為NOPIC的信號,均為k行信號
for z=1:k
bits_qpskout(z,:)=DEQPSK(bits_out(z,:));
S_qpskout(z,:)=DEQPSK(S_out(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-');
hold on
semilogy(exno,ber(1,:),'+r-');
xlabel('Eb/No');
ylabel('BER');
title('單用戶匹配濾波與并行干擾刪除多用戶檢測誤碼率比較');
legend('一級PICMUD','匹配濾波');
grid on
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -