نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی. پرتال اطلاعاتی
  • خانه
  • بررسی ها
  • یک مثال ماتریس بررسی کد خطی بسازید. ماتریس و ارتباط آن با قابلیت تصحیح کد را بررسی کنید

یک مثال ماتریس بررسی کد خطی بسازید. ماتریس و ارتباط آن با قابلیت تصحیح کد را بررسی کنید

ما به عنوان مثال ساده‌ترین کدهای تصحیح را بررسی کرده‌ایم - کدی با یک بررسی برابری ساده که به فرد امکان می‌دهد یک خطا را در دنباله دریافتی شناسایی کند، همچنین کد تکراری و کد ابری را مسدود می‌کند که یک خطا را با استفاده از یک مجموعه تصحیح می‌کند. بررسی برابری در تمامی کدها، طی فرآیند کدگذاری مقاوم در برابر نویز، بیت های اضافی تشکیل و به ترکیب کد اصلی اضافه شدند.

اجازه دهید قوانین رسمی (تولید کننده) را که توسط آنها کدگذاری انجام می شود، تعریف کنیم. تبدیل یک توالی اطلاعات به یک کلمه رمز

ساده ترین راه برای توصیف یا تعیین کدهای تصحیح این است روش جدولیکه در آن به هر دنباله اطلاعاتی به سادگی یک کلمه رمز از جدول کد اختصاص داده می شود. به عنوان مثال، برای ساده ترین کد با بررسی برابری، جدول مطابقت بین ترکیب کد منبع و کد به صورت زیر خواهد بود:

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

راه دیگر برای تعیین کدهای بلوک خطی استفاده از به اصطلاح است سیستم های معادلات تولیدی،تعریف قاعده ای که توسط آن کاراکترهای توالی اطلاعات به آن تبدیل می شوند کاراکترهای کد. برای مثال مشابه، سیستم تولید معادلات به شکل زیر خواهد بود:

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

بلوک خطی(l, /c)-code به طور کامل توسط یک ماتریس G با اندازه تعیین می شود بهایکس پبا عناصر ماتریس باینری در این حالت، هر کد کلمه ترکیبی خطی از ردیف های ماتریس G است و هر ترکیب خطی از ردیف های G یک کلمه رمز است.

ما کدهای بلوک خطی تعریف شده با تولید ماتریس را فراخوانی می کنیم کدهای ماتریسینمایش معمول (متعارف) ماتریس مولد به صورت زیر است:

به عنوان مثال، برای ساده ترین کد (4، 3) با بررسی برابری، ماتریس تولید کننده به صورت زیر خواهد بود:

اجازه دهید تی -(t 1; t 2، ..., tk)بلوک پیامی خواهد بود که باید با استفاده از این کد کدگذاری شود.

سپس کلمه کد مربوطه Uاراده

با در نظر گرفتن ساختار ماتریس جینمادهای کلمه رمز وبه این صورت خواهد بود:

به عبارت دیگر، بهسمت چپ ترین نمادهای کلمه رمز با نمادهای دنباله اطلاعات رمزگذاری شده منطبق است و بقیه (n - به)نمادها ترکیبی خطی از نمادهای توالی اطلاعاتی هستند.

به عنوان مثال، اگر دنباله ورودی رمزگذار t == (10 1)، سپس با استفاده از ماتریس مولد کد به صورت زیر ساخته می شود:

8 فرمانده سه پیشاهنگ را در امتداد جاده اول، سه پیشاهنگ در امتداد جاده دوم، دو نفر در امتداد سوم، و خودش در امتداد جاده چهارم رفت. یک ماتریس تولید کننده برای چنین کدهایی بسازید.

پاسخ:با توجه به طرح کار، پیام دریافت شده توسط فرمانده شخصاً قابل تحریف نیست. بنابراین، ما خود را به مطالعه اطلاعات مخابره شده توسط جنگنده ها محدود می کنیم. در گروهی که در امتداد یکی از جاده‌ها حرکت می‌کنند، هر جنگنده باید یا در مورد کشف یک شی (ما چنین گزارشی را با عنوان "1") یا در مورد عدم وجود یک شی ("0") به فرمانده گزارش دهد. در صورت عدم وجود تحریف، گزارش های هر مبارز از همان گروه باید مطابقت داشته باشد. از این رو:

ماتریس را می توان با شماره گذاری مجدد مبارزان به شکل متعارف درآورد. در امتداد جاده اول ارسال اولین، چهارم و پنجم، در امتداد جاده دوم - دوم، ششم و هفتم، در امتداد جاده سوم - جنگنده های سوم و هشتم. ماتریس مولد زیر را بدست می آوریم:

کد تعریف شده به این صورت نامیده می شود بلوک خطی سیستماتیک(پ،کد cj/ با بررسی های برابری تعمیم یافته.

در سیستم های ارتباطی، چندین استراتژی برای مقابله با خطاها امکان پذیر است:

  • تشخیص خطا در بلوک های داده و درخواست انتقال مجدد خودکاربلوک های آسیب دیده - این رویکرد عمدتاً در سطوح پیوند داده و انتقال استفاده می شود.
  • تشخیص خطاها در بلوک های داده و دور انداختن بلوک های آسیب دیده - این رویکرد گاهی اوقات در سیستم های رسانه های جریانی استفاده می شود که تاخیر انتقال مهم است و زمانی برای ارسال مجدد وجود ندارد.
  • تصحیح خطا(انگلیسی) تصحیح خطای جلو) در سطح فیزیکی اعمال می شود.

کدهای تشخیص و تصحیح خطا

کدهای تصحیح کدهایی هستند که برای شناسایی یا تصحیح خطاهایی که در حین انتقال اطلاعات تحت تأثیر تداخل و همچنین در حین ذخیره آن رخ می دهد، استفاده می شوند.

برای این کار هنگام ضبط (انتقال) اضافه کنید به شکلی خاصساختار یافته بیش از اندازهاطلاعات، و هنگام خواندن (دریافت) برای تشخیص یا تصحیح خطاها استفاده می شود. طبیعتاً تعداد خطاهای قابل اصلاح محدود است و به کد خاصی که استفاده می شود بستگی دارد.

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

در واقع کدهای تشخیص خطای استفاده شده متعلق به همان دسته کدهای کدهای تصحیح خطا هستند. در واقع، هر کدی که خطاها را تصحیح می کند، می تواند برای تشخیص خطاها نیز استفاده شود (و قادر به تشخیص تعداد بزرگتراشتباهاتی که من قادر به تصحیح آن بودم).

با توجه به نحوه کار با داده ها، کدهایی که خطاها را تصحیح می کنند به دو دسته تقسیم می شوند مسدود کردن، تقسیم اطلاعات به قطعات با طول ثابت و پردازش هر یک از آنها به طور جداگانه و کانولوشنال، کار با داده ها به عنوان یک جریان پیوسته.

کدهای بلوک

اجازه دهید اطلاعات رمزگذاری شده به قطعات طولی تقسیم شود کبیت هایی که تبدیل به کلمات رمزیطول nبیت سپس کد بلوک مربوطه معمولا با ( n,ک) . در این حالت شماره تماس گرفته می شود سرعت کد.

اگر اصل ککد بیت بدون تغییر باقی می ماند و اضافه می کند nک تست، این کد نامیده می شود نظام، در غیر این صورت غیر سیستماتیک.

شما می توانید یک کد بلوک را به روش های مختلف مشخص کنید، از جمله جدولی که در آن هر مجموعه از کبیت های اطلاعات مقایسه می شوند nبیت کلمه رمز با این حال، کد خوبباید حداقل معیارهای زیر را داشته باشد:

  • توانایی تصحیح هر چه بیشتر خطاها،
  • تا جایی که ممکن است افزونگی کمتر،
  • سهولت رمزگذاری و رمزگشایی

به راحتی می توان دریافت که الزامات فوق با یکدیگر در تضاد هستند. به همین دلیل وجود دارد تعداد زیادی ازکدهایی که هر کدام برای طیف وسیعی از وظایف خود مناسب هستند.

تقریباً تمام کدهای استفاده شده خطی هستند. این به این دلیل است که مطالعه کدهای غیرخطی بسیار دشوارتر است و دستیابی به سهولت قابل قبول رمزگذاری و رمزگشایی دشوار است.

فضاهای خطی

ماتریس ژنراتور

این رابطه بین بردارهای ضرایب ارتباط برقرار می کند و بردارها با فهرست کردن تمام بردارهای ضرایب، می توان همه بردارها را به دست آورد. به عبارت دیگر، ماتریس جیفضای خطی ایجاد می کند.

ماتریس را بررسی کنید

این بدان معنی است که عملیات رمزگذاری با ضرب نسخه اصلی مطابقت دارد کبردار بیت بر روی یک ماتریس غیر منفرد جی، تماس گرفت ماتریس تولید.

اجازه دهید یک زیرفضای متعامد با توجه به سی، آ اچ- ماتریسی که اساس این زیرفضا را تعریف می کند. سپس برای هر بردار زیر درست است:

.

خواص و قضایای مهم

حداقل فاصله و توانایی اصلاح

کدهای همینگ محدود و کامل

اجازه دهید یک بلوک باینری وجود داشته باشد ( n,ک) کد با قابلیت اصلاح تی. سپس نابرابری (نامیده می شود مرز همینگ):

.

کدهایی که این کران برابری را برآورده می کنند نامیده می شوند کامل. کدهای کامل شامل کدهای همینگ هستند. کدهایی که اغلب در عمل با ظرفیت تصحیح زیاد استفاده می شوند (مانند کدهای Reed-Solomon) کامل نیستند.

افزایش انرژی

هنگام انتقال اطلاعات از طریق یک کانال ارتباطی، احتمال خطا به نسبت سیگنال به نویز در ورودی دمدولاتور بستگی دارد، بنابراین، در یک سطح نویز ثابت، قدرت فرستنده تعیین کننده است. در سیستم های ماهواره ای و سیار و همچنین انواع دیگر ارتباطات، موضوع صرفه جویی در مصرف انرژی حاد است. علاوه بر این، در سیستم های خاصارتباطات (به عنوان مثال، تلفن) را نمی توان به طور نامحدود با محدودیت های فنی افزایش داد.

از آنجایی که کدگذاری تصحیح خطا امکان تصحیح خطاها را فراهم می کند، هنگام استفاده از آن، می توان قدرت فرستنده را کاهش داد و نرخ انتقال اطلاعات را بدون تغییر باقی گذاشت. بهره انرژی به عنوان تفاوت در نسبت های s/n در حضور و عدم وجود کدگذاری تعریف می شود.

کاربرد

بررسی ماتریس- - [L.G. Sumenko. فرهنگ لغت انگلیسی-روسی در زمینه فناوری اطلاعات. M.: State Enterprise TsNIIS، 2003.] موضوعات فناوری اطلاعات به طور کلی ماتریس بررسی EN ... راهنمای مترجم فنی

در زمینه های ریاضیات و تئوری اطلاعات، کد خطی نوع مهمی از کد بلوک است که در طرح های تشخیص و تصحیح خطا استفاده می شود. کدهای خطی در مقایسه با سایر کدها امکان اجرای الگوریتم های کارآمدتر را فراهم می کنند... ... ویکی پدیا

برای بهبود این مقاله، مطلوب است؟: پیدا کنید و در قالب پاورقی پیوندهایی به منابع معتبر تأیید کننده آنچه نوشته شده است، پیدا کنید. کد چرخه ای ... ویکی پدیا

کد چرخه ای یک کد خطی است که خاصیت چرخه ای بودن را دارد، یعنی هر جایگشت چرخه ای یک کلمه رمز نیز یک کلمه رمز است. برای تبدیل اطلاعات برای محافظت از آنها در برابر خطاها استفاده می شود (به تشخیص و... ... ویکی پدیا مراجعه کنید

- (کد LDPC از کد انگلیسی Low density parity check code, LDPC code, low-density code) کد مورد استفاده در انتقال اطلاعات، مورد خاص کد خطی بلوک با بررسی برابری. ویژگی خاص تراکم کم قابل توجه... ... ویکی پدیا

کد بررسی برابری با چگالی کم (کد LDPC، کد بررسی برابری با چگالی کم) کدی است که در انتقال اطلاعات مورد استفاده قرار می گیرد، یک مورد خاص از یک کد خطی بلوکی با یک بررسی برابری. ویژگی... ... ویکی پدیا

کدهای Reed Solomon کدهای چرخه ای غیر باینری هستند که به شما امکان می دهند خطاهای موجود در بلوک های داده را تصحیح کنید. عناصر بردار کد بیت نیستند، بلکه گروه هایی از بیت ها (بلوک ها) هستند. کدهای رید سولومون بسیار رایج هستند، ... ... ویکی پدیا

رای: 28, 5

معرفی

شرح فرآیند ارتباطات دیجیتال

منبع پیامی را به نمایش می گذارد مورد کلیمقداری سیگنال الکتریکی. این سیگنال تبدیل به فرم دیجیتال، که برای پردازش بیشتر راحت است.

در مرحله بعد، اطلاعات فشرده می شود (کدگذاری منبع) و افزونگی پیام را به حداقل می رساند. کدگذاری منبع هزینه های انتقال و ذخیره اطلاعات را کاهش می دهد. پس از این، پیام باید از طریق یک کانال پر سر و صدا منتقل شود. برای اینکه پیام به صورت تحریف نشده به دست مصرف کننده برسد، از کدگذاری اطلاعاتی مقاوم در برابر نویز (کدگذاری کانال) استفاده می شود. در سمت مصرف کننده، اطلاعات رمزگشایی می شود. رمزگشای کانال خطاهای کلمه دریافتی را تصحیح می کند و رمزگشای منبع کلمه تصحیح شده را به فرمی قابل خواندن برای مصرف کننده تبدیل می کند.

وقتی در مورد کدهای کنترل خطا صحبت می کنیم، باید بین دو استراتژی برای استفاده از آنها تمایز قائل شویم.

  1. تصحیح مستقیم خطا به دلیل افزونگی (Forward Error Correction - FEC).
  2. تشخیص خطا با درخواست‌های بعدی برای ارسال مجدد اطلاعات دریافتی اشتباه (Automatic Repeat Request - ARQ).

هنگام انتخاب روش های رمزگذاری و رمزگشایی، ما توسط عوامل بسیاری هدایت می شویم که رابطه آنها در شکل ارائه شده است.


کل پیچیدگی شامل هزینه‌های سخت‌افزاری و نرم‌افزاری برای پیاده‌سازی رمزگذار و رمزگشا، هزینه ذخیره‌سازی و انتقال اطلاعات و غیره است. شدت جریان داده شامل انتقال اطلاعات مفید، بیت‌های چک و همچنین درخواست‌ها و تکرارها می‌شود. بلوک اطلاعات فردی برای این درخواست ها.

کد نویسی مقاوم در برابر نویز

اطلاعات کلی

سیستم های انتقال داده واقعی کامل نیستند. هنگام استفاده از فناوری اطلاعات، باید احتمال خطا در هنگام انتقال و ذخیره سازی اطلاعات را در نظر بگیریم. این در درجه اول مربوط می شود

  • ذخیره اطلاعات در رسانه های با چگالی بالا (رسانه مغناطیسی، CD-ROM، DVD)؛
  • انتقال داده با قدرت سیگنال محدود (ماهواره و اتصال تلفن همراه);
  • انتقال اطلاعات از طریق کانال های پر سر و صدا (ارتباطات سیار، پرسرعت خطوط سیمارتباطات)؛
  • کانال های ارتباطی با افزایش نیاز به قابلیت اطمینان اطلاعات ( شبکه های کامپیوتر، خطوط انتقال با فشرده سازی داده ها).

در تمامی موارد فوق از کدهای کنترل خطا استفاده می شود.

در نظر بگیریم ساده ترین مدلانتقال داده با استفاده از کدگذاری مقاوم در برابر نویز


اجازه دهید رمزگذار منبع به طور متوالی کلمات اطلاعاتی با طول ثابت را خروجی دهد. رمزگذار کانال هر کلمه اطلاعاتی u را با کلمه رمز v جایگزین می کند. فرستنده سیگنال های مربوط به کلمه رمز v را تولید می کند و آنها را به کانال ارسال می کند. گیرنده تولید می کند تبدیل معکوس، در نتیجه کلمه باینری دریافتی r به رمزگشا می رسد. رمزگشا کلمه دریافتی r را با همه رمزهای ممکن کد مورد استفاده مقایسه می کند. اگر کلمه r با یکی از کلمات رمز منطبق باشد، کلمه اطلاعاتی مربوطه برای مصرف کننده صادر می شود. اگر r با تمام کلمات رمز متفاوت باشد، یک خطای قابل تشخیص در کانال رخ داده است. هدف از استفاده از کدگذاری کانال دستیابی به تطابق بین ارسال شده است کلمه اطلاعاتی u و کلمه اطلاعاتی دریافتی u ».

از جانب از این توصیف 2 نتیجه می توان گرفت:

  • اگر در حین انتقال از طریق یک کانال پر سر و صدا، یک کلمه رمز به کلمه رمز دیگری که با رمز ارسال شده مطابقت ندارد نگاشت شود، یک خطای غیرقابل کشف رخ می دهد. بیایید آن را خطای رمزگشایی باقیمانده بنامیم.
  • لازم است کدهایی بسازید که ساختار ریاضی خاصی داشته باشند که تشخیص مؤثر و در برخی موارد تصحیح خطاهایی را که هنگام انتقال اطلاعات از طریق کانال ارتباطی رخ می دهد، ممکن می سازد.

کدهای بلوک خطی

یک خانواده مهم از کدها توسط کدهای بلوک باینری خطی تشکیل می شود. این کدها از این جهت قابل توجه هستند که با نمایش اطلاعات و کلمات کد در قالب بردارهای دودویی، می‌توان فرآیندهای رمزگذاری و رمزگشایی را با استفاده از جبر خطی توصیف کرد. در این حالت اجزای بردارها و ماتریس های ورودی نمادهای 0 و 1 هستند. عملیات بر روی مولفه های باینری طبق قوانین انجام می شود. مدول حسابی 2.

معروف ترین کد خطی، کد بلاک هامینگ است. شرح بیشتر کدهای بلوک خطی با استفاده از این کد به عنوان مثال انجام خواهد شد. به طور خاص، ما کد Hamming (7،4) را در نظر خواهیم گرفت.

یک رمزگذار کد بلوک دودویی (n، k) مجموعه ای از 2 کیلو کلمه اطلاعات باینری ممکن را در مجموعه ای از 2 k n-بعد کلمه رمز ترسیم می کند. در نظریه کدگذاری، همیشه یک تناظر یک به یک بین این مجموعه ها وجود دارد.


به جای k بیت از بردار اطلاعات، n بیت از بردار کد به کانال منتقل می شود. در این مورد، ما در مورد کدگذاری اضافی با نرخی صحبت می کنیم: R = n ⁄ k.

هرچه سرعت کمتر باشد، کد اضافی تر است و توانایی محافظت در برابر خطاها بیشتر می شود. با این حال، باید در نظر داشت که با افزایش افزونگی، هزینه های انتقال اطلاعات نیز افزایش می یابد.

شرح فرآیندهای رمزگذاری و رمزگشایی

ماده منبع برای ساخت ساختارهای کد یک فضای برداری باینری n بعدی است که در آن مدول عملیات حسابی 2 مشخص شده است. فضای خطی، حاوی 2 کیلو کلمه رمز. کد C با استفاده از 2 k ترکیب از k بردارهای پایه مستقل خطی (g 1،…، g k) تشکیل می شود.


این بردارها ردیف های ماتریس مولد کد C را تشکیل می دهند.

برای کد C، یک کد دوگانه Cd وجود دارد به طوری که حاصل ضرب اسکالر هر جفت بردار، که یکی از آنها متعلق به فضای C و دیگری به فضای Cd است، همیشه برابر با صفر است. این بدان معناست که بردارهای کد C متعامد با بردارهای کد C هستند، از طرف دیگر، اگر بردار خاصی با تمام بردارهای کد C متعامد باشد، متعلق به کد C است و بالعکس. زیرفضای برداری دوگانه توسط n-k بردارهای پایه مستقل خطی "گسترش" یافته است (h 1،...، hn-k). این بردارها ردیف های ماتریس بررسی برابری را تشکیل می دهند.


بیایید نمونه ای از ماتریس های تولید و بررسی برابری کد هامینگ (7،4) را در نظر بگیریم:

یک ویژگی مهم باید توجه شود: هم مولد و هم ماتریس چک حاوی یک ماتریس هویت هستند. این ویژگی در فرآیندهای رمزگذاری و رمزگشایی استفاده می شود.

کد نویسی

کلمه رمز v و کلمه اطلاعاتی u با این رابطه مرتبط هستند:

که در آن G ماتریس مولد است که ساختار آن در بالا توضیح داده شد.

به عنوان مثال، بردار اطلاعات u = (1010) به صورت زیر به بردار کد نگاشت می شود:

به راحتی می توان دید که چهار بیت آخر بردار کد با بردار اطلاعات منطبق است. این ویژگی سیستماتیک بودن کد نام دارد.

کدهایی که در آنها می توان یک کلمه اطلاعاتی را مستقیماً از بردار کد متناظر آن استخراج کرد، سیستماتیک نامیده می شوند. ماتریس تولید هر کد سیستماتیک همیشه می تواند با مرتب کردن مجدد ستون ها به شکل کاهش یابد:

G k × n = (P k × (n − k) I k)،

جایی که I k ماتریس هویت بعد k×k است.

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

در ادامه نقش کاراکترهای آزمایشی و کاربرد آنها به تفصیل توضیح داده خواهد شد.

رمزگشایی

وظیفه رمزگشا این است که با استفاده از ساختار کد، بر اساس کلمه دریافتی r، بردار اطلاعات ارسالی را بازیابی کند. برای کد همینگ (7، 4) که در بالا مورد بحث قرار گرفت، می‌توانیم الگوریتم تشخیص خطای زیر را پیشنهاد کنیم. از آنجایی که کد مورد بررسی سیستماتیک است، هر یک از سه علامت چک را از طریق نمادهای بردار اطلاعات بیان می کنیم:

V 0 = v 3 ⊕ v 5 ⊕ v 6
v 1 = v 3 ⊕ v 4 ⊕ v 5
v 2 = v 4 ⊕ v 5 ⊕ v 6

اگر خطایی در کانال رخ دهد، در بردار دریافتی r حداقل یکی از برابری ها برآورده نمی شود. اجازه دهید روابط آزمون به دست آمده را در قالب یک سیستم معادلات برای اجزای بردار r بنویسیم:

R 0 ⊕ r 3 ⊕ r 5 ⊕ r 6 = s 0
r 1 ⊕ r 3 ⊕ r 4 ⊕ r 5 = s 1
r 2 ⊕ r 4 ⊕ r 5 ⊕ r 6 = s 2

بنابراین، از سه ستون اول ماتریس مولد G سیستمی از سه معادله آزمایشی به دست آوردیم. اگر در سیستم معادلات حاصل حداقل یکی از مولفه ها (s 0, s 1, s 2) برابر با صفر نباشد، خطا در کانال رخ داده است.

اجازه دهید سیستم معادلات تأیید را در آن بنویسیم نمای کلی. برای هر کد سیستماتیک با ماتریس مولد G، ماتریس بررسی برابری به صورت زیر تعریف می شود:

H (n - k)× n = (I n - k P T k × (n - k)).

سپس می توان سیستم معادلات تست را به صورت نوشتاری نوشت

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

به عنوان مثال، رمزگشایی سندرمیک (7، 4) کد همینگ را در نظر بگیرید. هنگام انتقال یک کلمه اطلاعاتی u = (1010) از طریق یک کانال بدون نویز r = v = (0011010). ما می توانیم بررسی کنیم که در این مورد سندرم برابر با 0 است.

اگر مثلاً در کلمه رمزیک خطا در موقعیت چهارم رخ داده است (r = (0010010))، سپس سندرم ردیف چهارم ماتریس بررسی انتقال یافته است.

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

ترشحات اشتباه r 0 r 1 r 2 r 3 r 4 r 5 r 6
سندرم اس 100 010 001 110 011 111 101

می توان توجه داشت که یک خطا در موقعیت i-امین کلمه کد مربوط به سندرمی است که توسط ستون i-ام ماتریس H تشکیل شده است. از آنجایی که تمام ستون های ماتریس متفاوت هستند، می توانیم از جدول سندرم برای تصحیح یک مورد استفاده کنیم. تک خطا معرفی شده توسط کانال.

انواع خطاها

کدهای بلوک خطی دارای 3 نوع خطا هستند:

  1. خطای قابل تشخیص و تصحیح
    • این سندرم در جدول سندرم وجود دارد
    • رمزگشا خطا را تشخیص داده و تصحیح می کند و سپس کلمه صحیح را به گیرنده ارسال می کند
  2. خطای قابل تشخیص
    • کلمه دریافتی با هیچ یک از کلمات رمز مطابقت ندارد
    • سندرم در جدول سندرم وجود ندارد
    • رمزگشا خطا را تشخیص داده و درخواستی برای ارسال مجدد کلمه اطلاعاتی ارسال می کند.
  3. خطای ناشناخته
    • کلمه دریافتی با یکی از کلمات رمز مطابقت دارد (نه با کلمه رمز اصلی)
    • سندرم 0 است
    • رمزگشا خطا را تشخیص نمی دهد و یک پیام اطلاعاتی اشتباه به مصرف کننده می دهد

نتیجه

لازم به ذکر است که اثربخشی یک کد خاص به کاربرد آن و به ویژه به کانال ارتباطی بستگی دارد. اگر نسبت سیگنال به نویز در یک کانال به اندازه کافی بالا باشد، احتمال یک خطا چند برابر بیشتر از احتمال خطاهای چندگانه بالاتر است، بنابراین، استفاده از کد همینگ در چنین کانالی با تصحیح یک خطا می تواند بسیار موثر باشد. از سوی دیگر، در کانال هایی که خطاهای متعدد غالب است (مثلاً کانال های محو شده)، تصحیح یک خطا بی معنی است. در انتخاب عملیبرای یک کد خاص مقاوم در برابر نویز، باید سرعت رمزگشایی و پیچیدگی اجرای فنی آن را نیز در نظر گرفت.

ادبیات

  1. ورنر ام. مبانی کدگذاری. - M.: Tekhnosphere، 2004.
  2. Bleikhut R. نظریه و عمل کدهای کنترل خطا. - م.: میر، 1365.

اولگ ریباک

در واقع یافتن توضیح کافی دشوار است. اغلب، نویسندگان تصور می‌کنند که خواننده از قبل چیزهای زیادی می‌داند و سعی نمی‌کنند نکات به ظاهر ساده‌ای را که حاوی اصل هستند توضیح دهند. خیلی خوشحالم که باهاش ​​برخورد کردم این مواد، چیزی را برای خودم روشن کردم.

کدهای خطی دارای ویژگی های زیر هستند:

از این همه کثرت 2 کاز میان کلمات رمز مجاز که یک گروه خطی را تشکیل می دهند، می توانیم زیر مجموعه هایی را انتخاب کنیم ککلماتی که خاصیت استقلال خطی دارند.

استقلال خطی به این معنی است که هیچ یک از کلمات موجود در زیرمجموعه ای از کلمات رمز مستقل خطی را نمی توان با جمع (با استفاده از یک عبارت خطی) هیچ کلمه دیگری در آن زیر مجموعه به دست آورد.

در عین حال، هر یک از رمزهای مجاز را می توان با جمع کردن برخی از کلمات مستقل خطی به دست آورد.

بنابراین، ساخت ترکیب کدهای خطی با عملیات خطی همراه است. برای انجام چنین عملیاتی استفاده از یک دستگاه محاسبه ماتریس به خوبی توسعه یافته راحت است.

برای تحصیلات nکلمات کد بیتی از کلمات رمزگذاری شده k-bit (کدگذاری) از ماتریسی به نام مولد استفاده می کنند.

ماتریس مولد با نوشتن کلمات مستقل خطی در ستون k به دست می آید.

اجازه دهید توالی اطلاعات رمزگذاری شده را مشخص کنیم ایکسو ما آن را به صورت یک ماتریس ردیف می نویسیم ||X||بعد، ابعاد، اندازه 1* ک، مثلا:

||X||=||11001||،جایی که k=5.

یکی از روش های ساخت ماتریس مولد به شرح زیر است: از ماتریس هویت ساخته می شود. ||من|| بعد، ابعاد، اندازه k*kو ماتریس ارقام اضافی (زیاد) که در سمت راست به آن اختصاص داده شده است ||MDR||ابعاد k*r.

که در آن در ک=4

این ساختار OM یک کد سیستماتیک ارائه می دهد.

روش ساخت ماتریس MDR در زیر مورد بحث قرار خواهد گرفت.

7.4 دستور کدگذاری

کلمه رمز KS با ضرب ماتریس توالی اطلاعات به دست می آید ||X||به ماتریس مولد ||OM||:

ضرب طبق قوانین ضرب ماتریس انجام می شود: (SO on SO)

فقط باید به یاد داشته باشید که اضافه کردن در اینجا ماژول 2 انجام می شود.

بیایید بگوییم ماتریس مولد

||OM||= 0010 011

و بردار ردیف توالی اطلاعات

از آنجایی که ماتریسی که باید ضرب شود فقط یک ردیف دارد، ضرب ساده شده است. در این مورد، شما باید ردیف های ماتریس ژنراتور را مطابقت دهید ||OM||بیت های ماتریس توالی اطلاعات ||X||و ردیف هایی از ماتریس مولد را که با ارقام واحد ماتریس مطابقت دارند اضافه کنید ||X||.

توجه کنید که ||KC|| = ||X، DR||،

جایی که ||X||-توالی اطلاعات (از آنجایی که در ماتریس هویت ضرب می شود ||من||),

آ ||DR||- ارقام اضافی بسته به ماتریس ارقام اضافی ||MDR||:

|| DR ||= || X || * || MDR||

7.5 دستور رمزگشایی

در نتیجه انتقال یک کلمه رمز از طریق یک کانال، ممکن است توسط تداخل خراب شود. این باعث می شود کلمه رمز دریافت شده باشد ||PKS||ممکن است با اصل مطابقت نداشته باشد ||KS||.

اعوجاج را می توان با استفاده از فرمول زیر توصیف کرد:

|| PKS || = ||KS || + ||VO ||،

جایی که ||VO||- بردار خطا - ماتریس ردیف با بعد 1* n، با 1 در آن موقعیت هایی که در آن تحریف رخ داده است.

رمزگشایی بر اساس یافتن به اصطلاح سندرم خطای شناسه یا ماتریس ردیف است. ||OP||طول rرتبه ها ( r- تعداد بیت های اضافی یا اضافی در کلمه کد).

شناسه برای یافتن بردار خطای تخمینی استفاده می شود.

شناسه با استفاده از فرمول زیر پیدا می شود:

||OP|| = ||PKS||* ||TPM||،

جایی که ||PKS||-کلمه رمز دریافت شده و احتمالاً خراب شده است.

||TPM||،-ماتریس چک جابجا شده که از ماتریس بیت های اضافی به دست می آید ||MDR||با اختصاص ماتریس هویت به آن در زیر:

مثال ||TPM||:

از آنجا که ||PKS|| = ||KS|| + ||BO||،آخرین فرمول را می توان به صورت زیر نوشت:

||OP|| = ||KS|| * ||TPM||+||VO|| * ||TPM||.

بیایید ترم اول را بررسی کنیم.

||KC||- ماتریس ردیف، با اولین کدسته ها - اطلاعاتی

اجازه دهید اکنون ثابت کنیم که حاصلضرب کلمه رمز است ||KS||بر ||TPM||منجر به یک ماتریس صفر می شود ||0||.

از آنجا که ||KS||- ماتریس ردیف، یک روش ساده برای ضرب ماتریس های مورد بحث در بالا امکان پذیر است.

بنابراین، اولین ترم در

||OP|| = ||KS|| * ||TPM|| + ||VO|| * ||TPM||

همیشه برابر با صفر است و شناسه کاملاً به بردار خطا بستگی دارد ||VO||.

اگر اکنون چنین ماتریس بررسی را انتخاب کنیم TPM، و بنابراین MDRبه طوری که بردارهای خطای مختلف با شناسه های مختلف مطابقت دارند OP،سپس با استفاده از این شناسه ها می توان بردار خطا را یافت که در،و در نتیجه اصلاح این خطاها.

مطابقت شناسه ها با بردارهای خطا از قبل با ضرب بردارهای خطاهای تصحیح شده در پیدا می شود. TPM;

بنابراین، توانایی کد برای تصحیح خطاها به طور کامل توسط ||MDR||.برای ساخت MDRبرای کدهایی که خطاهای یکباره را تصحیح می کنند در هر خط لازم است MDRحداقل 2 واحد داشته باشد. در این مورد نیز لازم است حداقل یک تفاوت بین هر دو خط وجود داشته باشد MDR.

کدی که ما دریافت کردیم ناخوشایند است زیرا شناسه، اگرچه به طور منحصر به فرد با شماره رقم تحریف شده مرتبط است، با آن برابر نیست. برای جستجوی یک رقم تحریف شده، باید از یک جدول متناظر اضافی بین شناسه و این شماره استفاده کنید. کدهایی که در آنها شناسه به عنوان یک عدد موقعیت رقم تحریف شده را تعیین می کند پیدا و فراخوانی شد کدهای همینگ.

ساخت و ساز MDRدر مورد تصحیح چندین خطا کار بسیار دشوارتر می شود. نویسندگان مختلف الگوریتم های ساخت و ساز متفاوتی را یافته اند ||MDR ||برای این مورد، و کدهای مربوطه با نام نویسندگان آنها نامیده می شود.

اجازه دهید x1، x2، ...، xk به معنای کلمه ای از k بیت اطلاعات در ورودی رمزگذار باشد که در یک کلمه رمز C با بعد n بیت کدگذاری شده است:

ورودی رمزگذار: ایکس=[ایکس 1, ایکس 2, ...,xk]

خروجی رمزگذار: سی=[ج 1, ج 2, ..., cn]

اجازه دهید یک ماتریس مولد خاص داده شود Gn، K,

تنظیمات کد بلوک (n,ک).

ردیف های ماتریسی Gn، Kباید مستقل خطی باشد.

سپس ترکیب کد مجاز است سی، مربوط به کلمه رمزگذاری شده است ایکس:

سی=ایکس 1 g 1 + ایکس 2 g 2 + ... + x k g k.

شکل سیستماتیک (متعارف) ماتریس مولد جیاندازه کایکس n :

ماتریس مولد کد سیستماتیک یک کد بلوک خطی ایجاد می کند که در آن اولین کبیت های هر کلمه رمزی با بیت های اطلاعاتی و بقیه یکسان هستند r=n-کبیت های هر کد کلمه ترکیبی خطی هستند کبیت های اطلاعاتی

ماتریس را بررسی کنید هن، کاین دارد rایکس nعناصر، و به درستی:

سیایکس اچ تی = 0.

این عبارت برای بررسی ترکیب کد دریافتی استفاده می شود. اگر تساوی صفر برقرار نباشد، یک ماتریس ردیفی به دست می آوریم || ج 1 , ج 2 , ..., ج آر||، سندرم خطا نامیده می شود.

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

کد همینگ را با فاصله کد در نظر بگیرید د=3، به شما این امکان را می دهد که خطاهای منفرد را تصحیح کنید ( د=2qmax+1).

تعداد ترکیب کدهای مجاز برای کد با د=3، برای کد Hamming دقیقاً برابر با 2 است n/(n+1). اولین کبیت های ترکیب کد به عنوان اطلاعات استفاده می شوند و تعداد آنها برابر است

ک= log 2 (2 n/(n+1)] = n– لاگ 2 ( n+1).

این معادلهدارای راه حل های عدد صحیح ک= 0، 1، 4، 11، 26، که کدهای همینگ مربوطه را تعیین می کند: (3،1) کد، (7،4) کد، (15،11) کد، و غیره. (همیشه n=2w‑1).

ماتریس را بررسی کنید اچکد همینگ ( r=n-kخطوط و nستون ها): برای یک کد باینری (n,k)، n=2 ستون w -1 از تمام بردارهای باینری ممکن با عناصر r=n-k تشکیل شده است، به استثنای بردار با تمام عناصر صفر.

بررسی آن آسان است جیایکس اچ تی= 0 (ماتریس صفر اندازه کایکس rعناصر).

مثال.بیایید بررسی کنیم که کد هنگام ارسال پیام چگونه کار می کند ایکس=1011. ترکیب کد ارسال شده در فرم تشکیل می شود ترکیب خطی(مدول اضافه 2) ردیف های شماره 1، 3، 4 ماتریس جی 7,4:

فرض کنید کلمه رمز ارسال شده است سیخطای 0000100 تحت تأثیر قرار گرفت که منجر به آن شد سمت دریافت کنندهکلمات سی"=10111 10.



سپس، هنگام ضرب C" در ماتریس بررسی اچ تیماتریس ردیف سندرم خطا را به دست می آوریم که با آن ستون ماتریس بررسی مطابقت دارد اچبا تعداد بیت حاوی خطا.

مقایسه سندرم حاصل با رشته ها اچ T، متوجه می شویم که بیت شماره 5 در سمت چپ اشتباه است.

رمزگشای Hamming می تواند به دو صورت کار کند متقابل منحصر به فردحالت ها:

حالت تصحیح خطا (اصلاح) (از د min = 3، سپس به شما اجازه می دهد تا خطاهای منفرد را تصحیح کنید).

حالت تشخیص خطا (از د min =3، سپس خطاهای چندگانه را تشخیص می دهد q 2 پوند). اگر سندرم برابر با 0 نباشد، رمزگشا یک سیگنال خطا تولید می کند.

اگر 2 خطا در کلمه رمز دریافتی وجود داشته باشد و رمزگشا در حالت تصحیح کار کند، نمی تواند از روی سندروم تشخیص دهد که یک خطا رخ داده است یا دو و تصحیح نادرست کلمه رمز را انجام می دهد.

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

پسوند کد Hamming شامل اضافه کردن بردارهای کد با یک بیت باینری اضافی است به طوری که تعداد یک های موجود در هر کلمه کد زوج باشد. با تشکر از این، کدهای همینگ با بررسی برابری دارند مزایای زیر:

طول کد از 2 افزایش می یابد w-1 به 2 w، که از نظر انتقال و ذخیره اطلاعات راحت است.

حداقل فاصله ددقیقه کدهای توسعه یافته Hamming 4 است که تشخیص خطاهای 3 برابری (!) را ممکن می سازد.

یک بیت برابری اضافی به رمزگشا اجازه می دهد تا در حالت جدید استفاده شود حالت ترکیبی- تشخیص و تصحیح خطا

بیایید پسوندی از کد هامینگ (7،4،3) را در نظر بگیریم.

بردار هر کد سی a از کد vectorc با افزودن یک بیت برابری اضافی به دست می آید سی a = ( ج 1 , ..., ج 7, ج 8) که در آن.

ماتریس را بررسی کنید اچکد (8،4) از ماتریس بررسی کد (7،4) در دو مرحله به دست می آید:

یک ستون صفر به ماتریس کد (7،4) اضافه می شود.

ماتریس به دست آمده با یک ردیف متشکل از یک ردیف تکمیل می شود.

ما گرفتیم:

در طول رمزگشایی سندرمی

س" = سیاچتی،

و تمام اجزای s" باید برابر با 0 باشد.

در صورت یک خطا، s"(4) = 1. بر اساس مقدار سندرم (3 بیت پایین)، بیت اشتباه را پیدا کرده و تصحیح می کنیم.

در تقصیر مضاعفجزء s"(4) = 0، و سندرم با صفر متفاوت است کد استانداردوضعیت همینگ اینگونه است قبلا آشکار شده است، اما اصلاح نمی شود (درخواستی برای ارسال مجدد کلمه و غیره ارسال می شود).

بنابراین، رمزگشای توسعه یافته Hamming را می توان در یکی از دو حالت منحصر به فرد متقابل استفاده کرد:

برای تصحیح خطاهای منفرد و شناسایی خطاهای مضاعف.

برای تشخیص خطاهای سه گانه

بهترین مقالات در این زمینه