تبدیل فوریه سریع

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

تبدیل فوریۀ سریع (Fast Fourier transform - FFT) نام الگوریتمی‌ست برای انجام تبدیلات مستقیم و معکوس فوریۀ گسسته به صورتی سریع و بسیار کارآمد. تعداد زیادی الگوریتم‌های تبدیل فوریه سریع مجزا وجود دارد.

یک تبدیل فوریه سریع تجزیه یک رشته از مقادیر به مؤلفه‌هایی با فرکانس‌های متفاوت است. این عملیات در بسیاری از رشته‌ها مفید است (ویژگی‌ها و کاربردهای تبدیل فوریه گسسته را مشاهده کنید) اما محاسبه مستقیم آن از تعریف گاهی اوقات در عمل بسیار کند است. تبدیل فوریه سریع یک راه برای محاسبه همان نتایج به‌طور سریع تر است؛ محاسبه تبدیل فوریه گسسته برای n نقطه با استفاده از تعریف عملیات ریاضی نیاز دارد در حالی که تبدیل فوریه سریع می‌تواند همان نتایج را در عملیات، محاسبه نماید.

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

این تفاوت در سرعت می‌تواند بسیار چشمگیر باشد، مخصوصاً برای مجموعه داده‌های بزرگ. در جایی که n ممکن است در عمل هزاران یا میلیون‌ها باشد، زمان محاسبه در برخی موارد می‌تواند به اندازه چند مرتبه کاهش پیدا کند و بهبود آن در حدود مرتبه‌است. این بهبود عظیم موجب شده تا بسیاری از الگوریتم‌های عملی تبدیل فوریه گسسته را به صورت تبدیل فوریه سریع پیاده‌سازی نمایند؛ بنابراین تبدیل فوریه سریع در محدوده متنوعی از کاربردها از پردازش سیگنال دیجیتال و حل معادلات دیفرانسیل با مشتقات جزئی (پاره‌ای) تا ضرب مقادیر بزرگ صحیح به کار می‌رود.

از تبدیل فوریه سریع به عنوان «مهم‌ترین الگوریتم عددی عصر زندگی ما» یاد می‌شود.

تاریخچه

در طول تمامی سده گذشته و به خصوص در طی ۵۰ سال آخر آن صنایع گوناگون و رشته‌های مختلف دانشگاهی را می‌توان ذکر کرد که به واسطه اعمال ایده‌ها و تکنیک‌های گوناگون فوریه به نحو کاملی شکوفا و پررونق شده‌اند.

تعریف و سرعت

تبدیل فوریه سریع تبدیل فوریه گسسته را محاسبه می‌کند و دقیقاً همان نتایجی را تولید می‌کند که مستقیماً با تعریف تبدیل فوریه گسسته به دست می‌آید تنها تفاوت آن این است که بسیار سریع تر است.

اگر اعداد مختلط x۰، ....، xN-1 را در نظر بگیریم تبدیل فوریه گسسته با فرمول زیر تعریف می‌شود:

محاسبه مستقیم با این تعریف نیازمند عملیات است در حالی که N خروجی و هر خروجی نیازمند جمع N جمله‌است یک تبدیل فوریه سریع روشی است برای محاسبه همان نتایج در زمان عملیات به‌طور دقیق تر همه الگوریتم‌های شناخته شده تبدیل فوریه سریع نیازمند عملیات هستند (البته از لحاظ فنی O فقط یک باند بالا مشخص می‌کند) درحالی که تاکنون حقیقت ثابت شده‌ای وجود ندارد که پیچیدگی بهتر غیرممکن است.

برای نشان دادن ذخیره یک تبدیل فوریه سریع، می‌توان تعداد ضرب‌ها و جمع‌های مختلط را شمارش نمود. در عمل، کارایی واقعی روی رایانه‌های مدرن با فاکتورهایی غیر از علم حساب می‌باشد و یک موضوع پیچیده‌است اما بهبود کلی از به همچنان باقی است.

الگوریتم

Cooley–Tukey FFT algorithm رایج‌ترین الگوریتم تبدیل فوریه سریع الگوریتم کولی-توکی است که یک الگوریتم تقسیم و حل است که به صورت بازگشتی یک مسئله تبدیل فوریه گسسته را به سایز مرکب از N = N۱N۲ می‌شکند و به مسئله تبدیل فوریه گسسته با اندازه‌های N۱ و N۲ تبدیل می‌کند که به ضرب ریشه‌های مختلط واحد نیاز دارد و به‌طور سنتی فاکتورهای دست زدن آرام نام دارند. (جنتلمن و سنده، ۱۹۶۶)

این روش و ایده عمومی تبدیل فوریه سریع در سال ۱۹۶۵ با انتشارات کولی و توکی معروف شد اما بعدها کشف شد که الگوریتم پیشنهادی این دو نفر قبلاً توسط گاوس در سال ۱۸۰۵ به دست آمده بوده‌است.

این الگوریتم در هر مرحله مسئله را به دو تکه با اندازه N/۲ تقسیم می‌کند و بنابراین به اندازه توانی از ۲ محدود است اما می‌توان با فاکتورگیری در حالت کلی مورد استفاده قرار گیرد.

چگونگی سرعت بخشی در تبدیل فوریه سریع

مسائل محاسباتی

باند پیچیدگی و شمارش عملیات‌ها

میزان کمینه پیچیدگی الگوریتم‌های تبدیل سریع فوریه چقدر است؟ آیا می‌توانند سریع‌تر از باشند؟

یکی از سوالات دیرینه علاقه‌مندان این نظریه اثبات باند کمینه پیچیدگی و شمارش تعداد دقیق عملیات لازم برای تبدیل فوریه سریع است و همچنان این مسئله به صورت باز باقی‌مانده‌است. حتی به صورت دقیق ثابت نشده‌است که تبدیل فوریه گسسته دقیقاً به (یعنی یا بیشتر) مقدار عملیات نیاز دارد؛ حتی برای گزینه‌های ساده با اندازهٔ توانی از ۲. در حالی که هیچ الگوریتمی با پیچیدگی کمتر نیز شناخته نشده‌است. به‌طور معمول، معمولاً در چنین سوالاتی روی شمارش عملیات‌های ریاضی تمرکز می‌کنیم اگرچه کارایی واقعی روی رایانه‌های امروزی به وسیله بسیاری از فاکتورهای دیگر مانند کش و موازی سازی پردازنده و بهبود آن‌ها استوار است.

دقت و تقریب

تعداد کمی از الگوریتم‌های تبدیل سریع فوریه که در اینجا مطرح شد برای محاسبه مقدار تقریبی تبدیل فوریه گسسته بود. این الگوریتم‌ها خطاهایی دارند که به‌طور قراردادی کوچک هستند و از افزایش بسیار زیاد محاسبات جلوگیری می‌کنند. چنین الگوریتم‌هایی سرعت زیاد را با خطای تقریبی بسیار کمی معامله می‌کنند. به عنوان مثال الگوریتم تبدیل فوریه سریع ادلمن (Edelman) در ۱۹۹۹ موفق شد تا نیازهای ارتباطی برای محاسبات موازی را با کمک روش سریع سازی مالتی پل کمینه نماید.

حتی الگوریتم‌های دقیق تبدیل فوریه سریع نیز دارای مقادیری خطا به علت محدود بودن دقت محاسبات ممیز شناور مورد استفاده می‌باشند اما این خطاها عموماً کاملاً کوچک هستند. بیشینه مقدار خطا در خطاهای نسبی برای الگوریتم کولی - توکی است که با میزان خطا برای فرمول تبدیل فوریه گسسته نیوی می‌توان مقایسه نمود. بدین ترتیب که ε دقت نسبی ماشین محاسبه گر در محاسبات ممیز شناور است.

پیاده‌سازی

پیاده‌سازی با جاوا

یک نمونهٔ پیاده‌سازی الگوریتم تبدیل فوریهٔ سریع به زبان جاوا در زیر آمده‌است که ورودی تابع FFT یک آرایه از اعداد double با اندازهٔ توانی از ۲ است:

// FFT.java
public class FFT {
public static Complex[] fft(double[] input) {
int inputLength = input.length;

if (inputLength == 1) {
// returning an array with just one member
return new Complex[] { new Complex(input[0], 0) };
}

double[] evens = new double[inputLength / 2];
double[] odds = new double[inputLength / 2];
for (int i = 0; i <inputLength; i++) {
if (i % 2 == 0)
evens[i / 2] = input[i];
else
odds[i / 2] = input[i];
}
Complex[] evensFFT = fft(evens);
Complex[] oddsFFT = fft(odds);

double wSize = 2 * Math.PI / inputLength;

Complex[] result = new Complex[inputLength];
int inputLengthHalf = inputLength / 2;
for (int k = 0; k <inputLengthHalf; k++) {
Complex temp = Complex.mul(
new Complex(Math.cos(wSize * k), Math.sin(wSize * k)),
oddsFFT[k]);
result[k] = Complex.add(evensFFT[k], temp);
result[k + inputLengthHalf] = Complex.sub(evensFFT[k], temp);
}
return result;
}
}

// Complex.java
class Complex {
private double real;
private double imaginary;

public Complex(double real, double imaginary) {
this.real = real;
this.imaginary = imaginary;
}

@Override
public String toString() {
return String.format("%.3f %.3f", real, imaginary);
}

public double getReal() {
return real;
}

public double getImaginary() {
return imaginary;
}

public static Complex add(Complex a, Complex b) {
return new Complex(a.real + b.real, a.imaginary + b.imaginary);
}

public static Complex sub(Complex a, Complex b) {
return new Complex(a.real - b.real, a.imaginary - b.imaginary);
}

public static Complex mul(Complex a, Complex b) {
return new Complex(a.real * b.real - a.imaginary * b.imaginary,
a.real * b.imaginary + a.imaginary * b.real);
}
}

پیاده‌سازی با C++‎

// AVal - an array of data being analyzed, Nvl - the length of the array must be a multiple degree 2.
// FTvl - an array of the values ​​obtained, Nft - the length of the array must be equal to Nvl.

const double TwoPi = 6.283185307179586;

void FFTAnalysis(double *AVal, double *FTvl, int Nvl, int Nft) {
  int i, j, n, m, Mmax, Istp;
  double Tmpr, Tmpi, Wtmp, Theta;
  double Wpr, Wpi, Wr, Wi;
  double *Tmvl;

  n = Nvl * 2; Tmvl = new double[n+1];

  for (i = 0; i <Nvl; i++) {
    j = i * 2; Tmvl[j] = 0; Tmvl[j+1] = AVal[i];
  }

  i = 1; j = 1;
  while (i <n) {
    if (j> i) {
      Tmpr = Tmvl[i]; Tmvl[i] = Tmvl[j]; Tmvl[j] = Tmpr;
      Tmpr = Tmvl[i+1]; Tmvl[i+1] = Tmvl[j+1]; Tmvl[j+1] = Tmpr;
    }
    i = i + 2; m = Nvl;
    while ((m>= 2) && (j> m)) {
      j = j - m; m = m>> 2;
    }
    j = j + m;
  }

  Mmax = 2;
  while (n> Mmax) {
    Theta = -TwoPi / Mmax; Wpi = Sin(Theta);
    Wtmp = Sin(Theta / 2); Wpr = Wtmp * Wtmp * 2;
    Istp = Mmax * 2; Wr = 1; Wi = 0; m = 1;

    while (m <Mmax) {
      i = m; m = m + 2; Tmpr = Wr; Tmpi = Wi;
      Wr = Wr - Tmpr * Wpr - Tmpi * Wpi;
      Wi = Wi + Tmpr * Wpi - Tmpi * Wpr;

      while (i <n) {
        j = i + Mmax;
        Tmpr = Wr * Tmvl[j] - Wi * Tmvl[j+1];
        Tmpi = Wi * Tmvl[j] + Wr * Tmvl[j+1];

        Tmvl[j] = Tmvl[i] - Tmpr; Tmvl[j+1] = Tmvl[i+1] - Tmpi;
        Tmvl[i] = Tmvl[i] + Tmpr; Tmvl[i+1] = Tmvl[i+1] + Tmpi;
        i = i + Istp;
      }
    }

    Mmax = Istp;
  }

  for (i = 1; i <Nft; i++) {
    j = i * 2; FTvl[i] = Sqrt(Sqr(Tmvl[j]) + Sqr(Tmvl[j+1]));
  }

  delete []Tmvl;
}

جستارهای وابسته

منابع

پیوند به بیرون

Read other articles:

This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article may require cleanup to meet Wikipedia's quality standards. The specific problem is: reads like a press release. Please help improve this article if you can. (February 2013) (Learn how and when to remove this template message) This article contains content that is written like an advertisement. Please help improve it by removing ...

 

Курган Ілля ЛьвовичНародився 26 травня 1926(1926-05-26)Борисов, Борисовська округаd, Білоруська РСР, СРСРПомер 21 серпня 2019(2019-08-21) (93 роки)Країна  СРСР БілорусьДіяльність акторAlma mater Білоруська державна академія мистецтв (1949)Заклад Білоруський державний університет культури

 

Josef PanáčekFödd8 september 1937[1]Staré Město[2], TjeckienDöd5 april 2022[3] (84 år)Medborgare iTjeckoslovakien och TjeckienSysselsättningSportskytt, tränareRedigera Wikidata Josef Panáček sportskytte Nation: Tjeckoslovakien Olympiska spel Guld Montréal 1976 Skeet Josef Panáček, född 8 september 1937 i Staré Město i distriktet Uherské Hradiště i Tjeckoslovakien, död 5 april 2022[4], var en tjeckoslovakisk sportskytt. Han blev olympisk guldmedaljör i skee...

العلاقات السريلانكية السورية سريلانكا سوريا   سريلانكا   سوريا تعديل مصدري - تعديل   العلاقات السريلانكية السورية هي العلاقات الثنائية التي تجمع بين سريلانكا وسوريا.[1][2][3][4][5] مقارنة بين البلدين هذه مقارنة عامة ومرجعية للدولتين: وجه المقا...

 

Der Titel dieses Artikels ist mehrdeutig. Zu Ortsteilen siehe Oelsen Wappen Deutschlandkarte ? Hilfe zu Wappen 50.7387444444447.60455281Koordinaten: 50° 44′ N, 7° 36′ O Basisdaten Bundesland: Rheinland-Pfalz Landkreis: Altenkirchen (Westerwald) Verbandsgemeinde: Altenkirchen-Flammersfeld Höhe: 281 m ü. NHN Fläche: 2,26 km2 Einwohner: 74 (31. Dez. 2022)[1] Bevölkerungsdichte: 33 Einwohner je km2 Postleitzahl: 57612 Vorwahl...

 

هاري غولد معلومات شخصية الميلاد 11 ديسمبر 1910برن، سويسرا الوفاة 28 أغسطس 1972 (61 سنة)فيلادلفيا، ولاية بنسلفانيا سبب الوفاة مرض  الجنسية أمريكي الديانة يهود الحياة العملية المهنة كيميائي،  وجاسوس  تهم التهم تجسس العقوبة 30 سنة الجوائز  وسام النجمة الحمراء   تعديل ...

Irish Green Party politician (b. 1980) Patrick CostelloTDCostello in 2020Teachta DálaIncumbentAssumed office February 2020ConstituencyDublin South-Central Personal detailsBorn (1980-05-21) 21 May 1980 (age 43)Dublin, IrelandPolitical partyGreen PartySpouse Hazel Chu ​(m. 2021)​RelationsPeter Costello (father)Children1Alma materUniversity College DublinTrinity College Dublin Patrick Costello (born 21 May 1980)[1][2] is an Irish Green Party...

 

Boris Schachlin Boris Schachlin 1966 Persönliche Informationen Name: Boris Anfijanowitsch Schachlin Nationalität: Sowjetunion Sowjetunion Disziplin Gerätturnen Geburtstag: 27. Januar 1932 Geburtsort: Ischim, Sowjetunion Sterbetag: 30. Mai 2008 Sterbeort: Kiew, Ukraine Größe: 171 cm Medaillenspiegel Olympische Spiele 7 × 4 × 2 × Weltmeisterschaften 6 × 6 × 2 × Europameisterschaften 6 × 3 × 1 × Medaillen  Olympische Spiele Gold Melbourne 1956 Seitpferd Gold Melbourne 195...

 

  بابوية أفينيون بابوية أفينيونالشعار الأرض والسكان الحكم التأسيس والسيادة التاريخ وسيط property غير متوفر. تعديل مصدري - تعديل   القصر البابوي في أفنيون. بابوية أفينيون هي الفترة بين عامي 1309-1376 والتي أقام فيها سبعة من البابوات في أفينيون في فرنسا الحالية. يعود ذلك إلى الص...

الدوري الألماني الدرجة الثالثة 2015–16 تفاصيل الموسم الدوري الألماني الدرجة الثالثة  النسخة 8  البلد ألمانيا  التاريخ بداية:24 يوليو 2015  نهاية:14 مايو 2016  المنظم الاتحاد الألماني لكرة القدم  البطل دينامو درسدن  الهابطون شتوتغارت كيكرز،  وإنيرجي كوتبوس،  و

 

For the My Chemical Romance album, see The Black Parade/Living with Ghosts. 1996 studio album by Patty GriffinLiving with GhostsStudio album by Patty GriffinReleasedMay 21, 1996GenreContemporary folkLength41:50LabelA&MProducerPatty GriffinPatty Griffin chronology Living with Ghosts(1996) Flaming Red(1998) Professional ratingsReview scoresSourceRatingAllmusic[1]Entertainment Weekly(B)[2] Living with Ghosts is the debut studio album by American singer-songwriter Patt...

 

Part of the Byzantine–Sasanian War of 602–628 Sasanian conquest of JerusalemPart of the Byzantine–Sasanian War of 602–628Territory controlled by the Byzantines (purple) and the Sasanians (yellow) in 600 CEDateApril–May 614 CE (per Sebeos and Antiochus)LocationJerusalem31°47′N 35°13′E / 31.783°N 35.217°E / 31.783; 35.217Result Sasanian victoryTerritorialchanges Jerusalem and Palaestina Prima annexed by the SasaniansBelligerents Byzantine Empire Sasania...

Football clubAias SalaminaFull nameAias Salamina Football ClubNickname(s)AjaxFounded1931; 92 years ago (1931)GroundMunicipal Stadium of SalaminaCapacity1,500ChairmanPanagiotis PapadimitriouManagerStathis FourikisLeagueGamma Ethniki2020-21Gamma Ethniki, 4th Home colours Away colours Aias Salamina Football Club (Ajax of Salamis in English, Greek: Αίας Σαλαμίνας) is a Greek football club based in Salamina, Salamis Island. The association was founded in 1931. Histor...

 

BereștiKotaNegara RomaniaCountyGalațiPemerintahanLuas47,12 km2 (1,819 sq mi)Ketinggian140 m (460 ft)Populasi (2011)2.853Zona waktuUTC+2 (EET) • Musim panas (DST)UTC+3 (EEST) Populasi historis Tahun JumlahPend.  ±%   1977 4.155—     1992 3.948−5.0% 2002 3.601−8.8% 2011 2.853−20.8% Sumber: Data sensus Berești adalah sebuah kota di Provinsi Galaţi, Rumania. Kota ini terletak di wilayah yang dulu d...

 

Meteorologist For other people with the same name, see Robert Simpson (disambiguation). Robert SimpsonSimpson in 1956.BornRobert Homer Simpson(1912-11-19)November 19, 1912Corpus Christi, Texas, U.S.DiedDecember 18, 2014(2014-12-18) (aged 102)Washington, D.C., U.S.EducationSouthwestern University (B.S., 1933)Emory University (M.S., 1935)University of Chicago (Ph.D., 1962)Known forTropical cyclone research, Saffir–Simpson Hurricane Scale, NHC directorSpouseJoanne SimpsonAwardsDepart...

1999 video gameSilent BomberNorth American cover artDeveloper(s)CyberConnectPublisher(s)Bandai EU: Virgin InteractiveDirector(s)Hiroto NiizatoDesigner(s)Takayuki IsobeComposer(s)Chikayo FukudaSeizo NakataPlatform(s)PlayStation, PlayStation NetworkReleasePlayStationJP: October 28, 1999NA: April 2000[1]EU: July 21, 2000PlayStation NetworkJP: November 21, 2006Genre(s)ActionMode(s)Single-player multiplayer Silent Bomber (サイレントボマー, Sairento Bomā) is a 1999 arcade style act...

 

Parque nacional de Than Bok Khorani อุทยานแห่งชาติธารโบกขรณี Categoría UICN II (parque nacional) SituaciónPaís  TailandiaProvincia KrabiCoordenadas 8°23′18″N 98°44′05″E / 8.388471, 98.734685Datos generalesFecha de creación 1998Superficie 121 km² Parque nacional de Than Bok Khorani Ubicación en Tailandia.[editar datos en Wikidata] El Parque nacional de Than Bok Khorani[1]​ también es...

 

This article contains text that is written in a promotional tone. Please help improve it by removing promotional language and inappropriate external links, and by adding encyclopedic text written from a neutral point of view. (May 2021) (Learn how and when to remove this template message) This article is an orphan, as no other articles link to it. Please introduce links to this page from related articles; try the Find link tool for suggestions. (January 2020) Market DojoIndustryInternet Softw...

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada Oktober 2022. Hantu Momo merupakan karakter boneka mengerikan karya seniman asal Jepang yang bernama Keisuke Aiso. Sosok boneka ini memiliki rambut hitam, panjang, dan kusut dengan bentuk matanya melotot sampai hampir keluar. Senyumnya menyeringai lebar membentuk se...

 

Televen Eslogan Tu canalTipo de canal televisión digital terrestreProgramación GeneralistaPropietario Corporación Televen C.APaís Venezuela VenezuelaIdioma EspañolFundación 23 de julio de 1986Inicio de transmisiones 3 de julio de 1988Indicativo de señal YVCJ-TDTPersonas clave Omar Nicolas Camero ZamoraFormato de imagen 1080i HDTV(reescalado a 16:9 480i para la señal en resolución estándar)Área de transmisión Venezuela VenezuelaUbicación Av. Rómulo Gallegos con 4.ª transversal, ...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!