[Paper Review] New Algorithms for Computing a Single Component of the Discrete Fourier Transform
This paper proposes two new algorithms—the JCO and JCO-Goertzel—for computing a single component of the Discrete Fourier Transform (DFT) using cyclotomic polynomials, achieving lower multiplicative complexity than the Goertzel algorithm. The JCO-Goertzel algorithm reduces the number of real multiplications required to compute a single DFT component below N, making it the most efficient known method in terms of multiplicative complexity for this task.
This paper introduces the theory and hardware implementation of two new algorithms for computing a single component of the discrete Fourier transform. In terms of multiplicative complexity, both algorithms are more efficient, in general, than the well known Goertzel Algorithm.
Motivation & Objective
- To develop more efficient algorithms for computing a single component of the Discrete Fourier Transform (DFT), especially for applications requiring only a few DFT coefficients.
- To reduce the multiplicative complexity of existing methods like the Goertzel algorithm, which requires N real multiplications per DFT component.
- To leverage the algebraic structure of cyclotomic polynomials to enable multiplication-free polynomial division in certain cases.
- To design a hardware-efficient implementation of the proposed algorithms using autoregressive filters with minimal storage and computational overhead.
Proposed method
- The JCO algorithm uses the cyclotomic polynomial $\Phi_L(x)$, where $L = \textrm{ord}(W_N^k) = N / \gcd(N,k)$, to represent the minimal polynomial of $W_N^k$ over the reals.
- Polynomial division of the signal's generating polynomial $v(x)$ by $\Phi_L(x)$ yields a remainder $R(x)$, such that $V_k = R(W_N^k)$, computed via an autoregressive filter.
- The JCO-Goertzel algorithm combines the JCO method with the Goertzel approach: after JCO division, the remainder is evaluated using the Goertzel filter, reducing total multiplications to $\phi(L)$.
- The hardware implementation uses a shift register and feedback filter structure with coefficients derived from $\Phi_L(z^{-1})$, enabling sequential input processing without storing $v_n$.
- Coefficients $a_j$ in the numerator are precomputed and stored, while $b_j$ in the denominator are integers (0, 1, -1), enabling trivial multiplications.
- For $L < 105$, $\Phi_L(x)$ has only coefficients in \{0, 1, -1\}, eliminating the need for multiplications in the JCO phase.
Experimental results
Research questions
- RQ1Can cyclotomic polynomials be used to design a DFT component computation algorithm with lower multiplicative complexity than the Goertzel algorithm?
- RQ2Does the use of $\Phi_L(x)$, the minimal polynomial of $W_N^k$, lead to a reduction in the number of real multiplications required for computing a single DFT coefficient?
- RQ3Can the JCO-Goertzel hybrid algorithm achieve lower multiplicative complexity than both the Goertzel and JCO algorithms individually?
- RQ4Is it possible to implement the proposed algorithms in hardware with minimal storage and computational overhead using autoregressive filter structures?
Key findings
- The JCO-Goertzel algorithm achieves the lowest known multiplicative complexity for computing a single DFT component, requiring only $\phi(L)$ real multiplications, where $L = N / \gcd(N,k)$.
- For $L = 8$, computing $V_{128}$ in a 1024-point DFT requires only 2 multiplications and 1027 additions, compared to 1024 multiplications and 2049 additions with the Goertzel algorithm.
- When $\phi(L) = 2$, the JCO-Goertzel algorithm reduces to the Goertzel algorithm, explaining identical performance for $L = 3, 4, 6$.
- The JCO algorithm is multiplication-free when $\Phi_L(x)$ has coefficients in \{0, 1, -1\}, which holds for $L < 105$, significantly reducing computational cost.
- The hardware implementation processes input samples in arrival order, eliminating the need to store the entire sequence $v_n$, and uses only trivial multiplications for feedback coefficients.
- The JCO-Goertzel algorithm can compute an $N$-point DFT with fewer than $N^2$ multiplications, as each component requires fewer than $N$ multiplications.
Better researchstarts right now
From reading papers to final review, dramatically reduce your research time.
No credit card · Free plan available
This review was created by AI and reviewed by human editors.