📄 ostbc.m
字号:
M=4;
SNR_db=0:3:30; %仿真信噪比范围
L=length(SNR_db);
BER=zeros(10,L);
SNR=10.^(SNR_db/10);
Fd=1; %消息序列的采样速率
Fs=1; %已调信号的采样速率
N=500;
Ns=200;
z1=zeros(Ns,1);
z2=zeros(Ns,1);
z3=zeros(Ns,1);
z4=zeros(Ns,1);
format long,BER1=zeros(10,L);
format long,BER2=zeros(10,L);
format long,BER3=zeros(10,L);
format long,BER4=zeros(10,L);
for m=1:40
for n=1:length(SNR)
nstd=sqrt(1/(4*SNR(n)));
bit_err1=0;
bit_err2=0;
bit_err3=0;
bit_err4=0;
% for p=1:N
noise=nstd*(randn(Ns,1)+i*randn(Ns,1));%产生噪声序列
H=sqrt(0.5)*(randn(Ns,1)+i*randn(Ns,1));%产生信道矩阵系数
A= randint(Ns,1,M);
s =dmodce(A,Fd,Fs,'psk',M);
for q=1:Ns/4
H1=Tran1(H(4*q-3:4*q));
H2=Tran2(H(4*q-3:4*q));
H3=Tran3(H(4*q-3:4*q));
H4=Tran4(H(4*q-3:4*q));
r1=H1*[s(4*q-3);s(4*q-2);s(4*q-1);s(4*q)]+noise(4*q-3:4*q);
r2=H2*[s(4*q-3);s(4*q-2);s(4*q-1);s(4*q)]+noise(4*q-3:4*q);
r3=H3*[s(4*q-3);s(4*q-2);s(4*q-1);s(4*q)]+noise(4*q-3:4*q);
r4=H4*[s(4*q-3);s(4*q-2);s(4*q-1);s(4*q)]+noise(4*q-3:4*q);
z1(4*(q-1)+1:4*q)=ddemodce(pinv(H1)*r1,1,1,'psk',M);
z2(4*(q-1)+1:4*q)=ddemodce(pinv(H2)*r2,1,1,'psk',M);
z3(4*(q-1)+1:4*q)=ddemodce(pinv(H3)*r3,1,1,'psk',M);
z4(4*(q-1)+1:4*q)=ddemodce(pinv(H4)*r4,1,1,'psk',M);
end;
errors1 = biterr(A,z1);
errors2 = biterr(A,z2);
errors3 = biterr(A,z3);
errors4 = biterr(A,z4);
bit_err1 = bit_err1 + errors1;
bit_err2 = bit_err2 + errors2;
bit_err3 = bit_err3 + errors3;
bit_err4 = bit_err4 + errors4;
%end;
BER1(m,n)= bit_err1/(N*Ns);
BER2(m,n)= bit_err2/(N*Ns); %误码率计算
BER3(m,n)= bit_err3/(N*Ns);
BER4(m,n)= bit_err4/(N*Ns);
end;
end
semilogy(SNR_db,mean(BER1,1),'k-.',SNR_db,mean(BER2,1),'b-o',SNR_db,mean(BER3,1),'r-+',SNR_db,mean(BER4,1),'g-*');
legend('Jafarkhani case','TBH case','Jafarkhani with TBH correlated position','TBH with Jafarkhani correlated position');
xlabel('SNR_db(dB)');
ylabel('BER');
grid on;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -