آموزش کانولوشن به زبان ساده در متلب

آموزش کانولوشن به زبان ساده در متلب

در حوزه ی زمان وقتی می خواهیم می خواهیم دو سیگنال را در هم ضرب کنیم ، همانند روش معمولی ضرب ریاضی اقدام می کنیم . ولی در حوزه ی فرکانس برای ضرب دو سیگنال باید از طریق کانولوشن 2 سیگنال این عمل را انجام دهیم . در این پست هدف ما آموزش کانولوشن به زبان ساده  همراه با آموزش متلب دو سیگنال در متلب  می باشد .

قدم اول در آموزش کانولوشن به زبان ساده در متلب : کانولوشن چیست ؟

کانولوشن (به انگلیسی: Convolution) در ریاضیات ، یک عملگر ریاضی است که بر روی دو تابع x و h عمل کرده ، و تابع سومی را تولید می‌کند که می‌توان به عنوان نسخه تصحیح شده یکی از دو تابع اصلی نگریسته شود. کانولوشن مشابه تابع هم بستگی است.

کاربردهای این عملگر شامل آمار، بینایی رایانه‌ای، پردازش تصویر،پردازش سیگنال، مهندسی برق و معادلات دیفرانسیل می‌شود.

 

کانولوشن 2 تابع :

برای ضرب دو تابع در حوزه ی زمان می توان از خاصیت ضرب استفاده کرد ؛ اما زمانی که بخواهیم دو تابع را در حوزه ی فرکانس داشته باشیم بایستی کانولوشن 2 تابع را به دست بیاوریم .

کانولوشن 2 تابع رابطه ی ریاضی به صورت زیر دارد :

\( \LARGE z=x * h \)

علامت * نشان کانولوشن است .

کد متلب کانولوشن 2 تابع در نرم افزار متلب به صورت زیر خواهد بود :

1
2
3
clc
clear
z=conv(x,h)
به عنوان مثال برای هر x و h دلخواهی می توان به صورت زیر در نرم افزار متلب کد نویسی انجام داد :

1
2
3
4
5
clc
clear
x=[2 6 8 10 12];
h=[4 8 12 16 21];
z=conv(x,h);
در صورتی که کد بالا را در نرم افزار متلب اجرا کنیم ، حاصل z به صورت زیر خواهد بود :
کانولوشن 2 سیگنال
 پس برای کانولوشن دو تابع دلخواه در نرم افزار متلب می توان از عبارت conv استفاده کرده و کانولوشن را به سادگی حل نمود .

آموزش کانولوشن دو سیگنال در متلب :

 

کانولوشن در سیستم های مخابراتی :

حال که با آموزش ساده ای از کانولوشن در نرم افزار متلب آشنا شدیم ، به بررسی کانولوشن در سیستم های مخابراتی می پردازیم.

حتما بخوانید:  فرآیندهای تصادفی در متلب : آموزش فرآیندهای تصادفی با استفاده از متلب

در اینجا مروری دوباره بر مطالب پست مربوط به آموزش سری فوریه با متلب ، بخش بررسی پاسخ ضربه یک سیستم تغییر ناپذیر با زمان (LTI) خواهیم داشت :

سیستم تغییر ناپذیر با زمان را به صورت زیر در نظر گرفتیم :

LTI Systems

رابطه ی ورودی – خروجی سیستم خطی تغییر ناپذیر با زمان را با کانولوشن از طریق معادله زیر به دست می آوریم:

\( \LARGE y(t)=x(t) * h(t) \)

\( \LARGE  =\int_{n=-\infty}^{+\infty} x(\tau) * h( t- \tau)d \tau \)

که در رابطه ی بالا  (h(t نشان دهنده ی پاسخ ضربه ی سیستم ، (x(t سیگنال ورودی و (y(t سیگنال خروجی می باشد. طریقه ی پیدا کردن پاسخ ضربه را نیز در این پست بررسی کردیم . حال به بررسی کانولوشن در سیستم های مخابراتی می پردازیم :

در سیستم های مخابراتی دو سیگنال اصلی داشتیم :

  1. سیگنال پیوسته
  2. سیگنال گسسته

حال بررسی آموزش کانولوشن به زبان ساده در این دو سیگنال پیوسته و سیگنال گسسته را شروع می کنیم :

کانولوشن دو سیگنال گسسته :

سیگنال گسسته ، سیگنالی است که فقط متغیر های با مقدار صحیح را شامل می شود .

در سیگنال های گسسته هیچ زمانی بین دو زمان متوالی مقدار ندارد.

کانولوشن دو سیگنال گسسته از طریق معادله ی زیر بیان می گردد :

\( \LARGE y[n] = \sum_{n=-\infty}^{+\infty}(x[n] * h[n-k]) \)

\( \LARGE =  x[n] * h[n] \)

خواص و ویژگی های کانولوشن :/

الف ) خاصیت جابه جایی :

خاصیت جابه جایی در کانولوشن صدق می کند ، یعنی اگر جای دو سیگنال یا دو تابع در کانولوشن با هم عوض شوند باز هم جواب کانولوشن تغییر نخواهد کرد .

ب ) خاصیت شرکت پذیری :

خاصیت شرکت پذیری در کانولوشن سه سیگنال یا سه تابع نیز برقرار است .

به فرمول شکل زیر توجه کنید :

خاصیت جابه جایی

خاصیت شرکت پذیری به صورت تساوی بالا بیان می گردد .

ج) خاصیت توزیع پذیری

خاصیت توزیع پذیری نیز در کانولوشن سه سیگنال یا سه تابع برقرار می باشد .

حتما بخوانید:  تبدیل z در متلب ، از صفر تا صد !
د) تاثیر شیفت زمانی

تاثیر شیفت زمانی در کانولوشن به صورت زیر می باشد :

شیفت زمانی در کانولوشن دو سیگنال

تساوی بالا برای تاثیر شیفت زمانی در کانولوشن به این معنی است که  : شیفت زمانی در دو سیگنال ، در کانولوشن دو سیگنال نیز تاثیر گذاشته و به همان اندازه که دو سیگنال شیفت داده شده اند ، کانولوشن نیز شیفت پیدا خواهد کرد .

ه) اثر ضریب

در صورتی که مقدار ثابتی به کانولوشن دو سیگنال یا دو تابع ضرب شود ، در نهایت در کانولوشن این دو سگینال و دو تابع نیز اثر گذاشته و به همان مقدار ضرب خواهد شد .

برای اینکه کانولوشن  دو سیگنال گسسته به دست آوریم ، می توان از طریق مثال زیر این کانولوشن را در نرم افزار متلب کد نویسی کرد :

مثال :

برای دو سیگنال دلخواه زیر کانولوشن را به محاسبه نمایید :

\( \LARGE x=[1 1 1 1 1] \)

\( \LARGE h=[1 0 1 0 1 1 0 0 0 1] \)

x و h  داده شده را به صورت ماتریسی در نرم افزار متلب نوشته و سپس کانولوشن این دو سیگنال را با دستور conv به صورت زیر کد نویسی می کنیم :

1
2
3
4
5
6
clc
clear
x=[1 1 1 1 1];
h=[1 1 1 1 1];
z=conv(x,h);
stem(z)

نمودار کد بالا در نرم افزار متلب پس از اجرای کد به صورت زیر خواهد بود :

کانولوشن 2 سیگنال

 

کانولوشن دو سیگنال پیوسته :

کانولوشن دو سیگنال در حوزه پیوسته نیز همانند حوزه گسسته می باشد ، با این تفاوت که به جای n ها در فرمول کانولوشن t قرار گرفته ، معادله ای به صورت زیر خواهد داشت :

کانولوشن دو سیگنال پیوسته در زمان

خواص کانولوشن دو سیگنال پیوسته :

تمامی خواصی که در کانولوشن دو سیگنال گسسته در بالا ذکر شد ، در اینجا نیز صادق خواهد بود .

الف ) خاصیت جابه جایی

ب ) خاصیت توزیع پذیری

ج ) خاصیت شرکت پذیری

د ) اثر شیفت زمانی

ه ) اثر ضریب

تمامی تساوی های کانولوشن دو سیگنال در حوزه پیوسته نیز به صورت تساوی های کانولوشن دو سیگنال در حوزه گسسته است با این تفاوت که به جای تمامی n ها بایستی t قرار دهیم .

حتما بخوانید:  محاسبه ضرایب سری فوریه در متلب به ساده ترین روش

 

*کانولوشن دو سیگنال گسسته ، نموداری به صورت گسسته خواهد داشت.

کانولوشن دو سیگنال پیوسته نیز به صورت کانولوشن دو سیگنال گسسته بیان می شود . با این تفاوت که بازه های تناوب دو سیگنال پیوسته نیز مد نظر خواهند بود .

دومین قدم در آموزش کانولوشن دو سیگنال در متلب  : محاسبه کانولوشن به روش ریاضی :

در بعضی موارد برای محاسبه ی انتگرال کانولوشن دانشجو با مشکل مواجه شده و نمی تواند به سادگی روش ها و خواصی که بیان شد به محاسبات کانولوشن بپردازد . در اینجا به بررسی حل کانولوشن با راه حلی ریاضی خواهیم پرداخت .

دو تابع یا سیگنالی که داریم را باید در این روش به صورت توابع پایه ای ریاضی بنویسیم .

ساده ترین تابع پایه ی ریاضی در این روش ، تابع ضربه می باشد که در پست های گذشته به بررسی در مورد این تابع پرداختیم .

هر کدام از دو تابع یا دو سیگنال داده شده را به صورت تابعی ضربه نوشته و سپس به سادگی می توانیم عملیات کانولوشن را انجام دهیم .

آموزش کانولوشن به زبان ساده همراه ویدیو :

در فیلم آموزشی زیر می توانید آموزش کانولوشن به زبان ساده را به ساده ترین حالت ممکن فرا بگیرید .

فیلم آموزشی زیر حاوی  نحوه ی محاسبه ی کانولوشن در نرم افزار متلب همراه با تمامی کد متلب های این محاسبه می باشد :

 

برای دانلود نسخه کامل فیلم روی کلید زیر کلیک کنید.

[insert_php]
if (isset($_COOKIE[‘wordpress_logged_in_a680c8a5862b7e2f09a246d3b7370f78’]))
{
echo ”

“;
}
else
{
echo ”

“;
}
[/insert_php]

 

در پست های آینده سایت بررسی پیشرفته تری در مورد آموزش کانولوشن به زبان ساده در متلب سیگنال های پیوسته و گسسته همراه با کدنویسی متلب هر کدام از سیگنال ها ، خواهیم داشت .

 

4 دیدگاه در “آموزش کانولوشن به زبان ساده در متلب

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.