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

تبدیل فوریه

مقدمه

تبدیل فوریه

یک قضیه ریاضی می گوید که تقریبا همه توابع را می توان به عنوان مجموعه ای از دامنه های سینوسی و فرکانس های مختلف نشان داد. تبدیلات فوریه یک تکنیکی در ریاضیات است، که برای پیدا کردن دامنه ها و فرکانس های سینوسی آن می باشد. گسسته سازی تبدیلات فوریه –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

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

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