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

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

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

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

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

  1. سیگنال های زمان پیوسته ( سیگنال های پیوسته در زمان)
  2. سیگنال های زمان گسسته (سیگنال های گسسته در زمان )

تعریف سیگنال زمان پیوسته یا سیگنال پیوسته در زمانسیگنال های زمان پیوسته یا سیگنال های یوسته در زمان به سیگنال هایی گفته می شود که در آن متغیر مستقل زمان می تواند هر مقداری اختیار کند ؛

یعنی در واقع محور زمان برای این نوع از سیگنال ها پیوسته می باشد .

تعریف سیگنال زمان گسسته یا سیگنال گسسته در زمان : سیگنال های زمان گسسته یا سیگنال های گسسته در زمان به سیگنال هایی گفته می شود که در آن متغیر فقط مقدار های صحیح را انتخاب می کند ؛

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

در مورد 7 ویژگی مهم و کاربردی سیگنال ها و سیستم ها با هم نکاتی را بررسی نمودیم که بسیار مورد استفاده قرار می گرفتند.

حال با ذکر مثالی به نحوه ی محاسبه ی کانولوشن دو سیگنال گسسته در زمان در متلب می پردازیم.

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

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

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

به عنوان اولین مثال از محاسبه ی کانولوشن دو سیگنال گسسته

دو سیگنال زیر را در نظر بگیرید :

حتما بخوانید:  مدولاسیون DSB در متلب : چگونگی شبیه سازی مدولاسیون DSB در نرم افزار متلب

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

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

پس باید مقدار کانولوشن بین x و h  را محاسبه نماییم تا خروجی y حاصل شود .

در نهایت عبارت y را محاسبه و به دست آوردیم، می توانیم نمودار y را رسم نماییم .

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

رسم سیگنال x و رسم سیگنال h :

برای رسم سیگنال ها طبق توابع ضربه ای که در رابطه ی x و h داده شده است خواهیم داشت :

رسم سیگنال پیام گسسته

رسم سیگنال پاسخ پله

حال که دو سیگنال x و h را رسم نمودیم ،

دو متغیر N و M را به صورت زیر تعریف میکنیم که :

M : نشانگر اولین مقدار غیر صفر در سیگنال x می باشد.

N : نشانگر اولین مقدار غیر صفر در سیگنال h می باشد .

که در x و h داده شده در بالا ، مقدار M و N نیز برابر صفر خواهد بود .

یعنی در واقع اولین مقدار غیر صفر را در n برابر با صفر برای دو سیگنال x و h خواهیم داشت .

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

حل کانولوشن

حال می خواهیم بدانیم اولین خروجی y در چه مقداری غیر صفر خواهد بود ؟

و یا اینکه اولین مقدار غیر صفر خروجی y که حاصل کانولوشن x و h می باشد چه عددی خواهد بود ؟

برای اینکه محاسبه کنیم اولین خروجی y در چه مقداری غیر صفر است کافی است که مقدار N و M به دست آمده در بالا را با هم جمع کنیم .

در مثالی که داشتیم چون M و N مقدار صفر داشتند ، حاصل نیز صفر شد .

اینکه حاصل صفر می باشد به این معنی است که اولین خروجی غیر صفر y در صفر می باشد .

به دست آوردن خروجی کانولوشن

محاسبه ی مقدار کانولوشن دو سیگنال گسسته x و h :

برای محاسبه ی مقدار کانولوشن دو سیگنال گسسته می توانیم از فرمول رایجی که در ریاضیات وجود دارد ، استفاده نماییم.

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

با این روش به سادگی به نتیجه و حاصل کانولوشن دو سیگنال گسسته x و h میرسیم.

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

سپس ضرایب h را می نویسیم .

و در نهایت به ازای هر مقدار h به صورت زیر عملیات جمع و ضرب را انجام می دهیم :

محاسبه کانولوشن به روش ساده

در واقع عملیات ضرب و توان و جمع در این روش به این صورت می باشد که :

به ازای هر مقدار h که داریم مقادیر x را افزایش می دهیم .

مثلا در این محاسبه ی کانولوشن دو سیگنال گسسته حاضر در ابتدا خود مقادیر x را نوشته

حتما بخوانید:  3 راه ساده برای طراحی فیلتر باترورث در متلب

سپس مقادیر x را به خاطر وجود مقدار 2 در h ، به توان 2 می رسانیم

و به همین روش تا توان 4 از x را می نویسیم .

در نهایت هر چهار مقدار فوق را باهم جمع کرده و به ضرایب خروجی y خواهیم رسید .

پس عبارت خروجی برای حاصل کانولوشن دو سیگنال گسسته x و h داده شده به صورت زیر خواهد بود :

محاسبه خروجی کانولوشن به روش ساده

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

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

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

و توانستیم که خروجی را برای کانولوشن دو سیگنال گسسته x و h با ساده ترین روش ممکن به دست بیاوریم .

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

پس داریم :

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

و اما چگونه کد نویسی را برای محاسبه ی کانولوشن دو سیگنال گسسته در زمان در متلب را داشته باشیم ؟

همچنین چگونه خروجی حاصل از کانولوشن دو سیگنال گسسته در زمان در متلب را رسم نماییم ؟ 

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

1
2
3
x = [5 10 15 20];
h = [1 2 3 4];
y = conv(x,h)

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

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

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

و اما اگر بخواهیم که نتیجه ی حاصل یعنی خروجی y را به ازای کانولوشن دو سیگنال گسسته در زمان داده شده در متلب را رسم نماییم بایستی به چه صورتی کد نویسی انجام دهیم ؟

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

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

حتما بخوانید:  چگونه می توانیم نمودار سری فوریه را در نرم افزار متلب رسم کنیم ؟

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

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

سپس با مشخص کردن مقادیر و بازه های دلخواه رسم نمودار های سیگنال های x و h

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

1
2
3
4
5
6
7
8
9
10
11
12
13
x = [5 10 15 20];
h = [1 2 3 4];
y = conv(x,h);
subplot(3,1,1),stem(:length(x)-1,x);
axis([-1,7,,25]);
ylabel('x[n]');
subplot(3,1,2),stem(:length(h)-1,h);
axis([-1,7,,5]);
ylabel('h[n]');
subplot(3,1,3),stem(:length(y)-1,y);
axis([-1,7,,130]);
ylabel('y[n]');
xlabel('sample value');

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

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

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

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

رسم کانولوشن دو سیگنال گسسته در متلب,رسم کانولوشن در متلب

توجه داشته باشید که همانطوری که از نمودار های بالا نیز که از نرم افزار متلب به دست آمدند مشخص است ، اولین مقدار غیر صفر خروجی y در عدد صفر می باشد .

 

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

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

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

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

دیدگاهتان را بنویسید

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