پروژه متلب کدینگ LDPC با کانال AWGN
مدولاتور و دمدولاتور ۸QAM و ۶۴QAM به همراه کدینگ LDPC یه بار با کانال AWGN و یه بار با کانال رایلی شبیه سازی کنید(کد نویسی میخوام)و خطاهاشو محاسبه کنید و مقایسه کنید. مدولاتور و دمدولاتور ۸QAM و ۶۴QAM یه بار با کدینگ LDPC یه باربا کدینگ همینگ یه بار با کانال AWGN و یه بار با کانال رایلی شبیه سازی کنید(کد نویسی میخوام)(دو حالت کدینگ و دو حالت کانال برای دو مدولاتوری که گفتم میشه هر کدوم جدا بررسی بشه یعنی هر مدولاتوری که گفتم ۴ حالت داره) و خطاهاشو محاسبه کنید و مقایسه کنید
توضیحات پروژه
در برنامه های مربوط به روش کدینگ LDPC ، M تعداد سطرها و N تعداد ستون های ماتریس LDPC را مشخص میکنند. تابع makeLdpc ماتریس مورد نظر را تشکیل می دهد. روش به این صورت است که برای هر ستون و سطر ماتریس H تعداد ۱ها به صورت تصادفی و با توزیع یکنواخت انتخاب شده اند. سپس داده ورودی در متغیر dsource تولید می شود و توسط تابع makeParityChk کد می شود. ورودی های این ماتریس کد تولید شده باینری و ماترس H و روش کدینگ میباشد. روش انتخاب شده براساس مینیمم ضرب تعداد مولفههای غیر صفر در هر ستون یا سطر منهای ۱ میباشد. بعد از کدینگ بردار parity chek به ابتدای بردار ورودی اضافه میشود. سپس داده های ورودی باینری کد شده توسط تابع QAM8-mapper (یا QAM64-mapper) به مقادیر مورد نظر در مدولاسیون مربوطه نگاشت میشوند.
در برنامه های مربوط به کانال AWGN ، نویز گوسی به مقدار بدست آمده از مرحله قبل اضافه می شود. در برنامه کانال محو شونده بردار محوشونده کانال که باعث چندمسیرگی می شود تشکیل شده و با بردار خروجی از نگاشت کننده ضرب میشود. سپس نویز گوسی ناشی از محیط به آن اضافه میگردد. در گیرنده نیز توسط تابع QAM8-Slicer (یا QAM64-Slicer) بردار شامل نمونه های تصمیم گیری تشکیل می شود. تابع QAM8-demapper (یا QAM64-demapper) عمل عکس نگاشت را انجام میدهد. سپس توسط تابع decodeLogdomain عمل دیکدینگ انجام می شود. این دیکدر از الگوریتم Log domain sum product استفاده مینماید. این الگوریتم دنباله دریافتی توسط گیرنده را در تعداد M سر قرار میدهد و آن را در ماتریس H ضرب مینماید.سپس تصمیم گیری در مورد کد دیکد شده بر اساس تابع علامت و دامنه این ماتریس و مولفه های غیر صفر H صورت میپذیرد. در پایان نیز توسط تابع متلب biterr نرخ خطای بیت محاسبه میشود. این کار برای SNR های دیگر نیز تکرار می شود.
در برنامه های مربوط به کدینگ همینگ نیز تقریبا عملیات مشابه انجام می شود. در این برنامه ها عمل نگاشت داده های باینری به سمبل های مدولاسیون مورد نظر توسط تابع bi_to_hex انجام می شود. داده باینری ارسالی و داده کد شده ارسالی نیز توسط تابع generate تولید می شود. این تابع از کدینگ hamming(4,7) استفاده مینماید. یعنی هر چهار بیت ورودی را میگیرد و سه بیت Parity check به آن اضافه مینماید. عمل دمدولاسیون توسط تابع demodulation_8QAM (یا demodulation_64QAM) انجام میشود. تابع دیکد نیز با استفاده از ماتریس parity check H عمل دیکد کردن اطلاعات را انجام می دهد. به ط.ر مشابه برای ساختن سیگنال گذرنده از کانال AWGN سیگنال مدوله شده با یک نویز گوسی با واریانس مشخص ( توسط مقدار SNR تعیین می شود) جمع می شود. این عمل را تابع متلب awgn نیز انجام می دهد. در کانال چندمسیره نیز علاوه بر جمع شدن نویز گوسی با سیگنال مدوله شده، یک بردار h ساخته شده از توزیع نرمال در سیگنال مدوله شده ضرب میشود. این ضرب عمل چندمسیرگی را در کانال شبیهسازی مینماید.
به منظور محاسبه بیت های خطا نیز از تابع biterr متلب استفاده شده است که هم تعداد بیت های خطا] و هم نرخ خطای بیت را به عنوان خروجی تحویل میدهد.
لطفاً براي ارسال دیدگاه، ابتدا وارد حساب كاربري خود بشويد