当前位置:网站首页>RS+BCH级联编译码误码率性能matlab仿真
RS+BCH级联编译码误码率性能matlab仿真
2022-07-22 03:19:00 【我爱C编程】
目录
1.算法描述
在实际情况中,在光通信信道中出现的错误有单独随机出现的误码,也有突发出现的无码,为了更好的提升光通信的性能,需要使用级联码。
级联码在进行编码的时候,将k1k2个二进制bit数据分为k2个部分,每个部分由k1个bit信息,然后按照非二进制分组码编成(n2,k2)的外码C2,最小距离为d2,码率为R2= k2/n2。然后将每一个部分中的k1个信息按照二进制分组码编码成(n1,k1)的内码C1,最小距离为d1,码率为R1=k1/n1。因此,级联码的码率为R = R1R2。
级联码根据结构的不同,可以分为内外型级联码,并行型级联码以及交织连续型级联码三种类型,根据文献[50]的研究成果,我们选择一种结构较为简单的内外型级联码作为本文的一个研究对象。
在本课题中,本文选择内外型级联码的内码分别为BCH(15,7)和BCH(255,207),外码使用RS(31,15)两种类型进行仿真性能分析。级联码的基本结构框图如下图所示:
2.部分程序
%参数初始化
k = 15;
n = 31;
N = 15;
K = 7;
Len = log2(n+1);
Simu_Len = k; %仿真的时间长度
Simu_time = 1;
SNR = [0:1:5];
TJL = [200,150,100,50];
Rs_Encoder = fec.rsenc(n,k);
Rs_Decoder = fec.rsdec(Rs_Encoder);
%主体代码
for i = 1:length(SNR)
i
Bit_err(i) = 0; %设置误码率参数
Num_err = 0; %蒙特卡洛模拟次数
Numbers = 0; %误码率累加器
while Num_err <= TJL
fprintf('Eb/N0 = %f\n', SNR(i));
Num_err
%产生信号
msg2 = (double(rand(1,Simu_Len)>0.5))';
%编码
Msg_Enc = encode(Rs_Encoder,msg2);
%转换为二进制
Msg_Enc2 = func_dec2bin(Msg_Enc,Len);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
message = [Msg_Enc2,(rand(1,55)>=0.5)];
Rec = [];
for jj = 1:length(message)/K
tmps = message((jj-1)*K+1:jj*K);
msg = gf(tmps);
BCHcode_gf = bchenc(msg,N,K);
%BCH编码
BCHcode_double=-1*ones(1,N);
for code_j=1:N
if BCHcode_gf(1,code_j)==1
BCHcode_double(1,code_j)=1;
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%通过信道
BCH_receive = awgn(BCHcode_double,SNR(i),'measured');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
hard_coded = zeros(1,N);
for hard_j=1:N
if BCH_receive(hard_j)>0
hard_coded(hard_j)=1;
end
end
%BCH解码
BCHdecode = gf(zeros(1,K));
hard_BCH = hard_coded;
[BCHdecode_i,error_num]=bchdec(gf(hard_BCH),N, K);
BCHdecode = BCHdecode_i;
BCHdecode_double = zeros(1,K);
for gf_to_double_j=1:K
if BCHdecode(gf_to_double_j)==1
BCHdecode_double(gf_to_double_j)=1;
end
end
Msg_Enc4 = BCHdecode_double;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Rec = [Rec,Msg_Enc4];
end
Rec(end-55+1:end) = [];
%二进制转换为十进制
Msg_Enc5 = Rec;
Msg_Enc6 = func_bin2dec(Msg_Enc5,Len);
%译码
[Msg_Dec,cnumerr,ccode] = decode(Rs_Decoder,Msg_Enc6');
%计算误码率
Err = biterr(Msg_Dec,msg2);
Num_err = Num_err+Err;
Num_err
Numbers = Numbers+1;
end
Bit_err(i) = Num_err/(Simu_Len*Numbers);
end
%曲线仿真
figure;
semilogy(SNR,Bit_err,'b-o');
xlabel('SNR');
ylabel('BER');
grid on;
save data.mat SNR Bit_err
3.部分仿真图预览
从上面的仿真分析可知,RS(31,15)+BCH(15,7)这种内外型级联码具有良好的纠错性能,当SNR = 5的时候,其误码率性能达到了10^-5。
4.源码获取方式
点击下载链接:
RS+BCH级联编译码误码率性能matlab仿真+简要说明文档+程序操作视频
获取方式2:
博客资源项,搜索和博文同名资源。
获取方式3:
如果下载链接失效,加博主微信联系。
A_046
边栏推荐
- yarn 的使用
- 拉动日活,使用云函数群发微信小程序订阅消息
- LastWordLen
- 商品信息SKU数据库设计
- 别找了,全都帮你整理好了——SQL语句大全
- QT notes - a brief introduction to qtimer and qtimerevent
- Can you still find records in browser traceless browsing, and how to turn on traceless mode
- 【精讲】Es6 导入 import, 导出 export等多种操作
- 包裹DNA和光敏剂Ce6的白蛋白纳米粒/棉酚白蛋白纳米粒/拉帕替尼白蛋白纳米粒
- JD-H5开发
猜你喜欢
单片机是如何工作的?
Two bytes, carried out by the interviewer and shared with everyone
Helm理解和使用
广告无处不在,如何利用广告去推广自己的产品?
Advertising is everywhere. How can we use advertising to promote our products?
统计,在sql中求每个部门的数据比值
北上广深杭30K试题:如何分配JVM内存模型?
What preliminary work does the enterprise need to do to establish its own applet and app?
[learn rust together] rust preparation before learning -- Annotation and formatted output
浏览器无痕浏览还能查到记录吗,如何开启无痕模式
随机推荐
Wechat applet realizes PDF preview function - pdf.js (including source code analysis)
为什么我们开发的系统会有并发Bug,并发Bug根源到底是什么?
HA自动故障转换(active)namenode的大问题
ES6 - module
Bovine serum albumin platinum composite nanomaterials /hsa PC NPs human serum albumin (HSA) coated phthalocyanine nanoparticles
Ssti Summary and ciscn 2019 South East China] double secret
面试刁钻问题应对思路
Nifi 1.16.3 updates and bugs used in production.
CutNoodles
What are the common probe set and gallery set
MySQL advanced addition, deletion, modification and query operations, including detailed explanation and operation of various queries and table design explanation
Deep learning 8 deep model optimization and regularization
2022社交电商模式怎么裂变营销?—分享购
Niuke 2022 summer training session I chiitoitsu solution
微服务真的不挑数据库吗?如何选择?
EACCES: permission denied, unlink ‘/usr/local/bin/code‘
C language question bank part.1
程序环境和预处理
10 automated test frameworks for test engineers
MySQL installation failed. I don't know why