کانولوشن و کرولیشن سیگنال
کانولوشن و کرولیشن سیگنال
پردازش سیگنال
پردازش سیگنال یکی از حوزههای کلیدی در مهندسی برق، مخابرات، و علوم داده است که به تحلیل، اصلاح، و استخراج اطلاعات از سیگنالها میپردازد. در سیستمهای خطی و تغییرناپذیر با زمان (LTI)، دو ابزار بنیادین برای تحلیل سیگنالها کانولوشن و کرولیشن هستند. این دو مفهوم نهتنها در درک رفتار سیگنالها، بلکه در کاربردهای عملی مانند پردازش تصویر، مخابرات، و تشخیص الگو نقش مهمی دارند. در این مقاله، به بررسی مفاهیم کانولوشن، کرولیشن، و خودهمبستگی میپردازیم و با مثالهای عملی و کدهای متلب، این مفاهیم را توضیح میدهیم.
کانولوشن
کانولوشن یکی از عملیات پایهای در پردازش سیگنال است که برای مدلسازی اثر یک سیگنال بر سیگنال دیگر یا پاسخ یک سیستم به ورودی استفاده میشود. در سیستمهای LTI، خروجی سیستم از طریق کانولوشن سیگنال ورودی با پاسخ ضربه (Impulse Response) سیستم محاسبه میشود. به بیان ساده، کانولوشن نشان میدهد که چگونه یک سیگنال ورودی تحت تأثیر یک سیستم تغییر میکند.
کانولوشن پیوسته:
برای سیگنالهای پیوسته x(t) وh(t)، کانولوشن به صورت زیر تعریف میشود:

این رابطه نشان میدهد که سیگنال h(t) نسبت به زمان معکوس شده، جابهجا میشود، و باx(t) ضرب و انتگرالگیری میشود.
% programmer = Mina Naseri Nasab
clc , clear all , close all
n = 80;
t =linspace(-4,4,80);
x = zeros(1,n); x(n/2-20:n/2+20)=1;
h = zeros(1,n);; h(n/2-10:n/2+10)=2;
y = conv (x,h); % convolution
n =length (y);
t2 =linspace(-8,8,n);
figure ;
subplot 311 ; plot(t,x), title ('x[n]')
subplot 312 ; plot(t,h), title ('h[n]')
subplot 313 ; plot(t2,y), title ('y[n]')
نتايج حاصل از کانولوشن دو سيگنال مربعي با طول غير مساوي به صورت ذوزنقه خواهد بود.

کانولوشن گسسته:
برای سیگنالهای گسسته x[n] و h[n]، فرمول به شکل زیر است:

همانطور که می دانید کانولوشن دو سیگنال در حوزه زمان معادل ضرب آنها در حوزه فرکانس می باشد.
( ضرب دو سيگنال در حوزه زمان (در عملیات پنجره گذاری) معادل کانولوشن آنها در حوزه فرکانسي مي باشد)
% programmer = Mina Naseri Nasab
clc , clear all , close all
x = [0 0 1 1 1 1 1 0 0]; % x(n)
h = [0 0 2 2 2 0 0]; % h(n)
y = conv (x,h); % convolution
n1 = fix(length (h)/2) ;
n2 = fix(length (x)/2);
figure ;
subplot 311 ; stem(-n2:n2,x), title ('x[n]')
subplot 312 ; stem(-n1:n1,h), title ('h[n]')
subplot 313 ; stem(-n2-n1:n2+n1,y), title ('y[n]')
نتايج برای دو موج مربعي گسسته نيز در شکل زير نشان داده شده است.

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

مزيت کروليشن نسبت به کانولوشن در اين است که ميزا افست سيگنال يا هما مقدار dc در نتيجه آن بي اثر است. يکي از کاربرد هاي کروليشن در مخابرات محاسبه تااخير کانال مي باشد به اين صورت که کروليشن سيگنال دريافتي با مقدار سيگنال پايه را محاسبه مي کنند و در هر زماني که نتيجه حاصل بيشينه شود مقدار تاخير کانال را نشان مي دهد.
کاربردهای کرولیشن
- تشخیص تاخیر زمانی: در مخابرات، از کرولیشن برای محاسبه تأخیر کانال استفاده میشود. با مقایسه سیگنال ارسالی و دریافتی، زمانی که کرولیشن بیشینه میشود، نشاندهنده تأخیر کانال است.
- تشخیص الگو: در پردازش تصویر و صوت برای یافتن الگوهای خاص.
- آنالیز سیگنالهای تصادفی: برای بررسی خواص آماری سیگنالها.
خودهمبستگي
مفهوم ديگري که از کروليشن مورد انتظار است مفهوم خود همبستگي يا اتوکروليشن مي باشد. که در آن هبستگي سيگنال با شيفت يافته خودش محاسبه مي شود.

با اين رابطه مي توان وابستگي زماني يک سيگنال (ايستا و غير ايستايي) سيگنال ها را مورد بررسي قرار داد.
% programmer: Mina Naseri Nasab
clc , clear all , close all
x = [ 0 0 0 2 4 6 4 2 0 0 0];
h = [ 0 0 0 1 1 1 1 1 0 0 0];
y = xcorr2 (x,h);
y2 = xcorr2 (x);
n1 = fix(length (h)/2) ;
n2 = fix(length (x)/2);
figure ;
subplot 221 ; stem(-n2:n2,x), title ('x[n]')
subplot 222 ; stem(-n1:n1,h), title ('h[n]')
subplot 223 ; stem(-n2-n1:n2+n1,y ), title ('correlation x[n], y[n]')
subplot 224 ; stem(-2*n2:2*n2,y2), title ('auto correlation x[n] ')
همانطور که در شکل ديده مي شود اتوکروليشن در زمان صفر بيشترين مقدار را داريد. در واقع زماني سيگنال به خودش بيشترين شباهت را دارد که شيفتي را تجربه نکرده باشد.

کاربردهای عملی و پیشرفته
- یادگیری ماشین: کانولوشن در شبکههای کانولوشنی (CNN) برای استخراج ویژگیها از تصاویر و دادهها به کار میرود.
- پردازش تصویر: کانولوشن در فیلترهای تصویری (مانند Gaussian Blur) و کرولیشن در تشخیص الگوهای تصویری (مانند پیدا کردن یک شیء در تصویر) استفاده میشود.
- مخابرات: کرولیشن برای همگامسازی سیگنالها و تشخیص تأخیر کانال، و کانولوشن برای مدلسازی پاسخ کانال به کار میرود.
- پردازش صوت: خودهمبستگی برای تشخیص فرکانس پایه در سیگنالهای صوتی (مانند تشخیص نتهای موسیقی) استفاده میشود.
نتیجهگیری
کانولوشن و کرولیشن دو ابزار قدرتمند در پردازش سیگنال هستند که هر یک کاربردهای خاص خود را دارند. کانولوشن برای مدلسازی رفتار سیستمهای خطی و کرولیشن برای سنجش شباهت و تحلیل خواص سیگنالها استفاده میشود. خودهمبستگی نیز به عنوان شاخهای از کرولیشن، اطلاعات ارزشمندی درباره ساختار زمانی سیگنال ارائه میدهد. با استفاده از ابزارهایی مانند متلب، میتوان این مفاهیم را به صورت عملی پیادهسازی و نتایج را تجسم کرد. در آموزشهای بعدی، به بررسی سایر عملیات پردازش سیگنال مانند تبدیل فوریه و فیلترهای دیجیتال خواهیم پرداخت.
