پردازش سیگنال
یکی از مهمترین ابزار های پردازش سیگنال مخصوصا در سیستم های خطی، کانولوشن و کرولیشن می باشد که در این پست قصد داریم تا به بررسی و معرفی آنها بپردازیم.
کانولوشن
از جمله عملگر های پایه برای اثر گذاری دو سیگنال بر روی همدیگر کانولوشن در حوزه زمان می باشد. همچنین در سیستم های LTI با کانولوشن ورودی و پاسخ ضربه می توان خروجی سیستم را مشخص نمود.
از آنجا که سیگنال ها بصورت پیوسته و گسسته می باشد بنابراین دو رابطه مجزا برای محاسبه کانولوشن خواهيم داشت.
% 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]')
نتايج حاصل از کانو دو سيگنال مربعي با طول غير مساوي به صورت ذوزنقه خواهد بود.
رابطه کانولوشن گسسته بصورت زیر می باشد.
همانطور که می دانید کانولوشن دو سیگنال در حوزه زمان معادل ضرب آنها در حوزه فرکانس می باشد.
( ضرب دو سيگنال در حوزه زمان (در عملیات پنجره گذاری) معادل کانولوشن آنها در حوزه فرکانسي مي باشد)
% 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]')
نتايج برای دو موج مربعي گسسته نيز در شکل زير نشان داده شده است.
کرولیشن
از کروليشن براي محاسبه ميزان شباهت دو سيگنال استفاده مي کنند. رابطه کروليشن شباهت زيادي با کانولوشن دارد با اين تفاوت که ديگر تابع دوم قرينه نمي شود. در واقع سيگنال با شيفت يافته سيگنال ديگر ضرب مي شود. در حالي در کانولوشن سيگنال با شيفت يافته قرينه سيگنال دوم ضرب مي شد.
مزيت کروليشن نسبت به کانولوشن در اين است که ميزا افست سيگنال يا هما مقدار 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] ')
همانطور که در شکل ديده مي شود اتوکروليشن در زمان صفر بيشترين مقدار را داريد. در واقع زماني سيگنال به خودش بيشترين شباهت را دارد که شيفتي را تجربه نکرده باشد.
در آموزش هاي بعدي به معرفي ساير عملگر هاي بر روي سيگنال ها مي پردازيم .