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

الگوریتم تبدیل سریع فوریه ریدر
الگوریتم ریدر (به انگلیسی: Rader's FFT algorithm) یک الگوریتم تبدیل سریع فوریه(FFT) است که تبدیل فوریه گسسته(DFT) اندازه‌های اول را با ارائه دوباره DFT  به عنوان کانولوشن حلقوی، محاسبه می‌کند.(الگوریتم دیگر برای FFT از اندازه‌های اول، الگوریتم تبدیل سریع فوریه بلوستین است که آن نیز بازنویسی DFT به عنوان یک کانولوشن می‌باشد.)
از آنجا که الگوریتم ریدر تنها به دوره تناوب هسته DFT بستگی دارد، به‌طور مستقیم  با هر تبدیل دیگری (با ترتیب اول) با یک خاصیت مشابه قابل انطباق است، مانند تبدیل نظریه عددی یا تبدیل گسسته هارتلی.
این الگوریتم می‌تواند با به دست آوردن یک فاکتور از دو ذخیره از DFTها از داده‌های حقیقی، با استفاده از حذف یا اندیس‌گذاری مجددی (re-indexing/permutation) که کمی اصلاح شده، برای به دست آوردن دو نیم-اندازه کانولوشن حلقوی از داده‌های حقیقی اصلاح شود(چو و Burrus، 1982)؛تطابق جایگزین برای DFT از داده‌های واقعی، با استفاده از تبدیل گسسته هارتلی، توسط جانسون و فریگو (2007) شرح داده شد. 
Winograd  را گسترش داد تا شامل DFTهای توان اول از اندازه  شود، و امروزه گاهی الگوریتم ریدر به عنوان مورد خاصی از الگوریتم تبدیل سریع فوریهٔ Winograd یاد می‌شود. همچنین به نام الگوریتم ضرب تبدیل فوریه نیز شناخته می‌شود، که شامل دستهٔ بسیار بزرگتری از اندازه‌ها می‌شود. با این حال، در اندازه‌های مرکب از قبیل توان‌های اول، الگوریتم تبدیل سریع فوریه کولی-توکی بسیار ساده‌تر و  برای پیاده‌سازی عملیتر هستند، بنابراین الگوریتم ریدر به‌طور معمول تنها برای موارد پایه بزرگ اول تجزیه بازگشتی DFT کولی-توکی مورد استفاده قرار می‌گیرد(جانسون و فریگو (2005).

ارزیابی کانولوشن

از آنجا که N - 1 مرکب است، این کانولوشن می‌تواند به‌طور مستقیم از طریق قضیه کانولوشن و الگوریتم‌های FFT معمولی انجام پذیرد. با این حال، ممکن است کارآمد نباشد اگر N - 1 خود دارای عوامل اول بزرگ باشد، نیاز به استفاده بازگشتی الگوریتم ریدر دارد. در عوض، می‌توان   کانولوشن حلقوی طول (N-1) را دقیق محاسبه کرد. توسط پدینگ صفر کردن آن تا طول حداقل ((2N-1)-1) برای توان دو، که سپس می‌تواند در زمان (O(N log N  بدون برنامه‌های بازگشتی الگوریتم ریدر ارزیابی شود.
این الگوریتم، نیاز به (O(N عمل جمع و زمان (O(N log N برای کانولوشن دارد. در عمل، (O(N جمع اغلب می‌تواند با جذب شدن در جمع‌های کانولوشن انجام شود. در صورتی که کانولوشن با یک جفت از FFTs انجام شود، سپس مجموع xₙ که از خروجی عبارت  صفرام DC FFT بدست می‌آید aq به علاوه x₀ داده می‌شود و با اضافه کردن آن را به DC از x₀ می‌تواند به تمام خروجی‌های اضافه شده کانولوشن قبل از FFT معکوس اضافه شود. در عین حال، این الگوریتم نیاز به عملیات ذاتی بیشتر از FFTs از اندازه مرکب نزدیک خود دارد، و به‌طور معمول در عمل 3-10 بار به طول می انجامد.
اگر الگوریتم ریدر با استفاده از FFTs  با اندازه N - 1 برای محاسبه کانولوشن انجام شود، به جای پدینگ صفر همانطور که در بالا ذکر شد، بهره وری به شدت به N و تعداد دفعاتی که الگوریتم ریدر باید به صورت بازگشتی اعمال شود وابسته می‌شود. بدترین حالت زمانی خواهد بود که N–1 برابر 2N₂ شود که در آن N₂ اول باشد، و N₂–1 = 2N₃ که در آن N₃ اول و به همین ترتیب تا آخر. در چنین مواردی، با فرض این که زنجیرهٔ اعداد اول تا یک مقدار محدود ادامه یابد، برنامه‌های بازگشتی الگوریتم ریدر در واقع به( O(N² زمان نیاز دارد. چنین Nⱼ اعداد اول سوفی ژرمن نامیده می‌شوند، و چنین دنباله‌ای از آن‌ها زنجیره کانینگهام از نوع اول است. طول زنجیره کانینگهام، با این حال، مشاهده شده که آرام تر از( log₂(N رشد می‌کند، بنابراین الگوریتم ریدری که به این صورت پیاده‌سازی شده باشد احتمالاً( O(N log N نیست، هر چند احتمالاً برای بدترین مورد بدتر از( O(N log N بوده‌است. اما خوشبختانه، با پدینگ صفر پیچیدگی( O(N log N را می‌توان تضمین کرد.