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

📄 main.asv

📁 瑞利衰落信道下高斯干扰下的GALILEO编码译码系统性能分析以及误码率的仿真
💻 ASV
字号:
%主函数:输入为信噪比snr_in_dB,产生p1,p2
function [p1,p2]=main(snr_in_dB)

E=1;
G=[1 1 1 1 0 0 1;1 0 1 1 0 1 1];

snr=10^(snr_in_dB/10);
sgma=sqrt((E/snr)/2);%噪声方差
N=440;%桢个数
input=round(rand(1,N*102));%信息序列

u1=2*input-1;
x1=randn(size(u1));
y1=randn(size(u1));
r1= sqrt(0.5*(x1.^2 + y1.^2));
u1=sign(u1.*r1+sgma*randn(size(u1))+eps);
u1=(u1+1)/2;
p1=(length(find(input~=u1)))/length(input);%没有经过瑞利信道编译码的误码率

% %信道编码
% for n=0:(N-1)
%     %CRC编码
%     encode=CrcEncode(input([1:102]+n*102));
%     code(1:114)=encode(1:114);
% %     code(115:120)=[0,0,0,0,0,0];
%     %out_en=T_SCH_EX_EN(input([1:25]+n*25));
%     %内编码
%     in_en=viterbi_encoder1(G,code);%卷积码编码
%     %in_en=SCH_IN_EN(out_en);
%     %交织编码
%     inter_en=interleaver(in_en)
%     %合成桢
%     u([1:240]+n*240)=inter_en;
% end;
% 
% %经瑞利信道加高斯燥声
% u=2*u-1;
% x=randn(size(u));
% y=randn(size(u));
% r = sqrt(0.5*(x.^2 + y.^2));
% u=sign(u.*r+sgma*randn(size(u))+eps);
% u=(u+1)/2;
% 
% %信道译码
% for n=0:(N-1)
%     %分离桢
%     de=u([1:240]+n*240);
%     %解交织 
%     inter_out=uninterleaver(de);
%     %内编码解码
%     [in_de, bestmetric] = VitDec(G, inter_out, 1);%卷积码译码
%     %in_de=SCH_IN_DE(de);
%     %去掉CRC编码的12bit
%     decode(1:102)=in_de(1:102);
%     %[cc,output]=cyc_sch_decoder(in_de);
%     %桢合成
%     receive([1:102]+n*102)=decode;
% end;

%信道编码
for n=0:(N-1)
    %CRC编码
    encode=CrcEncode(input([1:102]+n*102));
    code(1:114)=encode(1:114);
%     code(115:120)=[0,0,0,0,0,0];
    %out_en=T_SCH_EX_EN(input([1:25]+n*25));
    %内编码
    in_en=viterbi_encoder1(G,code);%卷积码编码
    %in_en=SCH_IN_EN(out_en);
    %交织编码
    inter_en=interleaver(in_en)
    %合成桢
    u([1:240]+n*240)=inter_en;

    %经瑞利信道加高斯燥声
    u([1:240]+n*240)=2*u([1:240]+n*240)-1;
    x=randn(size(u));
    y=randn(size(u));
    r = sqrt(0.5*(x.^2 + y.^2));
    u=sign(u.*r+sgma*randn(size(u))+eps);
    u=(u+1)/2;

%信道译码
for n=0:(N-1)
    %分离桢
    de=u([1:240]+n*240);
    %解交织 
    inter_out=uninterleaver(de);
    %内编码解码
    [in_de, bestmetric] = VitDec(G, inter_out, 1);%卷积码译码
    %in_de=SCH_IN_DE(de);
    %去掉CRC编码的12bit
    decode(1:102)=in_de(1:102);
    %[cc,output]=cyc_sch_decoder(in_de);
    %桢合成
    receive([1:102]+n*102)=decode;
end;

p2=(length(find(input~=receive)))/length(input);%经过信道编译码的误码率

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -