تالار گفتمان مانشت

نسخه‌ی کامل: کد همینگ
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام
دوستان کد همینگ رو از کتاب پوران و هم از کتاب راهیان خوندم، یه چیز رو متوجه نشدم، گیرنده از کجا میخواد بدونه این کد دریافتی (کد دریافتی، منظورش یک فرم هست دیگه؟ درسته؟) تغییر پیدا کرده؟
تو کتاب نوشته بود "کد" من دو جور فکر کردم:
۱/ کد منظور فریم هست، اگه اینطور باشه گیرنده از کجا میخواد متوحه بشه که این کد تغییر کرده؟
۲/ اگر از قبل این "کد" مورد توافق قرار گرفته باشه، هر فریم که دریافت میشه با این کد مقایسه میشه!؟ اینجوری که ممکنه همه فریم ها نویز دار باشن! چون قرار نیست فریم ها همه یه جور باشن که!
مورد دوم رو خیلی تعجب کردم، از متن کتاب راهیان این برداشت (مورد ۲) رو کردم، چون میگه کد همینگ یعنی دو "کد" باینری، دو "فریم" باینری یا ... رو با هم مقایسه کنیم ببینیم d چند میشه...
فریم دریافتی باید با چی مقایسه بشه؟
ببینید خوده همینگ رو متوجه شدم که میگه اختلاف ۰ و ۱ ها در جایگاه های یکسان در دو کد، ولی اینکه چه جوری توی خطایابی و عیب یابی کمک میکنه رو نمیدونم
سلام ٬ بهترین مرجع برای کد همینگ پارسه هست٬ ممکنه داخل پی وی ای دی تلنرام بدید براتون عکس بگیرم
(19 بهمن 1395 02:18 ب.ظ)Rehe1994 نوشته شده توسط: [ -> ]سلام ٬ بهترین مرجع برای کد همینگ پارسه هست٬ ممکنه داخل پی وی ای دی تلنرام بدید براتون عکس بگیرم

بله بهترین توضیح توضیح دکتر حقیقت تو کتاب پارسه هست ... ( البته پارسه قدیم نه الان چون دکتر و گروه تدریسی شون نیستن دیگه اونجا )
(19 بهمن 1395 12:13 ب.ظ)sMohammad نوشته شده توسط: [ -> ]سلام
دوستان کد همینگ رو از کتاب پوران و هم از کتاب راهیان خوندم، یه چیز رو متوجه نشدم، گیرنده از کجا میخواد بدونه این کد دریافتی (کد دریافتی، منظورش یک فرم هست دیگه؟ درسته؟) تغییر پیدا کرده؟
تو کتاب نوشته بود "کد" من دو جور فکر کردم:
۱/ کد منظور فریم هست، اگه اینطور باشه گیرنده از کجا میخواد متوحه بشه که این کد تغییر کرده؟
۲/ اگر از قبل این "کد" مورد توافق قرار گرفته باشه، هر فریم که دریافت میشه با این کد مقایسه میشه!؟ اینجوری که ممکنه همه فریم ها نویز دار باشن! چون قرار نیست فریم ها همه یه جور باشن که!
مورد دوم رو خیلی تعجب کردم، از متن کتاب راهیان این برداشت (مورد ۲) رو کردم، چون میگه کد همینگ یعنی دو "کد" باینری، دو "فریم" باینری یا ... رو با هم مقایسه کنیم ببینیم d چند میشه...
فریم دریافتی باید با چی مقایسه بشه؟
ببینید خوده همینگ رو متوجه شدم که میگه اختلاف ۰ و ۱ ها در جایگاه های یکسان در دو کد، ولی اینکه چه جوری توی خطایابی و عیب یابی کمک میکنه رو نمیدونم

این جمله‌ی آخر که شما نوشتید، Hamming distance هست نه کد همینگ.
برای هر n بیت، k بیت parity اضافه می‌کنند به صورتی که [tex]2^k-1-k\ge n[/tex] باشه. این k بیت باعث میشه که بتونیم 1 خطا رو تشخیص بدیم و محلش رو هم بدونیم (در نتیجه با not کردن اون بیت، میتونیم تصحیح کنیم یک خطا رو).

گیرنده، از اطلاعاتی که در بیت‌های توازنِ اضافه شده هست، میتونه متوجه بشه که خطایی رخ داده یا نه. مثلاً برای هر 113 بیت داده، 7 بیت توازن میتونه کمک کنه که جای بیتِ دچار خطا رو پیدا کنیم. پس داده به صورت بلوک‌های 120 بیتی ارسال میشه. در واقع ممکن هست داده به صورت بلوک‌های دلخواه ارسال بشه ولی میدونیم که هر 120 بیت به صورت یک کد همینگ هست، پس گیرنده، داده‌ی ورودی رو به صورت بلوک‌های 120 بیتی جدا میکنه و مکان اون بیت‌ها رو هم میدونیم. مکان بیت‌ها به ازای هر N دلخواه در کد همینگ از قبل مشخص هست و صرفاً کافی هست که گیرنده بدونه که به ازای چند بیت، ما کد همینگ رو اعمال کردیم.
مثلا به ازای 8 بیت داده، بیت‌های توازن در بیت شماره 1 و 2 و 4 و 8 (بیت‌های [tex]2^i[/tex]) قرار داده میشن. در نتیجه به جای 8 بیت، 12 بیت ارسال میشه و گیرنده این 12 بیت رو که جدا کرد، خود به خود میدونه که بیت‌های 1 و 2 و 4 و 8 توازن هستند و با xor کردن یک سری از بیت‌ها، یک رشته‌ی 4 بیتی به دست میاره که مکانِ بیت خطا رو مشخص میکنه (اگه 0 بود، خطا نداره).

فصل مربوط به تشخیص و تصحیح خطا در کتاب مدر منطقی موریس مانو رو بخونید.
لینک مرجع