- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我的任务是使用奇偶校验和方法和 Reed-Solomon Erasure Correction 对一些声音字节进行编码和解码。 .我已经完成了第一种方法(奇偶校验和)的编码,但需要帮助完成第二种方法,即 Reed-Solomon Erasure Correction 检测。
到目前为止我知道,RS代码将t
符号添加到数据的k
符号。因此,它能够定位并更正多达 t/2
个符号,或者如果错误位置已知,则称为删除。它最多可以纠正 t
。对于此任务,我必须使用 Galois 域 GF(28) 将每个符号表示为一个字节。加减运算都是基于异或的。因此,总而言之,我必须使用 Reed-Solomon 代码,这些代码能够纠正多达 t=3
次删除。现在单个Reed Solomon码的计算如下
C0 | C1 |........| Ck-1 | Ck | Ck+1 | Ck+2
so the code bytes can be viewed as vector c=[c<sub>0</sub>,c<sub>1</sub>,...,c<sub>k+2</sub>]
and a single code C
is computed from k bytes of data as followd=[d<sub>0</sub>,d<sub>1</sub>,...,d<sub>k-1</sub>]
, so my encoding and decoding process require the following Vandermonde matrix F
1 1 12 13 ... 1k-11 2 22 23 ... 2k-1 ...1 k+2 (k+2)2 (k+2)3 ... (k+2)k-11 k+3 (k+3)2 (k+3)3 ... (k+3)k-1
so a simple matrix vector multiplication using F
& D
we get C=F.D
.
so far what I did for encoding is as follow :
#else
void fox_encode(Buffer* bufin, Buffer* bufout, FoxEncData* algorithm_data){
// Your encoder for Task 2.C.3 goes in here !!!
while (bufin->size >= 1){
guint8 databyte = bufin->data[0]; //Pick up a byte from input buffer
buffer_push_byte (bufout, databyte); //Send it 3 times
buffer_push_byte (bufout, databyte);
buffer_push_byte (bufout, databyte);
buffer_pop (bufin, 1); //Remove it from the input buffer
}
}
#endif
我需要代码来完成此代码,以便使用 Reed-Solomon Erasure Correction 对我的 fox_encode 和 fox_decode 类进行编码和解码。如果您能尽快完成此任务,我们将不胜感激。
提前致谢
最佳答案
您可以查看我的 RS(255,255-k) C 实现,可从 my homepage 获得。 .
它处理错误和删除,并纠正受以下限制的任何字节错误/删除模式:
(2*errorCount + erasureCount) <= k.
关于c - 使用 Reed-Solomon Erasure Correction 的前向纠错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9342671/
我正在研究分布式文件系统架构和设计。我遇到的不少 DFS 通常具有以下架构: 名称节点或元数据服务器,用于管理数据 block / block 的位置以及文件系统的层次结构。 用于存储属于一个或多个逻
我一直在尝试实现 Reed Solomon 编码器,以生成系统形式的代码字,消息后跟校验符号。为了进行比较,我引用了这份白皮书:http://www.bbc.co.uk/rd/pubs/whp/whp
我正在从事一个我需要了解的对象存储项目 Reed Solomon纠错算法,我经历过这个 Doc作为入门和一些论文。 1. content.sakai.rutgers.edu 2. theseus.fi
Reed-Solomon 算法正在向输入中添加额外的数据,因此可以将此类损坏输入上的潜在错误(特定大小/数量)纠正回原始状态。正确的?这个算法是否也保护了这些不是输入的一部分但被算法使用的附加数据?如
我正在设置 Reed Solomon 库来纠正和检测传入的错误。为简单起见,让我们看一下 Reed Solomon 配置,其中 m(symbol size) : 8 [GF(256)] k(us
有人有任何详细介绍柯西-里德算法的引用资料吗?谷歌搜索 Cauchy-Reed Solomon 结果 cleversafe.org .尽管他们有一个基于 Cauchy Reed-Solomon 代码的
Reed-Solomon 纠错在存在丢失字节(或多个丢失字节)的情况下是否有效?例如,假设它是一个 (12,8) Reed Solomon 代码,那么理论上它应该能够纠正 2 个错误(如果位置已知,则
我正在测试来自 this repository 的 Reed Solomon 算法为了在外部更改某些内容时恢复信息。 假设: m = bits per symbol k = data r = redu
我正在寻找一种非常高效的内存效率(例如用于查找表等的最大 500 字节内存)的 Reed-Solomon 编码器实现,以便在嵌入式应用程序中使用? 我对具有 5 字节奇偶校验的 10 字节编码 blo
我正在尝试使用 Schifra Reed-Solomon error correcting code library在一个项目中。我对 Reed-Solomon 代码和 Galois 域的工作原理一无
在我的数据结构类(class)中,我想为我的最终项目创建一个二维码生成器。但是,我在理解其中的“格式化错误更正”部分时遇到了一些麻烦。我想使用 11 (L) 的纠错和 100 的掩码模式(每隔一行)。
我的任务是使用奇偶校验和方法和 Reed-Solomon Erasure Correction 对一些声音字节进行编码和解码。 .我已经完成了第一种方法(奇偶校验和)的编码,但需要帮助完成第二种方法,
对于一个小项目,我被要求用 Go 编写一个小型 QR 码编码器。成功完成分析和编码部分后,我现在正尝试使用以下包来解决纠错问题: https://github.com/klauspost/reedso
我目前正在与 reed-solomon 合作。据我所知,第一个纠错码总是与对数据字进行异或运算相同,因为范德蒙矩阵的第一行始终为 1 并且伽罗华域中的元素相加等同于异或运算。 现在我尝试使用 Reed
据我了解,DVB-T数据包经过两个FEC系统,分别是Viterbi,数据丢失率高达50%,RS,数据丢失率高达10%。这些被称为外部和内部编码。 我无法理解第二个 RS 编码的必要性(在这种情况下,1
我想通过嘈杂的 channel 传输二进制数据。 我读到一个很好的检测错误的 ECC 算法是 Reed-Solomon。问题是我不理解该算法的输入。 这是我对 zxing.net 的幼稚失败尝试: i
我想通过嘈杂的 channel 传输二进制数据。 我读到一个很好的检测错误的 ECC 算法是 Reed-Solomon。问题是我不理解该算法的输入。 这是我对 zxing.net 的幼稚失败尝试: i
有一个包 cPacket *pk 我怎样才能得到它的位表示?例如,以的形式 std::bitsetgetBitLength()> pk_bits; 我的最终目标是对数据包应用一种编码方案,即 Reed
我正在尝试在 Python 中实现一个 Reed-Solomon 编码器-解码器,支持对删除和错误的解码,这让我发疯了。 该实现目前仅支持解码错误或仅删除,但不能同时解码(即使它低于 2*errors
我是一名优秀的程序员,十分优秀!