کد کانولوشنال
در مخابرات، کدهای کانولوشنال (به انگلیسی: convolutional code) نوعی کد تصحیح خطا هستند که یک رشتهی m بیتی را به n بیت تبدیل می کنند که n ≥ m و m/n نرخ کدگذاری است. این تبدیل٬ در هر لحظه تابعی از k نماد قبلی است.
کدهای کانولوشنال به طور گسترده در سامانههای مخابراتی کاربرد دارند٬ از جمله در مخابرات ماهوارهای و تلفن همراه. پیش از کدهای توربو٬ عملکرد این کدها به حد شنون نزدیکترین بود.
پیادهسازی در متلب
[ویرایش]میتوان این کدها را به راحتی در متلب پیادهسازی کرد. برای نمونه سیستم زیر را به این صورتی که در ادامه میآید میتوان شبیهسازی کرد:
در تصویر:
- n1 = m1 m0 m-1
- n2 = m0 m-1
- n3 = m1 m-1.
G1 = 7;% octal 7 corresponds to binary 111 n1 = m1 m0 m-1
G2 = 3;% octal 3 corresponds to binary 011 n1 = m0 m-1
G3 = 5;% octal 5 corresponds to binary 101 n1 = m1 m-1
constLen = 3; % Constraint length
% Create the trellis that represents the convolutional code
convCodeTrellis = poly2trellis(constLen, [ G1 G2 G3 ]);
uncodedWord = [1 ];
codedWord1 = convenc(uncodedWord, convCodeTrellis)
uncodedWord = [1 0 0 0];
codedWord2 = convenc(uncodedWord, convCodeTrellis)
خروجی می شود:
codedWord1 =
1 0 1
codedWord2 =
1 0 1 1 1 0 1 1 1 0 0 0
کدهای توربو
[ویرایش]کدهای کانولوشنال که با الگوریتم ویتربی دیکد میشوند٬ در حال جایگزین شدن با کدهای توربو (از سال ۱۹۹۳) هستند که عملکرد آنها به حد شنون بسیار نزدیکتر است و الگوریتم دیکدینگ آنها نیز از پیچیدگی محاسباتی بسیار کمتری از الگوریتم ویتربی برخوردار است.
منابع
[ویرایش]- مشارکتکنندگان ویکیپدیا. «convolutional code». در دانشنامهٔ ویکیپدیای انگلیسی، بازبینیشده در ۲۴ اردیبهشت ۱۳۹۲.
مطالعه بیشتر
[ویرایش]- Andrew Viterbi (۱۹۷۹). Principles of Digital Communications and Coding. McGraw-Hill.
پیوند به بیرون
[ویرایش]- فصل ۴۸ کتاب برخط The on-line textbook: Information Theory, Inference, and Learning Algorithms, by David J.C. MacKay