精华内容
下载资源
问答
  • 卷积码维特比译码

    2018-06-01 09:35:57
    利用维特比算法实现卷积码译码,以(2.1.2)卷积码为例进行说明
  • 一种卷积码维特比译码算法的软件实现
  • 这是一篇中文期刊数据库中的文章,在网上找到了它的名字,在学校的期刊中找到了它,和大家共享一下
  • 基于matlab的卷积码编码程序 可直接运行 并有维特比译码程序 可以实现信道卷积码编译码过程
  • 卷积码编码 维特比译码 分组交织 去交织 编码输出至txt
  • 这是一个针对卷积码维特比译码器.开发环境为MATLAB.
  • 基于matlab多种卷积码维特比译码下的误码率分析,支持多种类型卷积码,支持多种类型文件源的通信系统仿真
  • 卷积码译码之维特比译码算法(Viterbi decoding algorithm) 本文主要介绍了卷积码的一种译码方法——维特比译码(Viterbi decoding)。 关键词:卷积码译码 维特比译码算法 卷积码简介:点击打开链接 ==========...
    卷积码译码之维特比译码算法
    (Viterbi decoding algorithm)
           本文主要介绍了卷积码的一种译码方法——维特比译码(Viterbi decoding)。
           关键词:卷积码译码 维特比译码算法 

           卷积码简介:点击打开链接

           ============================================================== 

           目录结构:

           1、维特比译码简介

           2、维特比译码过程

            ==============================================================


    1、维特比译码简介

           Viterbi算法是由美国科学家Viterbi在1967年提出的卷积码的概率译码算法,后来学者深入研究中证明Viterbi算法是基于卷积码网格图的最大似然译码算法。何为最大似然译码?在这里我们可以进行以下简单的理解:即根据已经接收到的信息,得到最接近编码码字的一种译码码字。得到这种码字使用的译码准则为最大似然译码。(如果觉得繁琐,第1部分可先略过)
           定义以下信号如图1所示:
           (1)发送端
           信源:u
           编码器输出编码码字:v
           (2)接收端
           译码器输入信息:r
           译码器输出:u_dec
     
    图1、经典通信系统
           译码器输出序列u_dec是u的一个估计值。译码器根据一定的译码规则,由接收序列r产生u_dec序列。由于信息序列u与码字v有对应关系,所以等效于译码器产生一个码字v的估值v’。当v‘=v是,u_dec=u。所以,当v‘不等于v时,译码出现错误。
           译码器的条件错误概率定义为:
           译码器的错误概率定义如下:
           其中接收序列r是译码前产生的,所以p(r)与译码规则无关。为了是译码错误概率最小的最佳的译码准则必须满足对所有的r使p(E|r)最小。所以有
           根据以上公式可知,对于给定的接收序列r,如果选择适合的v’,使p(v’=v|r)最大,则一定是最佳的。
    根据贝叶斯公式:
           如果发送码字的概率p(v)相同,p(r)又与译码规则无关,则
           所以,译码器如果可以选择一个估计值使得上式最大,则这种译码器称为最大似然译码。p(r|v)称为似然函数。对数似然函数则如下:
           如果码字不是等可能的,最大似然译码不一定是最佳的。在这种情况下,在决定哪个码字能使p(v|r)最大时,必须以概率p(v)对条件概率log p(ri|vi)加权。但在许多系统的接收端不知道发送码字的概率,所以最佳译码是不可能的,最大似然译码就成了可行的译码规则。
           转移概率p<1/2的二进制对此信道(BSC),接收序列r是二元的。对于卷积码,对数似然函数如下:
           其中d(r,v)是r和v之间的汉明距离。由于对所有的v,log p/(1-p) < 0且N log(1-p)是常熟,因此,对于BSC而言,最大似然译码是选择使r和v之间距离最小的v‘作为码字v。

    2、维特比译码过程

           由于最大似然译码等效于最小距离译码,因此具有最小d(r,v)累积值的路径就是log p(r|v)的最大路径,该路径被称为幸存路径。定义BM=d(ri,vi),称为分支度量值。PM称为最小累积度量值,是对所有分支度量值的累积。
           卷积码的编码过程与网格图中的一条路径对应,即输入序列的编码过程与网格图中的路径一一对应。当序列长度为x时,网格中有2^x条不同的路径和编码器的2^x种输入序列对应。在网格图中,每个状态转移的过程中都会输出编码码字。由于译码过程也建立在网格图中,并且从全零状态开始,从全零状态结束。所以,在每个符合输入的分支中,都可以计算出分支度量值。
           维特比译码算法步骤如下:
           (1)在j=L-1个时刻前,计算每一个状态单个路径分支度量。
           (2)第x-1个时刻开始,对进入每一个状态的部分路径进行计算,这样的路径有2^k条,挑选具有最大部分路径值的部分路径为幸存路径,删去进入该状态的其他路径,然后,幸存路径向前延长一个分支。
           (3)重复步骤(2)的计算、比较和判决过程。若输入接收序列长为(x+L-1)k,其中,后L-1段是人为加入的全0段,则译码进行至(x+ L-1)时刻为止。
           若进入某个状态的部分路径中,有两条部分路径值相等,则可以任选其一作为幸存路径。
           该译码算法的核心思想在于“加、比、选”,务必牢记,
           指的是将每个路径的分支度量进行累积。度量的方法有汉明距或者欧式距离等方法。
           指的是将到达节点的两条路径进行对比。

           指的是选出到达节点的两条路径中度量值小的一条路径作为幸存路径。

           

           以(2,1,2)卷积码例子说明维特比译码过程:
           输入数据:u = [1 1 0 1 1]
           编码码字:V = [11 01 01 00 01]
           接收码字:R = [11 01 01 10 01]

           (2,1,2)卷积码在以上算法中的参数,x=5,L=3,k=1,j从0开始计时。


           该卷积码的编码结构如下图所示:
     
    图2.(2,1,2)卷积码编码结构图

     
    图3. 各个分支的编码输出如图所示

     
    图4. 解码步骤1

           解码步骤(1),j=0,1,2这3个时刻中计算出每个路径的分支度量值和,即汉明距离,在图中以蓝色的数字表示。比如接收序列R中的第一个符合“11”,与第一回合的两条路径中的“00”,“11”的汉明距分别为2和0,改数字被标注在每条线对应的下方或附近。
           在每个状态节点具有两条路径时,译码算法才开始根据分支度量的大小选择幸存路径,再删除其他路径。该步骤如下图所示。
     
    图5. 第一个节点的幸存路径选择

           图5. 第一个节点的幸存路径选择,由于进入状态S0的两条路径的度量值3<4,所以选择度量值为3的图中红色线为幸存路径。
     
    图6. 第二个节点的幸存路径选择

     
    图7. 第三个节点的幸存路径选择

     
    图8. 第四个节点的幸存路径选择

           至此,第一次幸存路径选择完成,现在删除其他路径,将接下来的路径的分支度量值都标注在图中,如下图示。
     
    图9. 剩余译码路径的分支度量值计算标注

           以上图中在每个节点进行比较分支度量值比较,胜出的分支度量值被标注在状态节点的上方。
           以上图中在最后一个符号的译码得出一条分支度量值最小的路径,如下图所示,该条路径即译码的最佳路径。
     
    图10. 最佳路径输出
           根据该路径得出的译码输出为【11 01 01 00 01】与例子中编码码字V相同。该码字对应的输入数据可以根据以上最佳路径实线或者虚线读出,即【1 1 0 1 1】。

           网格图中的每一条路径的编码输出matlab代码如下所示:

    clc;close all;clear
    fid = fopen('test.txt','wt');
    d1  = 0;
    d2  = 0;
    N   = 5;
    for i = 0:31
        data = dec2bin(i,N);
        for j = 1:N
            %output calculation
            x   = str2num(data(j)); 
            y1  = mod(x + d1 + d2,2);
            y2  = mod(x + d2,2);
            y   = [y1,y2];
            %shift
            d2 = d1;
            d1 = x;
            fprintf(fid,'%d%d ',y1,y2);
        end
        fprintf(fid,' %s\n',dec2bin(i,5));
        d1 = 0;
        d2 = 0;
    end
    fclose('all')



    展开全文
  • 卷积码及其维特比译码算法的软件实现,原理和仿真
  • 卷积码维特比译码

    千次阅读 2020-04-04 11:39:27
    卷积码 基本概念 卷积码常记为(n, k, N): nnn为模2和相加器的个数 NNN为输入移位寄存器的段数(称为约束长度) kkk表示每段有kkk级 编码效率为Rc=knR_c = \frac{k}{n}Rc​=nk​ 距离特性 纠错能力的度量:最大的...

    卷积码

    基本概念

    卷积码常记为(n, k, N)

    • nn为模2和相加器的个数
    • NN为输入移位寄存器的段数(称为约束长度)
    • kk表示每段有kk

    编码效率为Rc=knR_c = \frac{k}{n}

    距离特性

    1. 纠错能力的度量:最大的最小距离
    2. 最小距dmind_{\min}:卷积码中长度为nNnNNN为约束长度)的编码后序列之间的最小汉明距离。
    3. 自由距dfreed_{free}:任意长编码后序列之间的最小汉明距离

    表示方法

    其实,前面的基本概念看书基本都能理解,但是表示方法确实挺让人费解的,下面捎带解读地介绍卷积码的表示方法。
    只介绍常用的树状图和网格图,解析法一般不用。

    树状图(以(2, 1, 3)卷积码为例)

    见下图。

    卷积码编码过程示意

    卷积码编码过程示意
    输入序列为M=m1m2mjM = m_1m_2\ldots m_j,从左往右依次输入。

    1. 在时刻jj输入mjm_j,此时寄存器的状态为mj1mj2m_{j-1}m_{j-2}
    2. 编码过程
      x1,j=mjmj1mj2x_{1,j} = m_j\oplus m_{j-1}\oplus m_{j-2}
      x2,j=mjmj2x_{2,j} = m_j\oplus m_{j-2}

    那么当输入序列为M=01010101M = 01010101时,可以得到下面的状态列表。

    输入mjm_j 当前状态mj1mj2m_{j-1}m_{j-2} 输出x1,jx2,jx_{1,j}x_{2,j} 下一状态mjmj1m_jm_{j-1}
    0 00 00 00
    1 00 11 10
    0 10 10 01
    1 01 00 10
    0 10 10 01
    1 01 00 10
    0 10 10 01
    1 01 00 10

    简要解释一下。寄存器初始状态为0,按照上述的编码过程,输入m0=0m_0 = 0时, x1,0=m000=0x_{1,0} = m_0\oplus 0\oplus 0 = 0x2,0=m00=0x_{2,0} = m_0\oplus 0 = 0,下一状态为mjmj1=00m_jm_{j-1} = 00
    输入m1=1m_1 = 1时, x1,1=m100=1x_{1,1} = m_1\oplus 0\oplus 0 = 1x2,1=m10=1x_{2,1} = m_1\oplus 0 = 1,下一状态为mjmj1=10m_jm_{j-1} = 10表格中已标红)。
    依此类推,得到整个表格。
    为了方便表示,记状态a:00a: 00;状态b:10b: 10;状态c:01c: 01;状态d:11d: 11
    因此可以得到下面的树状图,其中节点表示状态,树杈上所标注的数字表示输出比特。

    卷积码树状图
    (2,1,3)卷积码树状图表示

    简要解释一下。
    从最左边开始,初始状态为a,00a, 00,上面树杈上的蓝色的0表示输入比特,黑色的00表示输出比特x1,0x2,0x_{1,0}x_{2,0},查表格可知,当输入为0,当前状态为00,输出为00时,下一状态仍为00,也就是状态aa
    再来看第一个aa下面的树杈,同样,蓝色的1表示输入比特,黑色的11表示输出比特x1,1x2,1x_{1,1}x_{2,1},查表格可知,当输入为1,当前状态为00,输出为11时,下一状态是10,也就是状态bb
    后面的树杈也就同理可得了。

    :上图不该写成“共2j=162^j = 16条树杈”,而是每个节点会引出2j2^j条支路。

    网格图

    其实原理还是一样的,只不过是换了一种表示方法,看起来更简洁而已。将二叉树的上支路(对应输入比特0)用实线表示,下支路(对应输入比特1)用虚线表示,仍然根据表格来确定下一步的状态

    至此,卷积码应该就讲清楚了。

    维特比译码

    根据书上所说,卷积码的译码方法有三种:

    • 维特比译码:性能最佳,硬件实现最复杂;
    • 门限译码:性能最差,硬件简单;
    • 序列译码:性能和硬件介于维特比译码和门限译码之间。

    目前应用最广的就是维特比译码

    译码原理

    首先还是应该介绍译码原理,举例子或者解读只是为了更好的理解原理
    在维特比译码算法中,把汇聚在每个节点上的两条路径的对数似然函数累加值进行比较,然后把具有较大对数似然函数累加值的路径保存下来,而丢弃另一条路径,经挑选后低N+1N+1级只留下2N2^N条幸存路径,选出的路径连同它们的对数似然函数累加值一起被存储起来。
    总结来说就是加-比-选,即每级求出对数似然函数累加值,然后两两比较并作出选择。

    译码例子(以(2, 1, 3)卷积码为例)

    不失一般性,假设编码器输出序列为全0码。假设接收序列为Y=001001000000Y = 001001000000,由于输出为全0码,则可知有两个位置发生了错误(两个1)。
    用下图表示随着接收序列的串行输入,维特比译码器中各路径的取舍情况。圆圈中的数字表示从起始点到某节点的该路径与接收序列的之间的汉明距最大对数似然函数 = 最小汉明距)。

    维特比译码
    维特比译码过程的网格图表示

    图中画了卷积码的网格图,上支路对应输入0,下支路对应输入1。

    图一,根据上面的状态表格,输入0的输出为00,输入1的输出为11,汉明距分别为0,2,标在了支路末端;
    图二,同样地,根据状态表格,画出网格图。关注红色路径,输出分别为11,10,对比接受序列YY,见图中红色下划线和蓝色下划线,00和11地汉明距为2,10和10的汉明距为0,故红色路径总的汉明距为2+0=22+0=2,其他路径同理;
    图三,前面不变,根据状态表格,这时出现了路径终点重合的情况,因此需要进行比较-选择,每条路径的汉明距也分别标注出来,选择较小的那个(汉明距相同的则任意选),也就是图中红色对勾的那条路径;
    依此类推,可得到图十的情况,这时译码过程也就结束了。

    补充说明

    事实上,在第三步即可断定第一条支路应为Y=00Y=00支路,这是因为所有幸存路径都是从同一点出发的(汉明距为0的点)。由此可见,不必等到最后得到唯一一条路径才做出最后的判断,因而也不需要等整个译码序列输入后再加N1N-1个已知的结束信息。译码器可以以少量时延连续不断地工作,做出基本正确的判断

    参考资料

    曹志刚,宋铁成,杨鸿文.通信原理与应用 [M].北京:高等教育出版社,2015

    展开全文
  • 标准(2,1,6)卷积码及其删除码的维特比译码,可以自动判断模糊、码率
  • 卷积码是一种性能优越的信道编码,它的编码器和解码器都比较易于实现,同时还具有较强的纠错能力,这使得它的使用越来越广泛。
  • 采用MATLAB自编函数对卷积码以及维特比译码进行仿真,且对其性能进行分析。由于卷积码有性能floor,编码增益随信噪比降低而体现不明显。  1.引言  卷积码的编码器是由一个有k位输入、n位输出,且具有m位移位...
  • 卷积码编码、维特比译码源代码

    热门讨论 2010-01-14 22:52:19
    卷积码编码、维特比译码源代码 包括三个编译码文件,213编译码,217编译码等
  • 采用MATLAB自编函数对卷积码以及维特比译码进行仿真,且对其性能进行分析。由于卷积码有性能floor,编码增益随信噪比降低而体现不明显。  1.引言  卷积码的编码器是由一个有k位输入、n位输出,且具有m位移位...
  • 该上传的程序为针对卷积码(212)的维特比硬判决码译码形式,再设计其他形式的卷积码译码时只要改进它的状态表就可以
  • 是一种非常有前途的编码方法我们在一些资料上可以找到关于分组码的一些介绍,分组码的实现是将编码信息分组单独进行编码,因此无论是在编码还是译码的过程中不同码组之间的码元无关 卷积码和分组码的根本区别在于,...
  • 2,1,7卷积码的viterbi译码算法的FPGA实现,内容详细,而且附带源代码 2,1,7卷积码的viterbi译码算法的FPGA实现,内容详细,而且附带源代码
  • 卷积码的编码和维特比译码程序,使用C/C++编写,可在Ubuntu和Windows操作系统上运行,经过修改可在嵌入式系统中运行。适合新手学习卷积码编码和维特比译码算法,也可供工程师参考。
  • 卷积码/Viterbi译码,卷积码/Viterbi译码是什么意思 卷积码在一个二进制分组码(n,k)当中,包含k个信息位,码组长度为n,每个码组的(n-k)个校验位仅与本码组的k个信息位有关,而与其它码组无关。为了达到一定的纠错...

      卷积码/Viterbi译码,卷积码/Viterbi译码是什么意思

      卷积码在一个二进制分组码(n,k)当中,包含k个信息位,码组长度为n,每个码组的(n-k)个校验位仅与本码组的k个信息位有关,而与其它码组无关。为了达到一定的纠错能力和编码效率(=k/n),分组码的码组长度n通常都比较大。编译码时必须把整个信息码组存储起来,由此产生的延时随着n的增加而线性增加。

      为了减少这个延迟,人们提出了各种解决方案,其中卷积码就是一种较好的信道编码方式。这种编码方式同样是把k个信息比特编成n个比特,但k和n通常很小,特别适宜于以串行形式传输信息,减小了编码延时。

      与分组码不同,卷积码中编码后的n个码元不仅与当前段的k个信息有关,而且也与前面(N-1)段的信息有关,编码过程中相互关联的码元为nN个。因此,这N时间内的码元数目nN通常被称为这种码的约束长度。卷积码的纠错能力随着N的增加而增大,在编码器复杂程度相同的情况下,卷段积码的性能优于分组码。另一点不同的是:分组码有严格的代数结构,但卷积码至今尚未找到如此严密的数学手段,把纠错性能与码的结构十分有规律地联系起来,目前大都采用计算机来搜索好码。

      下面通过一个例子来简要说明卷积码的编码工作原理。正如前面已经指出的那样,卷积码编码器在一段时间内输出的n位码,不仅与本段时间内的k位信息位有关,而且还与前面m段规定时间内的信息位有关,这里的m=N-1通常用(n,k,m)表示卷积码(注意:有些文献中也用(n,k,N)来表示卷积码)。图1就是一个卷积码的编码器,该卷积码的n = 2,k = 1,m = 2,因此,它的约束长度nN = n×(m+1) = 2×3 = 6。

    af24a927db368aa031e40c970ff4cef8.png

      图1 (2,1,2)卷集码编码器

      在图1中,与 为移位寄存器,它们的起始状态均为零。、与、、之间的关系如下:

      (1)

      假如输入的信息为D = [11010],为了使信息D全部通过移位寄存器,还必须在信息位后面加3个零。表1列出了对信息D进行卷积编码时的状态。

      表1 信息D进行卷积编码时的状态

      输入信息D 1 1 0 1 0 0 0 0

      b3b2 00 0 1 1 1 1 0 0 1 1 0 0 0 0 0

      输出C1C2 1 1 0 1 0 1 0 0 1 0 1 1 0 0 0 0

      描述卷积码的方法有两类,也就是图解表示和解析表示。解析表示较为抽象难懂,而用图解表示法来描述卷积码简单明了。常用的图解描述法包括树状图、网格图和状态图等。基于篇幅原因这里就不详细介绍了。

      卷积码的译码方法可分为代数译码和概率译码两大类。代数译码方法完全基于它的代数结构,也就是利用生成矩阵和监督矩阵来译码,在代数译码中最主要的方法就是大数逻辑译码。概率译码比较常用的有两种,一种叫序列译码,另一种叫维特比译码法。虽然代数译码所要求的设备简单,运算量小,但其译码性能(误码)要比概率译码方法差许多。因此,目前在数字通信的前向纠错中广泛使用的是概率译码方法。

      维特比译码法简介

      viterbi译码算法是一种卷积码的解码算法。缺点是随着约束长度的增加算法的复杂度增加很快。约束长度N为7时要比较的路径就有64条,为8时路径变为128条。 (2<<(N-1))。所以viterbi译码一般应用在约束长度小于10的场合中。

      编码(举例约束长度为7):编码器7个延迟器的状态(0,1)组成了整个编码器的64个状态。每个状态在编码器输入0或1时,会跳转到另一个之中。比如110100输入1时,变成101001(其实就是移位寄存器)。并且输出也是随之而改变的。

      解码的过程就是逆过程。算法规定t时刻收到的数据都要进行64次比较,就是64个状态每条路有两条分支(因为输入0或1),同时,跳传到不同的两个状态中去,将两条相应的输出和实际接收到的输出比较,量度值大的抛弃(也就是比较结果相差大的),留下来的就叫做幸存路径,将幸存路径加上上一时刻幸存路径的量度然后保存,这样64条幸存路径就增加了一步。在译码结束的时候,从64条幸存路径中选出一条量度最小的,反推出这条幸存路径(叫做回溯),得出相应的译码输出。

      这样的算法在TI的C54x的dsp上使用100M的速率运行,都无法达到数传速度的要求,主要的时间消耗在每条路径的两次比较上,两次比较的时候一共需要从内存中取3个数(上一时刻幸存路径的量度,两个状态跳转相应的输出值),比较结束以后,还需要对内存写入2个数(幸存路径新的总量度,下一个跳转的状态),这样,每个时钟节拍需要比较的次数就是64*2次,每次存取数就要5次。一个数据包是256byte,知道解码一包所大概需要的时间。加上其他的开销,最后实验出来的结果是大概0.06m,但是用64k速率传输的时候只要0.03m即可传完。

    展开全文
  • 卷积码,卷积码是什么意思 卷积码在一个二进制分组码(n,k)当中,包含k个信息位,码组长度为n,每个码组的(n-k)个校验位仅与本码组的k个信息位有关,而与其它码组无关。为了达到一定的纠错能力和编码效率(=k/n),分组...

      卷积码,卷积码是什么意思

      卷积码在一个二进制分组码(n,k)当中,包含k个信息位,码组长度为n,每个码组的(n-k)个校验位仅与本码组的k个信息位有关,而与其它码组无关。为了达到一定的纠错能力和编码效率(=k/n),分组码的码组长度n通常都比较大。编译码时必须把整个信息码组存储起来,由此产生的延时随着n的增加而线性增加。 为了减少这个延迟,人们提出了各种解决方案,其中卷积码就是一种较好的信道编码方式。这种编码方式同样是把k个信息比特编成n个比特,但k和n通常很小,特别适宜于以串行形式传输信息,减小了编码延时。

      与分组码不同,卷积码中编码后的n个码元不仅与当前段的k个信息有关,而且也与前面(N-1)段的信息有关,编码过程中相互关联的码元为nN个。因此,这N时间内的码元数目nN通常被称为这种码的约束长度。卷积码的纠错能力随着N的增加而增大,在编码器复杂程度相同的情况下,卷段积码的性能优于分组码。另一点不同的是:分组码有严格的代数结构,但卷积码至今尚未找到如此严密的数学手段,把纠错性能与码的结构十分有规律地联系起来,目前大都采用计算机来搜索好码。

      下面通过一个例子来简要说明卷积码的编码工作原理。正如前面已经指出的那样,卷积码编码器在一段时间内输出的n位码,不仅与本段时间内的k位信息位有关,而且还与前面m段规定时间内的信息位有关,这里的m=N-1通常用(n,k,m)表示卷积码(注意:有些文献中也用(n,k,N)来表示卷积码)。图1就是一个卷积码的编码器,该卷积码的n = 2,k = 1,m = 2,因此,它的约束长度nN = n×(m+1) = 2×3 = 6。

    144c659478d1094e9229633452e3562f.gif

      在图1中与为移位寄存器,它们的起始状态均为零。

      假如输入的信息为D = [11010],为了使信息D全部通过移位寄存器,还必须在信息位后面加3个零。表1列出了对信息D进行卷积编码时的状态。

      表1 信息D进行卷积编码时的状态

    e8d325992ec4737afba8625f7772b9b9.png

      描述卷积码的方法有两类,也就是图解表示和解析表示。解析表示较为抽象难懂,而用图解表示法来描述卷积码简单明了。常用的图解描述法包括树状图、网格图和状态图等。基于篇幅原因这里就不详细介绍了。

      卷积码的译码方法可分为代数译码和概率译码两大类。代数译码方法完全基于它的代数结构,也就是利用生成矩阵和监督矩阵来译码,在代数译码中最主要的方法就是大数逻辑译码。概率译码比较常用的有两种,一种叫序列译码,另一种叫维特比译码法。虽然代数译码所要求的设备简单,运算量小,但其译码性能(误码)要比概率译码方法差许多。因此,目前在数字通信的前向纠错中广泛使用的是概率译码方法。

    展开全文
  • 卷积码译码

    2014-04-17 10:34:12
    卷积码维特比译码,卷积码编译码算法研究与实现
  • 卷积码的编码原理 及维特比译码

    热门讨论 2011-11-12 13:45:59
    卷积码的编码原理及维特比译码 主要是算法实现
  • 卷积码,什么是卷积码 卷积码在一个二进制分组码(n,k)当中,包含k个信息位,码组长度为n,每个码组的(n-k)个校验位仅与本码组的k个信息位有关,而与其它码组无关。为了达到一定的纠错能力和编码效率,分组码的码组...
  • Verilog代码块`timescale 1ns / 1ps module viterbi( input clk, input clk_div2, input rst_n, // input x, output y, output c, output reg rd, output reg ready);... reg[13:0] x_t,x_t1;
  • 在发送端根据生成多项式进行卷积码编码,在接收端根据维特比(Viterbi)译码算法进行译码,能够有效抵抗信道噪声的影响,在误码率门限之下可以对传输过程中发生的突发错误进行纠错。 1、编码及译码算法的基本原理 ...
  • 卷积码译码

    2018-12-17 11:00:09
    该资源为卷积码维特比译码的matlab仿真代码,卷积码表示为(n,k,m),其中n为分组长度,k为分组中的信息码元数目,m为本信息段之前的相关信息段数目,显然一个码组的监督码元监督着m+1个信息段,因此也将N=m+1称为...
  • LDPC编码相对其他编码的好处 LDPC(低密度奇偶检验)是由稀疏校验矩阵定义的线性分组,具有能够逼近香农极限的优良特性,其描述简单,具有较大的灵活性和较低的差错误码特性,可实现并行操作,译码复杂度低,适合...
  • 对《通信原理》第七版(3,1,3)卷积码,进行维特比译码,适合参考。

空空如也

空空如也

1 2 3 4 5 6
收藏数 119
精华内容 47
关键字:

卷积码维特比译码