• 締切済み

CRC方式(誤り制御方式)について

CRC方式に関する問題なのですが、通信系の資格の取得しようと勉強しているのですが、誤り制御方式のところの問題をやっていましたら、答えだけで解説がなく意味がわからなく困っています。わかります方、よろしくお願い致します。 生成多項式をG(X)=X(6)+X(4)+X(2)+1とする。 (1)伝送したいデータがD=X(5)+Xのとき、送信データS=D´+CRCを多項式で表しなさい。 (2)受信データがX(14)+X(12)+X(10)+1のとき、この受信データに誤りが含まれていないことを示しなさい。次に、伝送したいデータDを多項式で表しなさい。 ※X(5)などの()内の数字はXの5条(ジョウ)です。

みんなの回答

  • ok-kaneto
  • ベストアンサー率39% (1798/4531)
回答No.1

北海道情報大の通信教育部の「データ通信システム」のレポートにそっくりですね。 学習用プリントと教科書に書いてますから、よく読んでみては? ちなみに、(1)の問題文が間違っているようですよ。 ちなみに、答えは何となっていますか?

関連するQ&A

  • CRC方式について

    「CRC方式において、伝送路上でビット誤りが生起しなかったと仮定する。このとき、受信符号H(X)は、生成多項式G(X)で割り切れることを証明せよ。」という課題が出たのですが、どうすれば良いか、教えていただけませんか?

  • CRC方式について

    「CRC方式において、伝送路上でビット誤りが生起しなかったと仮定する。このとき、受信符号H(X)は、生成多項式G(X)で割り切れることを証明せよ。」という課題が出たのですが、どうすれば良いでしょうか?

  • 誤り制御について教えてください!

    情報処理試験の勉強をしているのですが、データ伝送の誤り制御(パリティチェック、CRCなど)は実際には、具体的にどのように、どんな技術と併せて使われるのでしょうか? 個人的な考えでは同期方式などと組み合わせて使い、同期フレーム等ごとに誤りをチェックするのでは、と考えているのですが、どの参考書やサイトでも、基本的な用語解説以上のことは書いてないので、中途半端な知識のままで腑に落ちません。 大事な分野だと思うのでしっかりした知識を身につけたいです。 お判りになられる方、また詳しい解説があるサイトがありましたら教えてください。よろしくお願いします。

  • 水平垂直パリティチェックとCRC方式について

    質問させてください。 基本情報処理試験において、誤り訂正方式の一つとして ・水平垂直パリティチェック ・CRC方式 というものがあります。 水平垂直パリティチェックは、ビット列を縦横に確認してデータに誤りがないか確認する方法、 CRC方式は、生成多項式という特別な式でデータに誤りがないか確認する方法 ということはわかるのですが、 それぞれのメリットデメリットは何でしょうか? 例えば、CRC方式では水平垂直パリティチェックではできない、2ビット以上の誤り訂正ができたりするのでしょうか? どなたか回答をお願いします。

  • データ通信、CRC符号の計算

    生成多項式がG(X)=X^6+X^4+X^2+1 受信データがX^14+X^12+X^10+1 このとき、伝送したいデータDを多項式で表したいのですが、分かりません・・・。 すみませんが、どなたかご教示ください。 よろしくお願いいたします。

  • CRCによる誤り検出の条件

    現在、CRCについて学んでいます。 その中で、誤り検出が可能な条件として、 誤りの多項式E(X)が生成多項式G(X)で割り切れないこと というのがあると思います。 そこで例えば、rビットのバースト誤りの際に、 E(X) = x^(i) + x^(i+1) + … + x^(i+r-1) = x^i * {1 + x + … + x^(r-1)} (ただ、この最後の式でx~x^(r-2)までは、誤りによってあったりなかったりする筈です) と表すことが出来て、生成多項式G(X)の次数がrであるとき、 1. x^iは(G(X)が2項以上の多項式であるなら)G(X)で割り切れない 2. {1 + x + … + x^(r-1)}は(次数がr-1であるから)G(X)で割り切れない 3. 従ってE(X)もG(X)で割り切れない よって生成多項式の次数がrの場合、rビット以下のバースト誤りは検出できるとなっていますが、、、 いくら1.や2.がG(X)で割り切れなくても、それらの積(=E(X))がG(X)で割り切れてしまうことはあるじゃないですか。 具体的には、i=1のとき、もしG(X)がx * {1 + x + … + x^(r-1)}であれば、割り切れますし、、、 同様の話で、 http://laputa.cs.shinshu-u.ac.jp/~yizawa/InfSys1/advanced/crc/ こちらのページの、「4. 巡回符号の誤り検出」という部分でも、 「これらは、3次の生成多項式、例えば G(x) = x^3+x+1 で割り切れないことは明らかです。」 という記述に対して、「例えばG(X) = x^3+x^2+x^1であれば割り切れてしまうのでは」と反論したくなります。 もちろん、割り切れないようなG(X)を選べばいいと言われればそれまでですが、、、以上の様にG(X)の内容によっては「G(X)の次数r以下のバースト誤りが検出できる」のが自明とは思えません。 そもそもそれが答え、、、? どなたかご説明お願いしますm(_ _)m

  • 技術者試験などに「メモリの誤り制御方式」と言って

    技術者試験などに「メモリの誤り制御方式」と言って ハミング符号 奇数パリティ 偶数パリティ 水平パリティ チェックサム CRC などありますが、これらは実際にどのような場面で有効活用されている のでしょうか。 「主記憶」と「HDD」の間でデータの送受信をする時に、情報に誤りがないか どうかを検出したり訂正するという解釈なのでしょうか。 以上、よろしくお願いします。

  • CRCアルゴリズムのZ/2Z上の多項式の係数列とは?

    こんにちはお世話になります。 私はネットワークに興味があるオジサンです。 先日、データリンク層のプロトコル群を勉強していたとき、誤り訂正でCRCが出てきました。 CRC(Cyclic Redundancy Cheak)の解説には、 >ビット列をZ/2Z上の多項式の係数列とみなし, もとのデータにチェックビットを 継ぎ足して必ず特定の生成多項式で割り切れるデータのみを送るようにする. > とありました。 上記の「Z/2Z上」とは何を指しているのでしょうか。 数学が大の苦手ですので優しく解説していただければ幸いです。 何卒よろしくお願い申し上げます。

  • CRCのアルゴリズムって、どんな計算するんですか?

    こんにちはお世話になります。 私はネットワークに興味があるオジサンです。 先日、データリンク層のプロトコル群を勉強していたとき、誤り訂正でCRCが出てきました。誤り訂正ではパリティーチェックやチェックサム等は聞き覚えがありましたが、CRCは始めて見たので興味を持ち少し調べてみようと思いました。 それが間違いの元でした。 インターネットでCRCの構造を詳しく解説するサイトが少なく、その解説は難しすぎて手におえません。 数学にはめっぽう弱い私には、多項式同士の加減乗除算などは頭痛の肥やしにしかなりません。 今ではCRCが気になって勉強に集中できない状態です。 そこで、表題にもあるCRCのアルゴリズムを、何方か分かり易く教えてくださいませんか。もしくは、CRCのアルゴリズムを簡単に解説している書籍をご存知でしたら教えてください。 カテゴリー(本来は数学系?)が違うかもしれませんが、何卒よろしくお願い申し上げます。

  • CRC8 ATMの計算方法

    CRC8 ATMの演算を行うツールの検証を行っているのですが、 CRCの机上計算方法を詳しく解説したサイトが無く生成多項式で 割って余りを求めると言う事しかわかりませんでした。 CRCを求める際はCRCの初期値も重要な筈ですが、CRCの初期値は 余りを求める際にどの様に使うのかを開設した物がなく、私に 検証を依頼してきた人に聞いてもまともな回答をもらえません でした(検証を依頼してきた人もちゃんと理解していない?)。 このサイトの別の質問の回答で 1. 与えられたデータの下位 (ビット送りの反対側) に「初期値」   を付加する 2. 生成多項式で割って余りを求める とあったので、その通りに計算しましたが初期値が0x00の時は ツールと机上計算の結果が一致するのですが、初期値0xFFの時は ツールと机上計算の結果が一致しませんでした。 実際の計算過程と結果は下記です。 生成多項式:x8+x2+x1+1(9'b100000111) 入力データ:0x12345678 CRC初期値:0x00 データ左送り、入出力反転なし 机上計算 初期値:0001001000110100010101100111100000000000(0x1234567800) 100000111 ---------------------------------------- 0001001000100010101100111100000000000 100000111 ---------------------------------------- 0001001010010101100111100000000000 100000111 ---------------------------------------- 0001011100101100111100000000000 100000111 ---------------------------------------- 0011101011100111100000000000 100000111 ---------------------------------------- 01101000000111100000000000 100000111 ---------------------------------------- 0101001110111100000000000 100000111 ---------------------------------------- 001001001111100000000000 100000111 ---------------------------------------- 0001000001100000000000 100000111 ---------------------------------------- 0000000010000000000 100000111 ---------------------------------------- 00000011100 なのでCRC(余り)は0x1C(00011100)でツールの結果0x1Cと一致。 CRC初期値:0xFF 机上計算 初期値:0001001000110100010101100111100011111111(0x12345678FF) 100000111 ---------------------------------------- 0001001000100010101100111100011111111 100000111 ---------------------------------------- 0001001010010101100111100011111111 100000111 ---------------------------------------- 0001011100101100111100011111111 100000111 ---------------------------------------- 0011101011100111100011111111 100000111 ---------------------------------------- 01101000000111100011111111 100000111 ---------------------------------------- 0101001110111100011111111 100000111 ---------------------------------------- 001001001111100011111111 100000111 ---------------------------------------- 0001000001100011111111 100000111 ---------------------------------------- 0000000010011111111 100000111 ---------------------------------------- 00011100011 なのでCRC(余り)は0xE3(11100011)でツールの結果0xCDと不一致 となりました。 これは計算の仕方が間違っているのでしょうか? それともツールの結果が間違っているのでしょうか? 何方かCRCの計算に詳しい人、ご回答をお願いします。