パリティチェックサム方式とReed-Solomon Erasure Correctionを使用して、いくつかのバイトのサウンドをエンコードおよびデコードする作業があります。 私は最初の方法(パリティチェックサム)のエンコードを行っていますが、リードソロモン消失訂正による検出である2番目の方法を完了するのに役立つ必要があります。リードソロモン消去訂正を使用したフォワードエラー訂正
これまでのところ、RSコードはt
シンボルをデータのk
シンボルに追加しています。したがって、t/2
のシンボルを見つけて修正したり、エラー位置がいわゆる消しゴムと呼ばれる場合は修正することができます。 t
まで修正できます。この作業では、ガロア体GF(2 )を使用して各シンボルを1バイトとして表現する必要があります。操作の加減算はXORに基づいています。だから私は、最大でt=3
までの訂正が可能なリードソロモンコードを使用しなければなりません。
C0 | C1 |........| Ck-1 | Ck | Ck+1 | Ck+2
に従うようにコードバイトがベクトルc=[c0,c1,...,ck+2]
及び単一コードC
として見ることができるように、今で単一リードソロモン符号の計算は、以下 d=[d0,d1,...,dk-1]
としてデータのk個のバイトから計算され、そう私の符号化されていますおよび復号化プロセスは、私たちがを取得し、次のVandermonde行列F
1 1 12 13 ... 1k-1 1 2 22 23 ... 2k-1 ... 1 k+2 (k+2)2 (k+2)3 ... (k+2)k-1 1 k+3 (k+3)2 (k+3)3 ... (k+3)k-1
F
& D
を使ってとても簡単行列ベクトル乗算を必要と。これまでのところ、私はエンコードのために何をしたか
は以下の通りである:
#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
私は、エンコードとリードソロモン消失訂正を使用して、私のfox_encodeとfox_decodeクラスを復号化するため、このコードを完了するためのコードが必要になります。できるだけ早くこの作業を完了するために、どんなヘルプも感謝します。事前
フォーマットを修正してください – CAFxX
具体的な質問は何ですか? –
には、Reed-SOlomon Erasure Correctionを使用してエラー検出を終了するためのコードを完成させるコードが必要であり、同じメソッドを使用してデコードするコードも必要です。 – Fox