MATLAB仿真:BSC信道下重复码纠错性能(P124302162 姜怀志 P124302165陈子豪P124302177赫鹏坤P124302174徐信杰)

发布时间:2026/6/27 3:27:14
MATLAB仿真:BSC信道下重复码纠错性能(P124302162 姜怀志 P124302165陈子豪P124302177赫鹏坤P124302174徐信杰) 一.仿真目的模拟二进制对称信道BSC实现重复3次和重复5次的编解码方案采用大数判决译码仿真不同信道交叉概率下的误码率绘制BER曲线并分析纠错能力与码率的关系。二.理论知识2.1.二进制对称信道BSCBSC是信息论中最简单、最基础的信道模型。其输入X∈{0,1}其输出Y∈{0,1}。无记忆性每个比特在信道中是否发生错误与其他比特无关是独立的。若其误码率为a。则有PY 0 |X 0 PY 1 |X 1 1 -p PY 0 |X 1PY 1 |X 0p2.2.重复码重复码是通过添加冗余来增强数据在噪声信道中传输的可靠性。设重复n次若发送0即编码000…000包含n个0若发送1即编码111…111包含n个1其核心思想是将每个原始的比特进行多次重复。这样做的目的在于即使信道中发生了错误解码器依然有更高的概率判断出正确的原始比特。2.3.大数判决译码收到多个冗余比特后看哪种符号出现得更多就判成哪种符号。设接受到n个0与m个1nm为奇数若nm,即译码为0若nm,即译码为1三.理论推导有关BSC重复码误码率推导四.仿真与代码4.1.代码展示clear;clc;p_vec0:0.01:0.5;%信道交叉概率范围num_bits1e6;% 每次仿真传输的信息比特数足够大以保证准确性L_set[3,5];% 重复次数% 预存误码率BER_simzeros(length(L_set),length(p_vec));BER_theozeros(length(L_set),length(p_vec));% 主代码foridx_L1:length(L_set)LL_set(idx_L);fprintf(仿真重复次数 L %d ...\n,L);foridx_p1:length(p_vec)pp_vec(idx_p);% 生成随机信息比特 (0/1)msgrandi([0,1],1,num_bits);% 编码每个比特重复L次codedrepelem(msg,L);% 长度变为 L*num_bits% 通过BSC信道以概率p发生错误error_patternrand(size(coded))p;receivedxor(coded,error_pattern);% 大数判决译码% 将接收序列按L分组每组计算1的个数received_reshapedreshape(received,L,num_bits);num_onessum(received_reshaped,1);% 每列1的个数decodednum_onesL/2;% 多数为1判1否则0% 计算误比特率BER_sim(idx_L,idx_p)sum(decoded~msg)/num_bits;% 理论公式tfloor(L/2);Pe0;fork(t1):L PePenchoosek(L,k)*p^k*(1-p)^(L-k);endBER_theo(idx_L,idx_p)Pe;endend% 绘图figure;semilogy(p_vec,BER_sim(1,:),b-o,MarkerSize,4,LineWidth,1.5);hold on;semilogy(p_vec,BER_sim(2,:),r-s,MarkerSize,4,LineWidth,1.5);semilogy(p_vec,BER_theo(1,:),b--,LineWidth,1.5);semilogy(p_vec,BER_theo(2,:),r--,LineWidth,1.5);hold off;xlabel(信道交叉概率 p);ylabel(译码后误比特率 (BER));title(BSC信道下重复码纠错性能);legend(L3 仿真,L5 仿真,L3 理论,L5 理论,Location,northwest);grid on;ylim([1e-5,1]);set(gca,FontSize,12);% 标记码率text(0.3,1e-1,sprintf(码率 R1/3 (L3)),Color,b,FontSize,11);text(0.3,5e-3,sprintf(码率 R1/5 (L5)),Color,r,FontSize,11);% 无编码的参考曲线hold on;semilogy(p_vec,p_vec,k-.,LineWidth,1);text(0.35,0.35,无编码 (R1),Color,k,FontSize,11);hold off;4.2.仿真图表4.3.仿真图表分析对于大数判决译码方法来解码BSC重复码其误比特率(BER仿真与实际差异较小。并且可知误比特率BER的大小总体上无编码3次重复码5次重复码在交叉概率p增大时所有的误比特率BER都在增大并在p0.5时达到最大。同时无编码3次重复码5次重复码在p0.5时所达到的误比特率BER数值上大致相等。而对于纠错能力当p较小时重复码显著降低误码率纠错能力强。而当 p 增大到一定程度误码率上升纠错能力下降反而会恶化误码率。同时可以看出5次重复码的纠错能力是强于3次重复码的。五.总结1.重复码是差错控制编码中最基础的纠错方案将每个信息比特重复 L次发送码率 R1/L接收端采用大数判决译码。2.译码错误概率的理论公式其中L为奇数3.由仿真结果可知在低误码率区重复码表现出显著编码增益但一但误码率增大到一定程度译码后误码率反而增大4.MATLAB 仿真曲线与理论公式大致重合量化数据完整印证了二项分布模型和大数判决译码的正确性。