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

تبدیل فوریه

مقدمه

تبدیل فوریه

یک قضیه ریاضی می گوید که تقریبا همه توابع را می توان به عنوان مجموعه ای از دامنه های سینوسی و فرکانس های مختلف نشان داد. تبدیلات فوریه یک تکنیکی در ریاضیات است، که برای پیدا کردن دامنه ها و فرکانس های سینوسی آن می باشد. گسسته سازی تبدیلات فوریه –Discrete Fourier Transform  – (DFT) یک الگوریتم که محاسبات برای داده های عددی می باشد. تبدیل فوریه سریع یک  اجرا و پیاده سازی موثر و کارآمدی است. توبع زیر در متلب تبدیلات فوریه و عملیات مرتبط را انجام می دهد:

تبدیل فوریه سریع یک بعدی fft
تبدیل فوریه سریع دو بعدی fft2
تبدیل فوریه سریع چند بعدی fftn
انتقال کندی (عقب افتادگی) صفر به مرکز تبدیل fftshift
معکوس تبدیل فوریه سریع یک بعدی ifft
معکوس تبدیل فوریه سریع دو بعدی ifft2
معکوس تبدیل فوریه سریع چند بعدی ifftn
قدر مطلق (اندازه اعداد مختلط) abs
زاویه angle
مرتب کردن اعداد مختلط بر اساس جفت های مزدوج مختلط cplxpair
توان دو به بعد nextpow2
زاویه فاز صحیح unwarp

دستور fft برای یک بردار ستونی:

>> y = [2 0 1 0 2 1 1 0]’;>> Y= fft (y)

 

Y =

 

7.0000

-0.7071 + 0.7071i

2.0000 – 1.0000i

0.7071 + 0.7071i

5.0000

0.7071 – 0.7071i

2.0000 + 1.0000i

-0.7071 – 0.7071i

اولین مقدار Y مجموع عناصر y است، و دامنه هایی که ازفرکانس های صفر یا ثابت هستند جزئی از سری فوریه هستند. عبارات 2 تا 4 (اعداد مختلط) دامنه هایی از فرکانس های مثبت مولفه های فوریه هستند. عبارت 5 دامنه ای از عنصر در فرکانس نایکوئیست، که نیمی از فرکانس نمونه برداری شده است. سه عبارت آخرمولفه های فرکانس های منفی هستند، که برای سیگنال های واقعی(real) ترکیبات اعداد مختلط از مولفه های فرکانس های مثبت هستند.

تابع fftshift  برای تنظیم یک تبدیل فوریه که در آن منفی و مثبت در دو طرف فرکانس صفر قرار می گیرد.

fftshift(Y) 

ans =

 

5.0000

0.7071 – 0.7071i

2.0000 + 1.0000i

-0.7071 – 0.7071i

7.0000

-0.7071 + 0.7071i

2.0000 – 1.0000i

0.7071 + 0.7071i

و قدر مطلق Y برابر است با:

>> abs(Y) 

ans =

 

7.0000

1.0000

2.2361

1.0000

5.0000

1.0000

2.2361

1.0000

معکوس سری فوریه Y را با تابع ifft بدست می آوریم:

>> ifft(Y) 

ans =

 

2.0000

-0.0000

1.0000

0

2.0000

1.0000

1.0000

0

 

>> y

 

y =

 

2

0

1

0

2

1

1

0

 

ابتدا باید یک سمبل انتخاب کنیم:

symsx

سپس باید تابع پله خواسته شده را بر اساس دو تابع پله صعودی ونزولی نوشت:

f = heaviside(x+1)-heaviside(x-1);

سپس مقادیر  فرمولی مقدار DC  و ضرایب سری فوریه را وارد می کنیم و در یک لوپ که N بار تکرار می شود قرار می دهیم

N تعداد ضرایب سری فوریه است:

N=10;

a_0=(1/pi)*int(f,-1.5,1.5);

for n=1:N

a_n(n)=(1/pi)int(fcos(n*x),-1.5,1.5);

b_n(n)=(1/pi)int(fsin(n*x),-1.5,1.5);

end

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

fourier(f)

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

subs(a_0)

subs(a_n)

subs(b_n)

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

ans =

  • (- sin(w) + cos(w)i)/w + (sin(w) + cos(w)i)/w

a0 =

0.6366

an =

0.5357    0.2894    0.0299   -0.1204   -0.1221   -0.0296    0.0598    0.0787    0.0292   -0.0346

bn =

0     0     0     0     0     0     0     0     0     0

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

clearall;

clc;

symsx

f = heaviside(x)-heaviside(x-2);

N=10;

a_0=(1/pi)*int(f,-1.5,1.5);

for n=1:N

a_n(n)=(1/pi)int(fcos(n*x),-1.5,1.5);

b_n(n)=(1/pi)int(fsin(n*x),-1.5,1.5);

end

TABDIL_FOURIE=fourier(f)

a0=subs(a_0)

an=subs(a_n)

bn=subs(b_n)

خروجی متلب هم به این گونه اند:

TABDIL_FOURIE =

(sin(2w) + cos(2w)*i)/w – i/w

a0 =

0.4775

an =

0.3175    0.0225   -0.1037   -0.0222    0.0597    0.0219   -0.0400   -0.0213    0.0284    0.0207

bn =

0.2958    0.3167    0.1285    0.0032    0.0416    0.1014    0.0671    0.0062    0.0143    0.0560

همانگونه که دیده می شود این بار bn صفر نیست زیرا دیگر تابع زوج نمی باشد که درستی روابط را به ما نشان می دهد

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

 

 

سعید عربعامری
من سعید عربعامری نویسنده کتاب 28 گام موثر در فتح متلب مدرس کشوری متلب و سیمولینک و کارشناس ارشد مهندسی برق قدرتم . بعد از اینکه دیدم سایتهای متعدد یک مجموعه کامل آموزش متلب و سیمولینک ندارند به فکر راه اندازی این مجموعه شدم
http://sim-power.ir

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

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