در مخابرات٬ کدهای کانولوشنال ( به انگلیسی: convolutional code ) نوعی کد تصحیح خطا هستند که یک رشته ی m بیتی را به n بیت تبدیل می کنند که n ≥ m و m/n نرخ کدگذاری است. این تبدیل٬ در هر لحظه تابعی از k نماد قبلی است.
کدهای کانولوشنال به طور گسترده در سامانه های مخابراتی کاربرد دارند٬ از جمله در مخابرات ماهواره ای و تلفن همراه. پیش از کدهای توربو٬ عملکرد این کدها به حد شنون نزدیکترین بود.
می توان این کدها را به راحتی در متلب پیاده سازی کرد. برای نمونه سیستم زیر را به این صورتی که در ادامه می آید می توان شبیه سازی کرد:
در تصویر:
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, ) ; uncodedWord = ; codedWord1 = convenc ( uncodedWord, convCodeTrellis ) uncodedWord = ; codedWord2 = convenc ( uncodedWord, convCodeTrellis ) خروجی می شود:
codedWord1 =
1 0 1 codedWord2 =
1 0 1 1 1 0 1 1 1 0 0 0 کدهای توربو کدهای کانولوشنال که با الگوریتم ویتربی دیکد می شوند٬ در حال جایگزین شدن با کدهای توربو ( از سال ۱۹۹۳ ) هستند که عملکرد آن ها به حد شنون بسیار نزدیکتر است و الگوریتم دیکدینگ آن ها نیز از پیچیدگی محاسباتی بسیار کمتری از الگوریتم ویتربی برخوردار است.
• 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
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلفکدهای کانولوشنال به طور گسترده در سامانه های مخابراتی کاربرد دارند٬ از جمله در مخابرات ماهواره ای و تلفن همراه. پیش از کدهای توربو٬ عملکرد این کدها به حد شنون نزدیکترین بود.
می توان این کدها را به راحتی در متلب پیاده سازی کرد. برای نمونه سیستم زیر را به این صورتی که در ادامه می آید می توان شبیه سازی کرد:
در تصویر:
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, ) ; uncodedWord = ; codedWord1 = convenc ( uncodedWord, convCodeTrellis ) uncodedWord = ; codedWord2 = convenc ( uncodedWord, convCodeTrellis ) خروجی می شود:
codedWord1 =
1 0 1 codedWord2 =
1 0 1 1 1 0 1 1 1 0 0 0 کدهای توربو کدهای کانولوشنال که با الگوریتم ویتربی دیکد می شوند٬ در حال جایگزین شدن با کدهای توربو ( از سال ۱۹۹۳ ) هستند که عملکرد آن ها به حد شنون بسیار نزدیکتر است و الگوریتم دیکدینگ آن ها نیز از پیچیدگی محاسباتی بسیار کمتری از الگوریتم ویتربی برخوردار است.
• 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
wiki: کد کانولوشنال