Kumar-laxmi / Algorithms

A Repository for algorithms in C, C++, Python and Java
Apache License 2.0
322 stars 367 forks source link

Add Fast Fourier Transform (FFT) Algorithm for Signal Processing in C, C++, Java and Python #1313

Closed Aryan-d13 closed 5 months ago

Aryan-d13 commented 1 year ago

Title: Add Fast Fourier Transform (FFT) Algorithm for Signal Processing

Description: The Fast Fourier Transform (FFT) algorithm is a fundamental technique used for efficient signal processing, data analysis, and spectral analysis. Currently, our open-source project lacks an implementation of the FFT algorithm, limiting its capabilities in handling advanced signal processing tasks and spectral analysis.

Problem: Signal processing tasks, such as filtering, convolution, and frequency analysis, often require the application of the FFT algorithm to efficiently analyze and manipulate signals in the frequency domain. Without the FFT algorithm, our project lacks a crucial component for performing advanced signal processing operations.

Solution Requested: We propose adding the FFT algorithm to our project. This algorithm transforms a discrete time-domain signal into its equivalent representation in the frequency domain, enabling various spectral analysis and signal processing tasks. The implementation should support different variants of the FFT algorithm, such as Cooley-Tukey or Radix-2, and provide configurable options for handling different signal lengths and data types. Additionally, it should be well-documented, modular, and optimized for performance.

Alternatives Considered: We have explored alternative algorithms for performing signal processing tasks, such as the Discrete Cosine Transform (DCT) and the Discrete Wavelet Transform (DWT). However, the FFT algorithm stands out as the most widely used and efficient technique for spectral analysis and signal processing in a vast range of applications.

Additional Context: The FFT algorithm plays a critical role in various fields, including audio and video processing, telecommunications, image processing, and scientific data analysis. By incorporating the FFT algorithm into our project, we can provide developers with a powerful tool for performing advanced signal processing tasks and spectral analysis. The algorithm's efficiency, accuracy, and broad applicability make it an essential addition to our open-source project, empowering users to tackle complex signal processing challenges effectively.

@Kumar-laxmi Please assign me this Issue Under SSOC'23 so I can start working on it ASAP

Kumar-laxmi commented 1 year ago

Assigned! @Aryan-d13 : C, C++, Python and Java

Aryan-d13 commented 1 year ago

@Kumar-laxmi Do I make 4 seprate PR or a single one?

github-actions[bot] commented 6 months ago

Stale issue message