The Sliding DFT

Total Page:16

File Type:pdf, Size:1020Kb

The Sliding DFT Eric Jacobsen and Richard Lyons The Sliding DFT he standard method well as review the process of fre- filter’s structure is readily available in for spectrum analysis quency-domain convolution to ac- the literature [5]-[7]. in digital signal pro- complish time-domain windowing. The z-domain transfer function of cessing (DSP) is the Finally, a modified sliding DFT struc- the Goertzel filter is discrete Fourier ture is proposed that provides im- transform (DFT), typically imple- proved computational efficiency. HzG () Tmented using a fast Fourier transform − −−jkN21π / = 1 ez (FFT) algorithm. However, there are −− 12−+cos( 2πkNz / ) 12 z applications that require spectrum Goertzel Algorithm analysis only over a subset of the N (2) center frequencies of an N-point DFT. The Goertzel algorithm, used in A popular, as well as efficient, tech- dual-tone multifrequency decoding with a single z-domain zero located at = − jkN2 π / nique for computing sparse DFT re- and phase-shift keying/frequency-shift ze and conjugate poles at = ± jkN2 π / sultsistheGoertzelalgorithmthat keying modem implementations, is ze as shown in Figure 2(a). = − jkN2 π / computes a single complex DFT spec- commonly used to compute DFT The pole/zero pair at ze can- tral bin value for every N input time spectra [1]-[4]. The algorithm is im- cels each other. The frequency magni- samples. This article describes a sliding plemented in the form of a second-or- tude response, provided in Figure DFT process whose spectral bin out- der infinite impulse response (IIR) 2(b), shows resonance centered at a π put rate is equal to the input data rate, filter as shown in Figure 1. This filter normalized frequency of 2 kN/ , cor- on a sample-by-sample basis, with the computes a single DFT output (the responding to a cyclic frequency ⋅ advantage that it requires fewer com- kth bin of an N-point DFT) defined kfs / NHz (where f s is the signal putations than the Goertzel algorithm by sample rate). for real-time spectral analysis. In appli- While the Goertzel algorithm is N −1 − π derived from the standard DFT equa- cations where a new DFT output spec- Xk()= ∑ xne ( ) jnkN2 / . tion, it’s important to realize that the trum is desired every sample, or every n=0 (1) few samples, the sliding DFT is filter’s frequency magnitude response computationally simpler than the tra- The filter’s yn()output is equal to is not the sin(xx )/( )-like response of a ditional radix-2 FFT. We’ll start our the DFT output frequency coeffi- single-bin DFT. The Goertzel filter is sliding DFT discussion by providing a cient, Xk(), at the time index nN= . a complex resonator having an infi- brief review of the Goertzel algorithm For emphasis, we remind the reader nite-length unit impulse response, = jnkN2 π / anduseitsbehaviorasayardstickto that the filter’s yn()output is not hn() e , and that’s why its evaluate the performance of the sliding equal to Xk()at any time index when magnitude response is so narrow. DFT technique. Following that, we nN≠ . The frequency-domain index The time-domain difference equa- will examine stability issues regarding k is an integer in the range tions for the Goertzel filter are the sliding DFT implementation as 01≤≤kN −. The derivation of this vn( )=−22 cos(π kN / ) vn ( 1 ) −−+ vn()()2 xn (3a) “DSP Tips and Tricks” introduces practical tips and tricks of design and imple- mentation of signal processing algorithms so that you may be able to incor- =−− jkN2 π / − porate them into your designs. We welcome readers who enjoy reading this yn() vn () e vn (1 ). (3b) column to submit their contributions. Please contact Associate Editor Rick Ly- ons at [email protected]. An advantage of the Goertzel filter in calculating an N-point Xk()DFT 74 IEEE SIGNAL PROCESSING MAGAZINE MARCH 2003 1053-5888/03/$17.00©2003IEEE bin is that (3a) is implemented N times while (3b), the feed forward path in Figure 1, need only be com- puted once after the arrival of the Nth input sample. Thus for real xn()the filter requires N + 2 real multiplies and 21N + real adds to compute an N-point Xk(). However, when mod- eling the Goertzel filter if the time in- dex begins at n = 0, the filter must process N + 1 time samples with xN()= 0 to compute Xk(). Now let’s look at the sliding DFT process. ▲ 1. IIR filter implementation of the Goertzel algorithm. Sliding DFT The sliding DFT (SDFT) algorithm performs an N-point DFT on time samples within a sliding-window as shown in Figure 3. In this example the SDFT initially computes the DFT of the N = 16 time samples in Figure 3(a). The time window is then ad- vanced one sample, as in Figure 3(b), and a new N-point DFT is calculated. The value of this process is that each ▲ 2. Goertzel filter: (a) z-domain pole/zero locations and (b) frequency magnitude re- new DFT is efficiently computed di- sponse. rectly from the results of the previous DFT. The incremental advance of the time window for each output compu- tation is what leads to the name slid- ing DFT or sliding-window DFT. The principle used for the SDFT is known as the DFT shifting theorem or the circular shift property [8]. It states that if the DFT of a windowed (finite-length) time-domain se- quence is Xk(), then the DFT of that sequence, circularly shifted by one π sample, is Xke() jkN2 / . Thus the spec- tral components of a shifted time se- quence are the original (unshifted) spectral components multiplied by π e jkN2 / , where k is the DFT bin of in- terest. We express this process by =−jkN2 π / Snkk() Sn (1 ) e −−+xn()() N xn (4) where Snk ()is the new spectral com- − ▲ ponent and Snk ()1 is the previous 3. Signal windowing for two 16-point DFTs: (a) data samples in the first computation spectral component. The subscript k and (b) second computation samples. MARCH 2003 IEEE SIGNAL PROCESSING MAGAZINE 75 reminds us that the spectra are those put samples, and M is less than z-domain transfer function for the kth associated with the kth DFT bin. log2 (N ),theslidingDFTcanbe bin of the sliding DFT filter is Equation (4), whose derivation is computationally superior to tradi- provided in the Appendix, reveals the tional FFT implementations even − −N = ()1 z Hz() π − . value of this process in computing when all N DFT outputs are required. SDFT 1 − ezjkN21/ (5) real-time spectra. We calculate Snk () Equation (4) leads to the sin- by phase shifting the previous gle-bin SDFT filter structure shown This complex filter has N zeros Sn()− 1 components, subtract the in Figure 4. k equally spaced around the z-domain’s xn()− N sample, and add the current The single-bin SDFT algorithm is unit circle, due to the N-delay comb xn()sample. Thus the SDFT requires implemented as an IIR filter with a filter, as well as a single pole canceling only one complex multiply and two comb filter followed by a complex π the zero at ze= jkN2 / . The SDFT fil- real adds per output sample. The com- resonator [9]. (If you want to com- ter’s complex unit impulse response putational complexity of each succes- pute all N DFT spectral components, hn()and pole/zero locations are sive N-point output is then O(N ) for N resonators with k = 0 to N − 1 will 2 shown in Figure 5 for the example the sliding DFT compared to O(N ) be needed, all driven by a single comb where k = 2 and N = 20. for the DFT and O[NN log ( )] for filter.) The comb filter delay of N 2 Because of the comb subfilter, the the FFT. Unlike the DFT or FFT, samples forces the filter’s transient re- SDFT filter’s complex sinusoidal unit however, due to its recursive nature sponse to be N − 1samples in length, impulse response is finite in length, the sliding DFT output must be com- so the output will not reach steady truncated in time to N samples, and puted for each new input sample. If a state until theSN()sample. In practi- k that property makes the frequency new N-point DFT output is required cal applications the algorithm can be magnitude response of the SDFT fil- only every N inputs, the sliding DFT initialized with zero input and zero 2 ter identical to the sin(Nx )/sin( x ) re- requires O(N ) computations and is output. The output will not be valid, sponse of a single DFT bin centered equivalent to the DFT. When output or equivalent to (1)’s Xk(), until N in- at a normalized frequency of 2πkN/ . computations are required every M in- put samples have been processed. The One of the attributes of the SDFT − is that once an Snk ()1 is obtained, the number of computations to calcu- xn() Snk() + + late Snk ()is fixed and independent of N. A computational workload com- − − parison between the Goertzel and z N z 1 SDFT filters is provided later in this article. Unlike the radix-2 FFT, the − Snk(1) SDFT’s N can be any positive integer giving us greater flexibility to tune the −1 jkN2/π e SDFT’s center frequency by defining integer k such that kNff=⋅/ , ▲ 4. Single-bin sliding DFT filter structure. i s when f i is a frequency of interest in hertz. In addition, the SDFT does not 1 require bit-reversal processing as does the FFT.
Recommended publications
  • Digital Signal Processing 10EC52
    Digital Signal Processing 10EC52 DIGITAL SIGNAL PROCESSING SUBJECT CODE : 10EC52 IA MARKS : 25 NO. OF LECTURE HRS /WEEK : 04 EXAM HOURS : 03 TOTAL NO . OF LECTURE HRS . : 52 EXAM MARKS : 100 UNIT - 1 DISCRETE FOURIER TRANSFORMS (DFT): FREQUENCY DOMAIN SAMPLING AND RECONSTRUCTION OF DISCRETE TIME SIGNALS . DFT AS A LINEAR TRANSFORMATION , ITS RELATIONSHIP WITH OTHER TRANSFORMS . 6 HRS UNIT - 2 PROPERTIES OF DFT, MULTIPLICATION OF TWO DFT S- THE CIRCULAR CONVOLUTION , ADDITIONAL DFT PROPERTIES . 6 HRS UNIT - 3 USE OF DFT IN LINEAR FILTERING , OVERLAP -SAVE AND OVERLAP -ADD METHOD . DIRECT COMPUTATION OF DFT, NEED FOR EFFICIENT COMPUTATION OF THE DFT (FFT ALGORITHMS ). 7 HRS UNIT - 4 RADIX -2 FFT ALGORITHM FOR THE COMPUTATION OF DFT AND IDFT–DECIMATIONIN - TIME AND DECIMATION -IN -FREQUENCY ALGORITHMS . GOERTZEL ALGORITHM , AND CHIRP -Z TRANSFORM . 7 HRS UNIT - 5 IIR FILTER DESIGN : CHARACTERISTICS OF COMMONLY USED ANALOG FILTERS – BUTTERWORTH AND CHEBYSHEVE FILTERS , ANALOG TO ANALOG FREQUENCY TRANSFORMATIONS . 6 HRS UNIT - 6 IMPLEMENTATION OF DISCRETE -TIME SYSTEMS : STRUCTURES FOR IIR AND FIR SYSTEMS DIRECT FORM I AND DIRECT FORM II SYSTEMS , CASCADE , LATTICE AND PARALLEL REALIZATION . 7 HRS UNIT - 7 FIR FILTER DESIGN : INTRODUCTION TO FIR FILTERS , DESIGN OF FIR FILTERS USING - RECTANGULAR , HAMMING , BARTLET AND KAISER WINDOWS , FIR FILTER DESIGN USING FREQUENCY SAMPLING TECHNIQUE . 6 HRS UNIT - 8 DESIGN OF IIR FILTERS FROM ANALOG FILTERS (B UTTERWORTH AND CHEBYSHEV ) - IMPULSE INVARIANCE METHOD . MAPPING OF TRANSFER FUNCTIONS : APPROXIMATION OF DERIVATIVE (BACKWARD DIFFERENCE AND BILINEAR TRANSFORMATION ) METHOD , MATCHED Z TRANSFORMS , VERIFICATION FOR STABILITY AND LINEARITY DURING MAPPING 7 HRS Digital Signal Processing 10EC52 TEXT BOOK: 1.
    [Show full text]
  • Implementation of a Power-Efficient DFT Based Demodulator for BFSK
    1 Implementation of a power-efficient DFT based demodulator for BFSK Giovanni Meciani M.Sc. Thesis December 2018 Committee: dr. ir. A. B. J. Kokkeler. S. Safapurhajari M.Sc. dr. ir. R. A. R. van der Zee Computer Architecture for Embedded Systems Group Faculty of Electrical Engineering, Mathematics and Computer Science 2 Abstract In wireless communication, the frequency offset is a problem that hinders the communication. It arises from the discrepancy between the frequencies of the oscillator of the transmitter and the one of the receiver. To solve this problem, oscillators with high frequency stability can be employed, at the expense of higher power requirements. As a consequence, this solution can be problematic in Wireless Sensors Network (WSN), where sensor nodes have limited power resources. Another solution is to correct the frequency offset within the demodulation algorithm, thus making it possible to use less power-hungry oscillators. This thesis focuses on the hardware implementation of an existing offset tolerant demodu- lation algorithm for BFSK modulation. Particular attention was posed in making the demod- ulator as power efficient as possible, given its usage in a WSN. To reach this goal, the two Discrete Fourier Transforms were optimised for zero-padding, which is an operation used in the algorithm. These two modifications allowed to save power when compared with the standard radix-2 FFT. Fixed-point is the chosen data representation. As the word length of the representation is a critical aspect that affects power consumption, an appropriate size was determined by using a procedure that makes use of MATLAB. The complete demodulator is implemented in VHDL and is used to characterise the system, when an FPGA is used in the synthesis process.
    [Show full text]
  • Goertzel Algorithm - Wikipedia
    Goertzel algorithm - Wikipedia https://en.wikipedia.org/wiki/Goertzel_algorithm Goertzel algorithm The Goertzel algorithm is a technique in digital signal processing (DSP) for efficient evaluation of the individual terms of the discrete Fourier transform (DFT). It is useful in certain practical applications, such as recognition of dual-tone multi-frequency signaling (DT!F) tones produced " the push buttons of the keypad of a traditional analog telephone. The algorithm $as first described by Gerald Goertzel in 1958.+', Like the DFT, the Goertzel algorithm analyses one selectable frequenc component from a discrete signal.+.,+/,+0, 1nlike direct DFT calculations, the Goertzel algorithm applies a single real-valued coefficient at each iteration, using real-valued arithmetic for real-valued input sequences. For covering a full spectrum, the Goertzel algorithm has a higher order of complexity than fast Fourier transform (FFT) algorithms, but for computing a small number of selected frequency components, it is more numerically efficient. The simple structure of the %oertzel algorithm makes it well suited to small processors and embedded applications. The Goert&el algorithm can also be used "in reverse" as a sinusoid synthesis function, which requires only 1 multiplication and 1 subtraction per generated sample.+), Contents The algorithm Numerical stability DFT computations Applications Power-spectrum terms Single DFT term with real-valued arithmetic Phase detection Complex signals in real arithmetic Computational complexity See also References Further reading External links The algorithm The main calculation in the Goertzel algorithm has the form of a digital filter, and for this reason the algorithm is often called a Goertzel filter. The filter operates on an input sequence in a cascade of two stages with a parameter , giving the frequency to be analysed, normalised to radians per sample.
    [Show full text]
  • Lecture Notes on Discrete-Time Signal Processing
    A. Enis Cetin Lecture Notes on Discrete-Time Signal Processing EE424 Course @ Bilkent University May 7, 2015 BILKENT Foreword This is version 1 of my EE 424 Lecture Notes. I am not a native English speaker. Therefore the language of this set of lecture notes will be Globish. I will later (hope- fully) revise this version and make it English with the help of my native English speaker son Sinan. I have been studying, teaching contributing to the field of Discrete-time Signal Processing for more than 25 years. I tought this course at Bilkent University, Uni- versity of Toronto and Sabanci University in Istanbul. My treatment of filter design is different from most textbooks and I only include material that can be covered in a single semester course. The notes are organized according to lectures and I have X lectures. We assume that the student took a Signals and Systems course and he or she is familier with Continuous Fourier Transform and Discrete-time Fourier Transform. There may be typos in the notes. So be careful! I also thank Berk Ozer for his contributions to this set of lecture notes. Ankara, October 2011 A. Enis Cetin v Contents 1 Introduction, Sampling Theorem and Notation .................... 1 1.1 Shannon’s Sampling Theorem . .1 1.2 Aliasing . .6 1.3 Relation between the DTFT and CTFT. .8 1.4 Continuous-Time Fourier Transform of xp(t) ...................9 1.5 Inverse DTFT . 11 1.6 Inverse CTFT . 11 1.7 Filtering Analog Signals in Discrete-time Domain . 12 1.8 Exercises . 12 2 Multirate Signal Processing ....................................
    [Show full text]
  • Introduction to Digital Signal Processing
    An introduction to Digital Signal Processing Felix Donkers © Felix Donkers Outline • Introduction ◦ Definition Digital Signal Processing ◦ Application areas • DSP systems ◦ Analog versus digital ◦ Sensors ◦ AD / DA conversion • DSP theory ◦ Time domain versus frequency domain ◦ Nyquist / Shannon sampling theorem ◦ Digital filters ◦ Quantisation noise and dynamic range • Practical exercises ◦ DTMF detection ◦ Digital reverb • Further reading 16 May 2010 An introduction to Digital Signal Processing – Felix Donkers No. 2 Title of Presentation Outline • Introduction ◦ Definition Digital Signal Processing ◦ Application areas • DSP systems ◦ Analog versus digital ◦ Sensors ◦ AD / DA conversion • DSP theory ◦ Time domain versus frequency domain ◦ Nyquist / Shannon sampling theorem ◦ Digital filters ◦ Quantisation noise and dynamic range • Practical exercises ◦ DTMF detection ◦ Digital reverb • Further reading 16 May 2010 An introduction to Digital Signal Processing – Felix Donkers No. 3 Digital Signal Processing – definition (Digital) Signal Processing [source: WikipediA ] DSP is the analysis, interpretation , and manipulation of signals (in the digital domain) . Signals of interest include sound, images, radar, biological signals such as ECG , and many others . Processing of such signals includes storage, reconstruction , transmission, separation of information from noise , compression, feature extraction, etc . 16 May 2010 An introduction to Digital Signal Processing – Felix Donkers No. 4 Title of Presentation Digital Signal Processing – definition Signal improvement Signal feature extraction - beats per minute DSP (music) DSP - color (ambilight) Signal acquisition Signal synthesis ACQ SYN Signal compression Signal transmission ENC DEC TR REC 16 May 2010 An introduction to Digital Signal Processing – Felix Donkers No. 5 Digital Signal Processing – application fields Sensor signal processing is still hot & high tech 16 May 2010 An introduction to Digital Signal Processing – Felix Donkers No.
    [Show full text]
  • AN219: Using Microcontrollers in Digital Signal Processing Applications
    AN219 Using Microcontrollers in Digital Signal Processing Applications 1. Introduction Digital signal processing algorithms are powerful tools that provide algorithmic solutions to common problems. For example, digital filters provide several benefits over their analog counterparts. These algorithms are traditionally implemented using dedicated digital signal processing (DSP) chips, FPGAs, or RISC processors. While these solutions are very efficient at their purpose, they only perform one function in the system and can be both expensive and large. This application note discusses an alternative solution using a Silicon Labs microcontroller to implement DSP algorithms in less space and still have plenty of CPU bandwidth available for other tasks. This application note discusses the implementation of three DSP solutions on the C8051F12x and C8051F36x family of microcontrollers: FIR filters Goertzel Algorithm used for DTMF decoding FFT algorithm For each of these topics, we introduce the algorithm, discuss the implementation of these algorithms on the DSP- enabled MCUs using the multiply and accumulate (MAC) engine, and provide a list of the CPU bandwidth and memory usage. 1.1. Key Points The 100 peak MIPS CPU, 2-cycle 16x16 MAC engine and on-chip ADC and DAC make the C8051F12x and C8051F36x well suited to DSP applications. Using these resources on a C8051F36x microcontroller, a 5x5 mm 8-bit MCU can process data in real-time for FIR filters and Goertzel Algorithms for DTMF decoding and implement a full FFT. 2. Digital FIR Filters Filters have many applications, including narrowing the input waveform to a band of interest and notching out undesired noise. Digital filters have some benefits over their analog counterparts.
    [Show full text]