📄 df1.m
字号:
%function BER1=DF1(max_snr)
%产生随机序列
max_snr=25;
N=1024;
%为统计误码率做准备
BER1=zeros(1,max_snr);
for SNR=0:max_snr
X1=rand(1,N)>0.5;
%卷积编码
C1=cnv(X1);
%星座图映射,QPSK
if rem(length(C1),2)>0
C1=[C1,0];
end
B1=QpskMapping(C1);
B1d=[];
B21=[];
M=length(B1);
%噪声能量(已归一化)
sig02 = sqrt(1/(10^(SNR/10)));
sig1=sqrt(1/(10^((SNR-5)/10)));
%==========================================
for i=1:M
%生成加性高斯白噪声
N0=sig02*(randn+j*randn);
N2=sig02*(randn+j*randn);
N1=sig1*(randn+j*randn);
%生成具有瑞利分布特性的信道衰落系数
H0=my_RayleighCH();
H2=my_RayleighCH();
G=sqrt(0.5/(0.5+sig1*sig1));
%基站接收user1信号
R1=H0*B1(i)+N0;
%user2接收user1信号
R21=B1(i)+N1;
dh = [1+j -1+j -1-j 1-j]/sqrt(2);
D1=abs(R21*[1 1 1 1]-dh).^2;
[minScale1 positionmin1]=min(D1);
B21=[B21 dh(positionmin1)];
C21=QpskInverseMapping(B21);
%vitebi译码
C21=C21(1:length(C21)-1);
[X21,survivor_state,cumulated_metric]=viterbi(C21);
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -