⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gpsmain.m

📁 AWGN信道下高斯噪声干扰下GPS编码译码系统性能仿真
💻 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 + -