📄 gpsmain.m
字号:
%主函数:输入为信噪比snr_in_dB,产生p1,p2
function [p1,p5]=GPSmain(snr_in_DB)
E=1;
G=[1 1 1 1 0 0 1;1 0 1 1 0 1 1];
% snr_in_DB=-4:0.5:10;
snr=10^(snr_in_DB/10);
sgma=sqrt((E/snr)/2);%噪声方差
N=1;%桢个数
N1=300;
input=round(rand(1,N1*24));%信息序列
input5=round(rand(1,N*276));%GPS L5信息序列
input2=round(rand(1,N1*30));%信息序列
%GPS L5信道编码
for n=0:(N-1)
%GPS L5 24bitCRC编码
encode5([1:300]+n*300)=CRCEncode(input5([1:276]+n*276));
% encode5 = CRCen(input5([1:276]+n*276));
end;
%卷积码编码
u5=viterbi_encoder(G,encode5);
%GPS L5
u5=2*u5-1;
u5=sign(u5+sgma*randn(size(u5))+eps);
u5=(u5+1)/2;
%信道译码
%卷积码译码
[in_de, bestmetric] = VitDec(G, u5, 1);
in_de = in_de';
%GPS L5 24bitCRC解码
for n=0:(N-1)
receive5([1:276]+n*276)=in_de([1:276]+n*276);
% [receive5([1:276]+n*276)]=Crcdecode(in_de([1:300]+n*300));
end;
a=length(find(input5~=receive5));
% u5=viterbi_encoder(G,input5);
%
% % GPS L5
% u5=2*u5-1;
% u5=sign(u5+sgma*randn(size(u5))+eps);
% u5=(u5+1)/2;
%
%
% %信道译码
% %卷积码译码
% [receive5, bestmetric] = VitDec(G, u5, 1);
% receive5 = receive5';
p5=(length(find(input5~=receive5)))/length(input5);%GPS L5经过信道编译码的误码率
%GPS L1信道编码
% input1[1:2]=[0 0];
% input1[3:26]=input[1:24];
% encode1=HammingEncode(input1[1:26]);
% input1[1+1*26:2+1*26]=encode1[31:32];
% input1[3+1*26:26+1*26]=input[1+1*24:24+1*24];
% encode2=HammingEncode(input1[1+1*26:26+1*26]);
%
% input1[1+2*26:2+2*26]=encode2[31:32];
% input1[3+2*26:26+2*26]=input[1+2*24:24+2*24];
% encode3=HammingEncode(input1[1+2*26:26+2*26]);
input1(1:2)=input(1:2);
input1(3:26)=input(1:24);
encode1(1:32)=HammingEncode(input1(1:26));
for n1=1:(N1-1)
input1([1:2]+n1*26)=encode1([31:32]+(n1-1)*32);
input1([3:26]+n1*26)=input([1:24]+n1*24);
encode1([1:32]+n1*32)=HammingEncode(input1([1:26]+n1*26));
end;
for n1=0:(N1-1)
%合成桢
u([1:32]+n1*32)=encode1([1:32]+n1*32);
end;
%GPS L1经信道加高斯燥声
u=2*u-1;
u=sign(u+sgma*randn(size(u))+eps);
u=(u+1)/2;
%信道译码
for n1=0:(N1-1)
%分离桢
de=u([1:32]+n1*32);
%Hamming(32,26)解码
decode=HammingDecode(de);
%桢合成
receive([1:24]+n1*24)=decode;
end;
p1=(length(find(input~=receive)))/length(input);%经过信道编译码的误码率
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -