资源简介
基于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
- 上一篇:基于matlab的图像增强设计
- 下一篇:fang算法的仿真
相关资源
- matlab卷积码程序
- 卷积码 编码 解码 基于Matlab 含PPT讲解
- (212)和(317)卷积码编解码的MTAL
- matlab卷积码仿真代码
- 卷积码编码译码MATLAB仿真程序
- 基于MATLAB的信道卷积码编码译码仿真
- 卷积码编译码matlab仿真
- MATLAB实现卷积码编译码
- matlab实现卷积码编码和解码
- 卷积码仿真程序matlab仿真,得到误码
- matlab 卷积码编码程序
- 卷积码 编码 译码 MATLAB程序
- 卷积码的matlab仿真
- 802.11a基于OFDM系统MATLAB仿真程序
- (217)卷积码及其删除码编码、维特
- VETERBI卷积码在MATLAB和FPGA中实现(包含
- MATLAB维特比算法卷积码译码
评论
共有 条评论