![]() |
کد همینگ - نسخهی قابل چاپ |
کد همینگ - sMohammad - 19 بهمن ۱۳۹۵ ۱۲:۱۳ ب.ظ
سلام دوستان کد همینگ رو از کتاب پوران و هم از کتاب راهیان خوندم، یه چیز رو متوجه نشدم، گیرنده از کجا میخواد بدونه این کد دریافتی (کد دریافتی، منظورش یک فرم هست دیگه؟ درسته؟) تغییر پیدا کرده؟ تو کتاب نوشته بود "کد" من دو جور فکر کردم: ۱/ کد منظور فریم هست، اگه اینطور باشه گیرنده از کجا میخواد متوحه بشه که این کد تغییر کرده؟ ۲/ اگر از قبل این "کد" مورد توافق قرار گرفته باشه، هر فریم که دریافت میشه با این کد مقایسه میشه!؟ اینجوری که ممکنه همه فریم ها نویز دار باشن! چون قرار نیست فریم ها همه یه جور باشن که! مورد دوم رو خیلی تعجب کردم، از متن کتاب راهیان این برداشت (مورد ۲) رو کردم، چون میگه کد همینگ یعنی دو "کد" باینری، دو "فریم" باینری یا ... رو با هم مقایسه کنیم ببینیم d چند میشه... فریم دریافتی باید با چی مقایسه بشه؟ ببینید خوده همینگ رو متوجه شدم که میگه اختلاف ۰ و ۱ ها در جایگاه های یکسان در دو کد، ولی اینکه چه جوری توی خطایابی و عیب یابی کمک میکنه رو نمیدونم |
RE: کد همینگ - Rehe1994 - 19 بهمن ۱۳۹۵ ۰۲:۱۸ ب.ظ
سلام ٬ بهترین مرجع برای کد همینگ پارسه هست٬ ممکنه داخل پی وی ای دی تلنرام بدید براتون عکس بگیرم |
RE: کد همینگ - antimonafeg - 19 بهمن ۱۳۹۵ ۰۵:۰۹ ب.ظ
(۱۹ بهمن ۱۳۹۵ ۰۲:۱۸ ب.ظ)Rehe1994 نوشته شده توسط: سلام ٬ بهترین مرجع برای کد همینگ پارسه هست٬ ممکنه داخل پی وی ای دی تلنرام بدید براتون عکس بگیرم بله بهترین توضیح توضیح دکتر حقیقت تو کتاب پارسه هست ... ( البته پارسه قدیم نه الان چون دکتر و گروه تدریسی شون نیستن دیگه اونجا ) |
RE: کد همینگ - Behnam - ۱۹ بهمن ۱۳۹۵ ۰۷:۳۸ ب.ظ
(۱۹ بهمن ۱۳۹۵ ۱۲:۱۳ ب.ظ)sMohammad نوشته شده توسط: سلام این جملهی آخر که شما نوشتید، Hamming distance هست نه کد همینگ. برای هر n بیت، k بیت parity اضافه میکنند به صورتی که [tex]2^k-1-k\ge n[/tex] باشه. این k بیت باعث میشه که بتونیم ۱ خطا رو تشخیص بدیم و محلش رو هم بدونیم (در نتیجه با not کردن اون بیت، میتونیم تصحیح کنیم یک خطا رو). گیرنده، از اطلاعاتی که در بیتهای توازنِ اضافه شده هست، میتونه متوجه بشه که خطایی رخ داده یا نه. مثلاً برای هر ۱۱۳ بیت داده، ۷ بیت توازن میتونه کمک کنه که جای بیتِ دچار خطا رو پیدا کنیم. پس داده به صورت بلوکهای ۱۲۰ بیتی ارسال میشه. در واقع ممکن هست داده به صورت بلوکهای دلخواه ارسال بشه ولی میدونیم که هر ۱۲۰ بیت به صورت یک کد همینگ هست، پس گیرنده، دادهی ورودی رو به صورت بلوکهای ۱۲۰ بیتی جدا میکنه و مکان اون بیتها رو هم میدونیم. مکان بیتها به ازای هر N دلخواه در کد همینگ از قبل مشخص هست و صرفاً کافی هست که گیرنده بدونه که به ازای چند بیت، ما کد همینگ رو اعمال کردیم. مثلا به ازای ۸ بیت داده، بیتهای توازن در بیت شماره ۱ و ۲ و ۴ و ۸ (بیتهای [tex]2^i[/tex]) قرار داده میشن. در نتیجه به جای ۸ بیت، ۱۲ بیت ارسال میشه و گیرنده این ۱۲ بیت رو که جدا کرد، خود به خود میدونه که بیتهای ۱ و ۲ و ۴ و ۸ توازن هستند و با xor کردن یک سری از بیتها، یک رشتهی ۴ بیتی به دست میاره که مکانِ بیت خطا رو مشخص میکنه (اگه ۰ بود، خطا نداره). فصل مربوط به تشخیص و تصحیح خطا در کتاب مدر منطقی موریس مانو رو بخونید. |