fec基础_普通独立基础

fec基础_普通独立基础 昨天休息了一下,思考一下可以研究的点,觉得这个fec还可以,就找了一点资料研究一下。 先跑点题,闲扯一会。在找资料的过程中,能找到的资料就很少,就有点感叹。科研为什么弱呢?可以看下90年代的论文,那水平略等于今天的一篇博客。这是积贫积弱到现在。 [1]中有段代码,求解伽罗华域的生成空间的。举的例子是GF(256),使用的本原多项式P(x)=x8+x5+x3+x2+1P(x)=x^8+x^5…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

 昨天休息了一下,思考一下可以研究的点,觉得这个fec还可以,就找了一点资料研究一下。
 先跑点题,闲扯一会。在找资料的过程中,能找到的资料就很少,就有点感叹。科研为什么弱呢? 可以看下90年代的论文,那水平略等于今天的一篇博客。这是积贫积弱到现在。
 [1]中有段代码,求解伽罗华域的生成空间的。举的例子是GF(256),使用的本原多项式 P ( x ) = x 8 + x 5 + x 3 + x 2 + 1 P(x)=x^8+x^5+x^3+x^2+1 P(x)=x8+x5+x3+x2+1。伽罗华域上的多项式乘法,其结果需要mod P(x),可以通过以下方式简化计算。首先,考虑 x 8 x^8 x8 x 8 m o d P ( x ) = P ( x ) – x 8 = x 5 + x 3 + x 2 + 1 x^8 mod P(x) = P(x) – x^8 = x^5 + x^3 +x^2 +1 x8modP(x)=P(x)x8=x5+x3+x2+1。这个可以使用二进制数表示, 就是 x 8 x^8 x8可以使用0b101101表示。而 x 9 = x 8 ∗ x x^9=x^8*x x9=x8x,就是对应的将 x 8 x^8 x8二进制数据左移一位得到 x 9 x^9 x9。但是 x 11 = x 10 ∗ x = x 8 + x 6 + x 5 + x 3 x^{11}=x^{10}*x=x^8+x^6+x^5+x^3 x11=x10x=x8+x6+x5+x3,最高位的 x 8 x^8 x8 x 5 + x 3 + x 2 + 1 x^5+ x^3 +x^2 +1 x5+x3+x2+1表示,就是代码里的alphaToMM。
 剩余项 ( x 6 + x 5 + x 3 ) (x^6+x^5+x^3) (x6+x5+x3)
可以被(alphaTo[i-1]&0xEF)<<1)=(alphaTo[i-1]^128)<<1)表示。这个操作就是消除x^{10}中的最高位,并把
x 5 + x 4 + x 2 x^{5}+x^{4}+x^2 x5+x4+x2左移一位(进位)。
 但是还需要整理,系数为偶数的项置零,这里的^符号就是异或运算,就是代码中给出的计算方法。当 a l p h a T o [ i − 1 ] > = 128 alphaTo[i-1]>=128 alphaTo[i1]>=128时,alphaTo[i]=alphaTo[MM]^(alphaTo[i-1]^128)<<1)。

生成元素 多项式表示 二进制表示 十进制
0 x 0 x^0 x0 0b00000001 1
x 1 x^1 x1 x 1 x^1 x1 0b00000010 2
x 2 x^2 x2 x 2 x^2 x2 0b00000100 4
x 7 x^7 x7 x 7 x^7 x7 0b10000000 128
x 8 x^8 x8 x 5 + x 3 + x 2 + 1 x^5 + x^3 +x^2 +1 x5+x3+x2+1 0b00101101 45
x 9 x^9 x9 x 6 + x 4 + x 3 + x x^6+x^4+x^3+x x6+x4+x3+x 0b01011010 90
x 10 x^{10} x10 x 7 + x 5 + x 4 + x 2 x^7+x^5+x^4+x^2 x7+x5+x4+x2 0b10110100 180
x 11 x^{11} x11 x 6 + x 2 + 1 x^6+x^2+1 x6+x2+1 0b01000101 69
x 12 x^{12} x12 x 7 + x 3 + x x^7+x^3+x x7+x3+x 0b10001010 138
x 13 x^{13} x13 x 5 + x 4 + x 3 + 1 x^5+x^4+x^3+1 x5+x4+x3+1 0b00111001 57
x 14 x^{14} x14 x 6 + x 5 + x 4 + x x^6+x^5+x^4+x x6+x5+x4+x 0b01110010 114
x 15 x^{15} x15 x 7 + x 6 + x 5 + x 2 x^7+x^6+x^5+x^2 x7+x6+x5+x2 0b11100100 228
x 16 x^{16} x16 x 7 + x 6 + x 5 + x 2 + 1 x^7+x^6+x^5+x^2+1 x7+x6+x5+x2+1 0b11100101 229
x 17 x^{17} x17 x 7 + x 6 + x 5 + x 2 + x + 1 x^7+x^6+x^5+x^2+x+1 x7+x6+x5+x2+x+1 0b11100111 231
x 18 x^{18} x18 x 7 + x 6 + x 5 + x + 1 x^7+x^6+x^5+x+1 x7+x6+x5+x+1 0b11100011 227
x 19 x^{19} x19 x 7 + x 6 + x 5 + x 3 + x + 1 x^7+x^6+x^5+x^3+x+1 x7+x6+x5+x3+x+1 0b11101011 235
x 20 x^{20} x20 x 7 + x 6 + x 5 + x 4 + x 3 + x + 1 x^7+x^6+x^5+x^4+x^3+x+1 x7+x6+x5+x4+x3+x+1 0b11111011 251
x 21 x^{21} x21 x 7 + x 4 + x 3 + x + 1 x^7+x^4+x^3+x+1 x7+x4+x3+x+1 0b10011011 155
int MM = 8;
int NN = 255;
int alphaToMM = 45;//α^8=α^5+α^3+α^2+1
int* alphaTo = new int[NN+1];
int* expOf = new int[NN+1];

alphaTo[MM] = alphaToMM;
expOf[alphaToMM] = MM;
alphaTo[NN] = 0;
expOf[0] = NN;

int i, shift;
shift = 1;
for(i=0; i<MM; i++){
    alphaTo[i] = shift;//2^i
    expOf[alphaTo[i]] = i;
    shift <<= 1;
}
shift = 128;
for(i=MM+1; i<NN; i++){
    if(alphaTo[i-1] >= shift){
        alphaTo[i] = alphaTo[MM] ^ ((alphaTo[i-1]^shift)<<1);
    }else{
        alphaTo[i] = alphaTo[i-1]<<1;
    }
    expOf[alphaTo[i]] = i;
}

 在进行乘除法的时候,需要把相应的数字转换到伽罗华域的数字,再进行运算。例如,45对应的伽罗华域中的数字为 x 8 x^8 x8,46对应的数字为 x 9 x^9 x9 x 8 ∗ x 9 = x 17 x^8*x^9=x^{17} x8x9=x17 x 17 x^{17} x17对应实数231(可以从[3]查表获取)
 了解了那么久的FEC机制,也没有转化成文章。因为我在后来在对拥塞控制仿真的时候,发现能够因为网络拥塞造成的丢包率是极低的(1%左右)[7]。而且1%的丢包率,同别人在实际网络中的测试是很相符的。就算使用FEC将这1%的丢包给恢复了,又有多大的传输性能提升呢。这个想法也就放弃了。

[1]伽罗华域运算
[2]伽罗华域(Galois Field)上的四则运算
[3]GF(256) table
[4] fec code example
[5]c++ implementation of reed solomn
[6] libkcp with fec
[7] Compare packets loss rate of BBR and CUBIC on ns3
[8] The selective use of redundancy for video streaming over Vehicular Ad Hoc Networks
[9] Backblaze Open Sources Reed-Solomon Erasure Coding Source Code

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/169585.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • latex怎样绘制表格_LaTeX排版

    latex怎样绘制表格_LaTeX排版latex在线生成表格的网站:http://www.tablesgenerator.com/latex_tables这个网站可以通过三种方式来生成latex表格代码:1、自己设置表格;2、直接导入csv表格;3、直接复制表格内容1、自己设置表格点击File,选择newtables,可以设置需要的行列数2、点击importcsvfile,可以直接导入3、 点击…

  • Eureka&CAP原理

    Eureka&CAP原理CAP原则(CAP定理):CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性)、Availability(可用性)、Partitiontolerance(分区容错性),三者不可得兼。CAP原则是NOSQL数据库的基石。Consistency(一致性)。Availability(可用性)。Partitiontolerance(分区容错性)。分布式系

  • 重定向与转发的区别_nginx重定向和转发的区别

    重定向与转发的区别_nginx重定向和转发的区别重定向和转发的区别: 重定向和转发的区别就是请求服务器几次, 如果请求服务器地址没有变说明这是一次请求请求在自己的服务器里面流转这就是转发这是服务器行为。 如果请求服务器地址变了,说明这是请求了二次,第二次请求由客户端流浪器负责,在多台服务器之间流转这就是客户端行为。 重定向: 1、重定向的速度比较慢,需要跨越服务器 2、重定向是两次不同的请求 3、重定向是执行重定向之后的代码 4、地址栏的地址是会发生变化的 5、重定向不包含项目的根目录 6、重定向是会就是.

    2022年10月31日
  • phpstrom激活码2021_在线激活

    (phpstrom激活码2021)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

  • jrtplib介绍[通俗易懂]

    jrtplib介绍[通俗易懂]程序流程发送:获得接收端的IP地址和端口号创建RTP会话指定RTP数据接收端设置RTP会话默认参数发送流媒体数据接收:获得用户指定的端口号创建RTP会话设置接收模式接受RTP数据检索RTP数据源获取RTP数据报删除RTP数据报1.初始化I、在使用JRTPLIB进行实时流媒体数据传输之前,首先应该生成R…

  • 统计学 入门基础PDF( Probability Density Function) 和PMF ( Probability Mass Function )

    统计学 入门基础PDF( Probability Density Function) 和PMF ( Probability Mass Function )PMF(概率质量函数):是对 离散随机变量的定义. 是离散随机变量 在各个特定取值的概率. 该函数通俗来说,就是对于一个离散型概率事件来说,使用这个函数来求它的各个成功事件结果的概率.PDF(概率密度函数):是对连续性随机变量的定义.与PMF不同的是PDF在特定点上的值并不是该点的概率,连续随机概率事件只能求一段区域内发生事件的概率,通过对这段区间进

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号