<< Chapter < Page Chapter >> Page >

It is possible to modify this algorithm to allow entering the data in forward order rather than reverse order. The difference [link] becomes

y ( m ) = z - 1 y ( m - 1 ) + x ( m - 1 )

if [link] becomes

C ( k ) = z N - 1 y ( N )

for y ( 0 ) = 0 . This is the algorithm programmed later.

The second-order goertzel algorithm

One of the reasons the first-order Goertzel algorithm does not improve efficiency is that the constant in the feedback or recursive path iscomplex and, therefore, requires four real multiplications and two real additions. A modification of the scheme to make it second-order removesthe complex multiplications and reduces the number of required multiplications by two.

Define the variable q ( m ) so that

y ( m ) = q ( m ) - z - 1 q ( m - 1 ) .

This substituted into the right-hand side of [link] gives

y ( m ) = z q ( m - 1 ) - q ( m - 2 ) + x ( N - m ) .

Combining [link] and [link] gives the second order difference equation

q ( m ) = ( z + z - 1 ) q ( m - 1 ) - q ( m - 2 ) + x ( N - m )

which together with the output [link] , comprise the second-order Goertzel algorithm where

X ( z ) = y ( N )

for initial conditions q ( 0 ) = q ( - 1 ) = 0 .

A similar development starting with [link] gives a second-order algorithm with forward ordered input as

q ( m ) = ( z + z - 1 ) q ( m - 1 ) - q ( m - 2 ) + x ( m - 1 )
y ( m ) = q ( m ) - z q ( - 1 )

with

X ( z ) = z N - 1 y ( N )

and for q ( 0 ) = q ( - 1 ) = 0 .

Note that both difference [link] and [link] are not changed if z is replaced with z - 1 , only the output [link] and [link] are different. This means that the polynomial X ( z ) may be evaluated at a particular z and its inverse z - 1 from one solution of the difference [link] or [link] using the output equations

X ( z ) = q ( N ) - z - 1 q ( N - 1 )

and

X ( 1 / z ) = z N - 1 ( q ( N ) - z q ( N - 1 ) ) .

Clearly, this allows the DFT of a sequence to be calculated with half the arithmetic since the outputs are calculated two at a time. Thesecond-order DE actually produces a solution q ( m ) that contains two first-order components. The output equations are, in effect, zeros thatcancel one or the other pole of the second-order solution to give the desired first-order solution. In addition to allowing the calculating oftwo outputs at a time, the second-order DE requires half the number of real multiplications as the first-order form. This is because thecoefficient of the q ( m - 2 ) is unity and the coefficient of the q ( m - 1 ) is real if z and z - 1 are complex conjugates of each other which is true for the DFT.

Analysis of arithmetic complexity and timings

Analysis of the various forms of the Goertzel algorithm from their programs gives the following operation count for real multiplications andreal additions assuming real data.

Algorithm Real Mults. Real Adds Trig Eval.
Direct DFT 4 N 2 4 N 2 2 N 2
First-Order 4 N 2 4 N 2 - 2 N 2 N
Second-Order 2 N 2 + 2 N 4 N 2 2 N
Second-Order 2 N 2 + N 2 N 2 + N N

Timings of the algorithms on a PC in milliseconds are given in the following table.

Algorithm N = 125 N = 257
Direct DFT 4.90 19.83
First-Order 4.01 16.70
Second-Order 2.64 11.04
Second-Order 2 1.32 5.55

These timings track the floating point operation counts fairly well.

Conclusions

Goertzel's algorithm in its first-order form is not particularly interesting, but the two-at-a-time second-order form is significantlyfaster than a direct DFT. It can also be used for any polynomial evaluation or for the DTFT at unequally spaced values or for evaluating afew DFT terms. A very interesting observation is that the inner-most loop of the Glassman-Ferguson FFT [link] is a first-order Goertzel algorithm even though that FFT is developed in a very different framework.

In addition to floating-point arithmetic counts, the number of trigonometric function evaluations that must be made or the size of a table to storeprecomputed values should be considered. Since the value of the W n k terms in [link] are iteratively calculate in the IIR filter structure, there is round-off error accumulation that should be analyzed in anyapplication.

It may be possible to further improve the efficiency of the second-order Goertzel algorithm for calculating all of the DFT of a number sequence.Perhaps a fourth order DE could calculate four output values at a time and they could be separated by a numerator that would cancel three of thezeros. Perhaps the algorithm could be arranged in stages to give an N log ( N ) operation count. The current algorithm does not take into account any of the symmetries of the input index. Perhaps some of theideas used in developing the QFT [link] , [link] , [link] could be used here.

The quick fourier transform (qft)

One stage of the QFT can use the symmetries of the sines and cosines to calculate a DFT more efficiently than directly implementing the definition Multidimensional Index Mapping: Equation 1 . Similar to the Goertzel algorithm, the one-stage QFT is a better N 2 DFT algorithm for arbitrary lengths. See The Cooley-Tukey Fast Fourier Transform Algorithm: The Quick Fourier Transform, An FFT based on Symmetries .

Questions & Answers

the definition for anatomy and physiology
Watta Reply
what is microbiology
Agebe Reply
What is a cell
Odelana Reply
what is cell
Mohammed
how does Neisseria cause meningitis
Nyibol Reply
what is microbiologist
Muhammad Reply
what is errata
Muhammad
is the branch of biology that deals with the study of microorganisms.
Ntefuni Reply
What is microbiology
Mercy Reply
studies of microbes
Louisiaste
when we takee the specimen which lumbar,spin,
Ziyad Reply
How bacteria create energy to survive?
Muhamad Reply
Bacteria doesn't produce energy they are dependent upon their substrate in case of lack of nutrients they are able to make spores which helps them to sustain in harsh environments
_Adnan
But not all bacteria make spores, l mean Eukaryotic cells have Mitochondria which acts as powerhouse for them, since bacteria don't have it, what is the substitution for it?
Muhamad
they make spores
Louisiaste
what is sporadic nd endemic, epidemic
Aminu Reply
the significance of food webs for disease transmission
Abreham
food webs brings about an infection as an individual depends on number of diseased foods or carriers dully.
Mark
explain assimilatory nitrate reduction
Esinniobiwa Reply
Assimilatory nitrate reduction is a process that occurs in some microorganisms, such as bacteria and archaea, in which nitrate (NO3-) is reduced to nitrite (NO2-), and then further reduced to ammonia (NH3).
Elkana
This process is called assimilatory nitrate reduction because the nitrogen that is produced is incorporated in the cells of microorganisms where it can be used in the synthesis of amino acids and other nitrogen products
Elkana
Examples of thermophilic organisms
Shu Reply
Give Examples of thermophilic organisms
Shu
advantages of normal Flora to the host
Micheal Reply
Prevent foreign microbes to the host
Abubakar
they provide healthier benefits to their hosts
ayesha
They are friends to host only when Host immune system is strong and become enemies when the host immune system is weakened . very bad relationship!
Mark
what is cell
faisal Reply
cell is the smallest unit of life
Fauziya
cell is the smallest unit of life
Akanni
ok
Innocent
cell is the structural and functional unit of life
Hasan
is the fundamental units of Life
Musa
what are emergency diseases
Micheal Reply
There are nothing like emergency disease but there are some common medical emergency which can occur simultaneously like Bleeding,heart attack,Breathing difficulties,severe pain heart stock.Hope you will get my point .Have a nice day ❣️
_Adnan
define infection ,prevention and control
Innocent
I think infection prevention and control is the avoidance of all things we do that gives out break of infections and promotion of health practices that promote life
Lubega
Heyy Lubega hussein where are u from?
_Adnan
en français
Adama
Got questions? Join the online conversation and get instant answers!
Jobilize.com Reply

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Fast fourier transforms. OpenStax CNX. Nov 18, 2012 Download for free at http://cnx.org/content/col10550/1.22
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Fast fourier transforms' conversation and receive update notifications?

Ask