شناسه پست: 20645
بازدید: 373

كدهاي بلوكي و كدهاي كانولوشن
فصل اول : كدهاي بلوكي و كدهاي كانولوشن  
1-1- مقدمه :
امروزه دو نوع عمومي از كدها استفاده مي شود : كدهاي بلوكي و كدهاي كانولوشن . انكدينگ  يك كد بلوكي را به تر تيبي از اطلاعات در قالب بلوكهاي پيغام از k بيت اطلاعات براي هر كدام تقسيم مي كند . يك بلوك پيغام با k مقدار باينري كه بصورت u=(u1,u2,…,uk) نشان داده مي شود ، يك پيغام ناميده مي شود . در كدينگ بلوكي از سمبل u  جهت نشان دادن k بيت پيغام از كل ترتيب اطلاعات استفاده مي گردد .
تعداد كل بيت هاي پيغام متفادت موجود  پيغام است . انكدر هر پيغام u را بطور غير وابسته ، بصورت يك n  تايي v=(v1,v2,…,vn)  كه كلمه كد (codeword) ناميده مي شود ، ارسال مي دارد . در كدينگ بلوكي سمبل v براي مشخص كردن سمبل بلوك از كل ترتيب انكد شده استفاده مي گردد .
از  پيغام قابل ساخت ،  كلمه كد مختلف در خروجي انكدر قابل ايجاد است . اين مجموعه  كلمات كد با طول n يك كد بلوكي (n,k) ناميده مي شود. نسبت R=k/n  نرخ كد ناميده مي شود . نرخ كد مي تواند تعداد بيتهاي اطلاعات كه انكد مي شود را در هر سمبل انتقال يافته ،محدود كند . در حالتيكه n  سمبل خروجي كلمه كد كه فقط به k  بيت ورودي پيغام وابسته باشد ، انكدر را بدون حافظه (memory-less) گويند . انكدر بدون حافظه با تركيبي از مدارات لاجيك قابل ساخت يا اجرا است . در كد باينري هر كلمه كد v باينري است . براي اينكه كد باينري قابل استفاده باشد ، بعبارت ديگر براي داشتن كلمات كد متمايز بايد  يا  باشد . هنگاميكه k<n  باشد ، n-k  بيتهاي افزونگي (redundant) مي تواند به بيتهاي يك پيغام اضافه گردد و كلمه كد را شكل دهد . اين بيتهاي اضافه شده توانايي كد را در مبارزه با نويز كانال فراهم مي آورد . با نرخ ثابتي از كد ، بيت هاي افزونگي بيشتري را مي توان با افزايش دادن طول بلوك n از كد ، با پيغام جمع كرد و اين تا هنگامي است كه نسبت k/n  ثابت نگه داشته شود .
چگونگي انتخاب بيت هاي افزونگي تا اينكه ارسال قابل اطميناني در يك كانال نويزي داشته باشيم از اصلي ترين مسائل طراحي يك انكدر است .
انكدر يك كد كانولوشن نيز به همان ترتيب ، k بيت بلوكي از ترتيب اطلاعات u را مي پذيرد و ترتيب انكد شده ( كلمه كد ) v با n   سمبل بلوكي را مي سازد . بايد توجه كرد كه در كدينگ كانولوشن سمبل هاي u و v جهت مشخص كردن بلوكهاي بيشتر از يك بلوك استفاده مي گردند . بعبارت ديگر هر بلوك انكد شده اي نه تنها وابسته به بلوك پيغام k بيتي متناظرش است ( در واحد زمان )‌ بلكه همچنين وابسته به m  بلوك پيغام قبلي نيز مي باشد .  در اين حالت انكدر داراي حافظه (memory )  با مرتبه m  است .
محصول انكد شده ترتيبي است از يك انكدر k ورودي ، n خروجي با حافظه مرتبه m  كه  كد كانولوشن (n,k,m) ناميده مي شود . در اينجا نيز R=k/n نرخ كد خواهد بود و انكدر مذكور با مدارات لاجيك ترتيبي قابل ساخت خواهد بود . در كد باينري كانولوشن ، بيت هاي افزونگي براي تقابل با كانال نويزي مي تواند در حالت k<n  يا R<1  به ترتيب اطلاعات اضافه مي گردد .
معمولاً k و n اعداد صحيح كوچكي هستند و افزونگي بيشتر با افزايش مرتبه حافظه از اين كدها بدست مي آيد . و از اين رو k و n و در نتيجه R  ثابت نگه داشته مي شود .
اينكه چگونه استفاده كنيم از حافظه تا انتقالي قابل اطمينان  در يك كانال نويزي داشته باشيم ، از مسائل مهم طراحي انكدر ها محسوب مي شود .
1-2– ماكزيمم احتمال ديكدينگ  Maximum Likelihood Decoding
يك بلوك دياگرام از سيستم كد شده در يك كانال AWGN با كوانتيزاسيون محدود خروجي در شكل 1 نشان داده شده است :
در اين سيستم خروجي منبع u نشاندهنده پيغام k بيتي ، خروجي انكدر ، v  نشاندهنده كلمه كد n- سمبلي خروجي ديمدولاتور ، r نشاندهنده آرايه Q دريافت شده n تايي متناظر و خروجي ديكدر  نشاندهنده تخميني از پيغام انكد شده k بيتي است . در سيستم كد شده كانولوشن ، u ترتيبي از kl بيت اطلاعات و v يك كلمه كد است كه داراي N=nl+nm=n(l+m) سمبل مي باشد . kl طول ترتيب اطلاعات و N طول كلمه كد است . سرانجام nm سمبل انكد شده بعد از آخرين بلوك از بيتهاي اطلاعات در خروجي ايجاد مي گردد . اين عمل در طول m واحد زماني حافظه انكدر انجام مي پذيرد . خروجي دي مدولاتور ، r يك N تايي دريافت شده Q- آرايه اي است و خروجي  يك تخمين از ترتيب اطلاعات مي باشد. در واقع ديكدر مي بايستي يك تخمين  از ترتيب اطلاعات u براساس ترتيب دريافت شده r توليد نمايد . پس يك تناظر يك به يك بين ترتيب اطلاعات u و كلمه كد v وجود دارد كه ديكدر بر اين اساس مي تواند يك تخمين  از كلمه كد v بدست آورد . روشن است كه در صورتي  است ، اگر و فقط اگر  .