m基于matlab的里德-穆勒码Reed Muller(RM)编码译码误码率仿真分析

目录

1.算法描述

2.仿真效果预览

3.MATLAB核心程序

4.完整MATLAB


1.算法描述

       1948年,Bell实验室的C.E.Shannon(香农)发表了《通信的数学理论》,Shannon在该文中指出,任何一个通信信道都有确定的信道容量C,如果通信系统所要求的传输速率R小于C,则存在一种编码方法,当码长n充分大并应用最大似然译码(MLD:MaximumLikelihoodDecdoding)时,信息的错误概率可以达到任意小。
       Shannon指出了可以通过差错控制码在信息传输速率不大于信道容量的前提下实现可靠通信,但却没有给出具体实现差错控制编码的算法。
       1954,Muller提出一种差错控制编码的算法,此后Reed在Muller提出的分组码的基础上得到了一种新的分组码,称为 Reed-Muller码(雷德-穆勒),简记为 RM码。在1969年到1977年之间, RM码在火星探测方面得到了极为广泛的应用。其快速的译码算法非常适合于光纤通信系统。

        在Golay码提出之后最主要的一类分组码就是Reed-Muller码。它是Muller在1954年提出的,此后Reed在Muller提出的分组码的基础上得到了一种新的分组码,称为Reed-Muller码,简记为RM码。在1969年到1977年之间,RM码在火星探测方面得到了极为广泛的应用。即使在今天,RM码也具有很大的研究价值,其快速的译码算法非常适合于光纤通信系统。

       Reed-Muller(RM)码是一类经典的纠错编码,其编码和译码算法都拥有较低的复杂度,容易通过硬件电路实现。此外,RM码可以通过改变参数形成结构丰富的子类,能够适应不同信道。RM码自上世纪五十年代被Muller和Reed提出至今,已被应用在多种通信系统中,包括深空通信、蜂窝网络等.Reed-Muller(RM)码是一类经典的纠错编码,其编码和译码算法都拥有较低的复杂度,容易通过硬件电路实现。此外,RM码可以通过改变参数形成结构丰富的子类,能够适应不同信道。

 

   RM码由( r , m ) (r,m)(r,m)两个参数定义,记作RM(r,m)。其中满足0 ≤ r ≤ m 0\le r\le m0≤r≤m,含义为:

2.仿真效果预览

matlab2013b仿真如下:

 

 

3.MATLAB核心程序

%调制参数,2为bpsk,4为QPSK,8为8PSK
M = 2;
[mods,demods] = func_modulation(M);
 
%RM编码参数 
r         = 2;
m         = 4;
SNR       = 0:9;
Errs      = zeros(1,length(SNR));
 
[V,N,K,I] = func_rm(r,m);
for k = 1:length(SNR)
    k
    Err = 0;
    Num = 0;
    Len = 10000;
    TL  = 500;  
    Rt  = 11/16;%code rate
    N0  = 10^(-SNR(k)/Rt/10);
    while(Err <= TL)
         k
         Err
         Num = Num + 1;
         %产生数据
         Signal    = randint(1,K,M,Len);
         %RM编码
         Signal_RM = func_Encode(Signal,V);
         %调制
         RM_mod    = modulate(mods,Signal_RM);
         %过信道
         RM_Noise  = RM_mod + sqrt(N0)*randn(size(RM_mod)); 
         %解调
         RM_demod  = demodulate(demods,RM_Noise);
         %RM译码
         Bhat = func_Decode(RM_demod,r,m,V,N,K,I); 
         %计算误码率
         Err  = Err + sum(xor(Bhat,Signal));
    end
    Errs(k) = Err/Num/length(Signal);
end    
01_096_m

4.完整MATLAB

V

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我爱C编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值