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

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

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

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

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

x(t) = sum {n=-infty}{+infty}{x_{n}}{ e^( j2pint / T_o)}

در این معادله xn ها ضرایب سری فوریه ی سیگنال (x(t هستند و توسط رابطه ی زیر داده می شوند :

 x_n= 1/T_{o} int{alpha}{alpha+T_o}x(t) e^( -j2pint/T_o) dt

در این رابطه α ثابت دلخواهی است

ولی در اکثر مواقع 0= α و یا 2/α=-To انتخاب مناسبی می باشد.

فرکانس fo=1/To  را فرکانس اصلی سیگنال متناوب یا فرکانس پایه نوسانات

و فرکانس fn=nfo را هارمونیک n ام آن می نامند.

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

سری فوریه حاصل جمع تعداد نامتناهی از توابع نوسانی ساده است ، حال به بررسی تابع ساده ای مانند تابع نمایی مختلط به عنوان ورودی سیستم می پردازیم ؛ اگر برای (x(t داشته باشیم :

x(t)=Aexp^(j2pi)

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

y(t)=int{-infty}{+infty}h(tau)A e^ ( j2pif_0( t-tau)) d tau]

 

   = A[int{-infty}{+infty}h(tau) e^ ( -j2pif_0tau) d tau]e^( j2pif_0t)

از رابطه ی به دست آمده می توان نتیجه گرفت که خروجی ، یک تابع نمایی مختلط با همان فرکانس ورودی است ؛ هرچند دامنه (مختلط ) خروجی ، همان دامنه ی (مختلط ) ورودی است که به مقدار زیر تقویت شده است:

   int{-infty}{+infty}h(tau) e^ ( -j2pif_0tau) d tau

مقدار فوق تابعی از پاسخ ضربه ی سیستم h(t)، LTI ، و فرکانس سیگنال ورودی ، f ، است.

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

به دلیل اینکه محاسبه ی پاسخ سیستم های LTI به ویژه برای ورودی های نمایی کار ساده ای میباشد در نتیجه برای تحلیل سیستم های خطی به دنبال روش هایی هستیم که بسط سیگنال ها به صورت جمع مقادیر نمایی مختلط باشد ؛

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

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

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

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

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

رسم نمودار سری فوریه نمایی در متلب :

برای  f(t) شکل موج زیر را در نظر بگیرید :

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

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

فرمول سری فوریه نمایی

F_n که در ادامه داده شده است ، ضرایب مختلط سری فوریه  f(t)  هستند .

ضرایب سری فوریه در متلب

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

اما چگونه ؟!

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

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

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

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

همچنین در نرم افزار متلب ، می توانیم با استفاده از کد زیر  :

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

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

نمودار اندازه برای رسم سری فوریه در متلب :

همانطوری که ذکر شد ، برای رسم نمودار اندازه در متلب از دستور زیر استفاده خواهیم کرد :

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

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

1
2
3
4
5
6
clc
clear all
n = -10:10;
Fn = (1./(j*n*2*pi)).*(4*exp(j*n*2*pi/7)+2*exp(-j*n*12*pi/7)-6*exp(-j*n*6*pi/7));
Fn(find(n==)) = 10/7;
stem(n,abs(Fn))

تا زمانی که مقدار ضرایب سری فوریه در n=0 ، متفاوت باشد ، ما برای یافتن این مقدار به سادگی از دستور find استفاده می کنیم .

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

1
2
clc
Fn(find(n==)) = 10/7;

محل دقیق مقدار n وقتی که صفر است را مشخص می کند . که اگر به نموداری که در ادامه آورده شده است توجه کنید می بینید که در مقدار n = 6  ، نمودار صفر شده است .

این مقدار سپس برای مشخص کردن F_n استفاده می شود .

پس مقدار F_n (6) برابر با 10/7 قرار می گیرد .

این متناظر با مقداری است که برای n=0 در نظر گرفته شده است  .

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

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

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

نمودار فاز برای رسم سری فوریه در متلب :

همانطوری که ذکر شد ، برای رسم نمودار فاز در متلب از دستور زیر استفاده خواهیم کرد :

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

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

1
2
3
4
5
6
clc
clear all
n = -10:10;
Fn = (1./(j*n*2*pi)).*(4*exp(j*n*2*pi/7)+2*exp(-j*n*12*pi/7)-6*exp(-j*n*6*pi/7));
Fn(find(n==)) = 10/7;
stem(n,angle(Fn))

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

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

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

 

اما اگر بخواهیم که سری فوریه نمایی را کوتاه کنیم و یک تقریبی از سری فوریه نمایی نسبت به تابع  f(t) داشته باشیم ، چگونه باید در نرم افزار متلب کد نویسی را انجام دهیم ؟

تقریبی از رسم نمودار سری فوریه در متلب :

برای رسم نمودار تقریبی از سری فوریه نمایی ، مثلا همان مثالی که در بالا ذکر کردیم ، یک بازه ی تقریبی را در نظر می گیریم . مثلا بازه ی -2 تا 2 را فرض می کنیم .

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

1
2
3
4
5
6
7
8
9
clc
clear all
n = -2:2;
Fn = (1./(j*n*2*pi)).*(4*exp(j*n*2*pi/7)+2*exp(-j*n*12*pi/7)-6*exp(-j*n*6*pi/7));
Fn(find(n==)) = 10/7;
t = -1:.01:6;
fapprox = Fn*exp(j*2*pi*n *t/7);
fexact = 4*(t>=-1)-6*(t>=3)+2*(t>=6);
plot(t, fapprox , t, fexact)

 

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

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

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