تعریف تابع در متلب

Functions in MATLAB


برای معرفی توابع در متلب از دستور function استفاده می شود :

function p=g(y)

در این دستور ، function به عنوان معرف تابع ، p بعنوان خروجی تابع ، g نام تابع و y ورودی تابع است. البته دستور فوق باید بهمراه یک دستور دیگر که تابع را معرفی می کند بیان استفاده شود یعنی :

function p=g(y)

p=(y*2)^(sin(y));

مقدار فوق برای y=2 برابر می شود با :

p = 3.5274

نکاتی که باید در این باره به آنها توجه کرد موارد زیر هستند :

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

??? Input argument "y" is undefined.

Error in ==> g at 2
p=(y*2)^(sin(y));

پس باید آن را بصورت یک script  بنویسید و آن را ذخیره کنید و سپس در برنامه از آن استفاده کنید. به این صورت که اگر فایل script یا m file را با نام g.m ذخیره کنید و این فایل در دایرکتوری برنامه نیز باشد ، با فرا خواندن تابع g که نام فایل با پسوند m میباشد، می توان از تابع استفاده نمود. مانند زیر:

>> p=g(2)

p =

3.5274

نکته دیگری که باید به آن توجه نمود قرار دادن ";" در آخر خط دوم می باشد ، این عمل باعث می شود تا مقدار این دستور به عنوان خروجی تابع برگردانده شود.

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

function p=g(y)
p=(y*2).^(sin(y));

حال ورودی و خروجی تابع بصورت برداری خواهد بود.

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

 

 

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

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

زمان نمونه برداری Ts خواهد بود. در این مثال از 4 مقدار برای Ts استفاده می شود. با توجه به اینکه سیگنال پس از نمونه برداری بصورت گسسته خواهد بود ، برای رسم آن از stem استفاده می شود.و برای رسم همه نمودارها در یک شکل از دستور subplot استفاده شده است.

 

برای دیدن کدهای برنامه به ادامه مطلب بوید

ادامه نوشته

بررسی سیستم توصیف شده توسط معادله دیفرانسیل در متلب

 

تابع پله در متلب بوسیله heaviside تعریف می شود.

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

در این تابع حرف D نمایانگر مشتق است و  D2 نمایانگر مشتق دوم است.

یک معادله درجه دوم به دو شرط اولیه برای y و Dy (یعنی مشتق اول y) نیاز دارد.

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

 برای دریافت کدهای برنامه به ادامه مطلب بروید.

ادامه نوشته

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

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

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

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

در زیر دو مورد شبیه سازی می شود. یک مورد با دامنه ثابت و تغییر فاز از 0 تا 3π/4 و در مورد دیگر دامنه کاهش میابد ولی تغییر فاز مانند قبلی است.یعنی دامنه خروجی نصف ورودی است.

برای دیدن کدهای برنامه به ادامه مطلب بروید....

ادامه نوشته