• 大小: 228KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: Matlab
  • 标签: 卷积码  

资源简介

基于MATLAB通过对未编码,汉明码 ,循环码及卷积码的信噪比进行比较,比较它们之间的性能

资源截图

代码片段和文件信息

%% 未编码,汉明码,循环码,卷积码性能比较
clc;
clear all;
cycl=50;%发生数据帧数
SNR=0:1:10;%信噪比
BER0=zeros(1length(SNR));%误码率,生成长度为length(SNR)的零矩阵
BER1=zeros(1length(SNR));
BER2=zeros(1length(SNR));
BER3=zeros(1length(SNR));
BER4=zeros(1length(SNR));
BER5=zeros(1length(SNR));
%% 网络结构
trellis1=poly2trellis(3[7 5]);%从电路求出参数,或已知参数,poly2trellis是将卷积码多项式转换成MATLAB的trellis网格表达式的函数,3是卷积码约束长度,5x7矩阵
trellis2=poly2trellis(4[1317]);%4为(213)卷积码约束长度,1317为二进制生成矩阵 
%% 未编码的误码率
for n=1:cycl
    for k=1:length(SNR)
        msg=randint(19996);%输入信息
        modbit0=pskmod(msg2);%调制
        y0=awgn(modbit0SNR(k)‘measured‘);%在传输序列中加入AWGN噪声
        demmsg0=pskdemod(y02);%解调
        recode0=reshape(demmsg0‘1[]);%recode0矩阵中元素是从demmsg0‘中得到,1行
        [num0rat0]=biterr(recode0msg);%误码计算
        BER0(nk)=rat0;
    end
end
BER0=mean(BER0);%求平均值

%%  汉明编码的误码率
for  n=1:cycl
    for k=1:length(SNR)%编码 的序列,调制后 经过 高斯白噪声信道,再解调制,再纠错后 求误码 
        msg=randint(19996);%输入信息
        code1=encode(msg74‘hamming‘);%(74)汉明编码 
        modbit1=pskmod(code12);%调制
        y1=awgn(modbit1SNR(k)‘measured‘);%在传输序列中加入AWGN噪声
        demmsg1=pskdemod(y12);%解调
        recode=reshape(demmsg1‘1[]);%recode1矩阵中元素是从demmsg1‘中得到,1行
        bitdecoded=decode(recode74‘hamming‘);%译码
        %% 计算误码率
        error1=(bitdecoded~=msg);
        errorbits=sum(error1);
        BER1(nk)=errorbits/length(msg);
    end
end
BER1=mean(BER1);%求平均值

%%  (157)循环码的误码率
 for n=1:cycl
    for k=1:length(SNR)%编码 的序列,调制后 经过 高斯白噪声信道,再解调制,再纠错后 求误码 
        msg=randint(19996);%输入信息
         code2=encode(msg157‘cyclic‘[1 0 0 0 1 0 1 1 1]);%(157)循环编码
         modbit2=pskmod(code22);%调制
        y2=awgn(modbit2SNR(k)‘measured‘);%在传输序列中加入AWGN噪声
        demmsg2=pskdemod(y22);%解调
        recode2=reshape(demmsg2‘1[]);%recode矩阵中元素是从demmsg2‘中得到,1行
        decodedbit=decode(recode2157‘cyclic‘[1 0 0 0 1 0 1 1 1]);%译码
        %
        %计算误码率
         error2=(decodedbit~=msg);
        errorbits=sum(error2);
        BER2(nk)=errorbits/length(msg);
    end    
 end
   BER2=mean(BER2); %求平均值
   
%% (212)卷积编码的误码率
for n=1:cycl
    for k=1:length(SNR)
        msg=randint(19996);%输入信息
        code3=convenc(msgtrellis1);%编码
        modbit3=pskmod(code32);%调制
        y3=awgn(modbit3SNR(k)‘measured‘);%在传输序列中加入AWGN噪声
        demmsg3=pskdemod(y32);%解调
        recode3=reshape(demmsg3‘1[]);%recode3矩阵中元素是从demmsg3‘中得到,1行
        tblen=30;%回潮长度
        decoded3=vitdec(recode3trellis1tblen‘cont‘‘hard‘);%维特比译码
        [num3rat3]=biterr(double(decoded3(tblen+1:end))msg(1:end-tblen));%误码计算
        BER3(nk)=rat3;
    end
end
BER3=mean(BER3);%求平均值

%%  (155)BCH码的误码率
 for n=1:cycl
    for k=1:length(SNR)%编码 的序列,调制后 经过 高斯白噪声信道,再解调制,再纠错后 求误码 
        msg=randint(110000);%输入信息
         code4=encode(msg155‘bch‘);%(155)BCH编码
         modbit4=pskmod(code42);%调制
        y4=awgn(modbit4SNR(k)‘measured‘);%在传输序列中加入AWGN噪声
        demmsg4=p

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       4784  2016-06-29 13:30  纠错码课设\gl.m

     文件     256783  2016-06-29 13:34  纠错码课设\未编码,汉明码  ,循环码及卷积码性能比较.docx

     目录          0  2016-06-29 13:36  纠错码课设

----------- ---------  ---------- -----  ----

               261567                    3


评论

共有 条评论