1640 IEEE TRANSACTIONS ON INSTRUMENTATION AND MEASUREMENT, VOL. 56, NO. 5, OCTOBER 2007 Discrete Wavelet Transform Signal Analyzer Pedro Henrique Cox and Aparecido Augusto de Carvalho Abstract—This paper addresses the problem of processing bi- ological data, such as cardiac beats in the audio and ultrasonic range, and on calculating wavelet coefficients in real time, with the processor clock running at a frequency of present applica- tion-specified integrated circuits and field programmable gate array. The parallel filter architecture for discrete wavelet trans- form (DWT) has been improved, calculating the wavelet coeffi- cients in real time with hardware reduced up to 60%. The new architecture, which also processes inverse DWT, is implemented with the Radix-2 or the Booth–Wallace constant multipliers. One integrated circuit signal analyzer in the ultrasonic range, including series memory register banks, is presented. Index Terms—Asynchronous logic circuits, digital filters, digital signal processors, last in last out memory, logic design, sequential machines, signal analysis and synthesis. I. I NTRODUCTION T HE DISCRETE wavelet transform (DWT) algorithm [1], [2], [5] provides efficient multiresolution subband coding representation in the time-scale plane. In each step, the signal is high-pass and low-pass filtered (Fig. 1). An algorithm for the calculation of 1-D DWT is proposed [1]. In this algorithm, DWT coefficients in one level are calculated with DWT co- efficients of the previous level. The input data sequence l 0 has N 0 = p2 J samples, where p is an integer, and J is the number of levels of the transform. Each decomposition level j , 1 j J can be seen as the further decomposition of the sequence l j-1 , which has N j-1 samples, into two subbands l j and h j , both with N j = N j-1 /2 samples. Such a decomposition is produced by two convolutions, followed by a decimation by two. In (1), a i and c i denote coefficients on low-pass L j and high- pass H j (Fig. 1), M tap filters, l j n =0 for n< 0 and n J l j n = M-1 i=0 a i · l j-1 2n-i , 0 n N j - 1 (1a) h j n = M-1 i=0 c i · l j-1 2n-i , 0 n N j - 1. (1b) For computing the DWT coefficients of the input discrete- time data, it is assumed that the input data represent the Manuscript received February 15, 2006; revised August 31, 2006. P. H. Cox is with DEL CCET UFMS—Departamento de Engenharia Elétrica, Universidade Federal de Mato Grosso do Sul, Cidade Universitária, 79070-900 Campo Grande, Brazil (e-mail: phcox@del.ufms.br). A. A. de Carvalho is with the DEE FEIS UNESP—Departamento de Engenharia Elétrica, Universidade do Estado de São Paulo, Faculdade de Engenharia de Ilha Solteira, 15385-000 Ilha Solteira, Brazil (e-mail: aac@dee.feis.unesp.br). Digital Object Identifier 10.1109/TIM.2007.894797 Fig. 1. Signal analysis and synthesis for a J -level DWT/IDWT. DWT coefficients of a higher resolution level. Coefficients of subsequent levels are obtained from (1). Hence, DWT extracts information from the signal at different scales. The first level of wavelet decomposition extracts the high-frequency components of the signal, while the second and all subsequent wavelet decompositions extract, progressively, lower frequency compo- nents. A few levels are enough to have a good approximation of the signal with discrete wavelet coefficients. The four-level 1-D DWT with low-pass eight-order filter wavelet coefficients are presented in (2). Numerical equations for high-pass direct and 1-D inverse discrete wavelet transform (IDWT) filters are obtained from (1b) and (3a) and (3b), which follow later. l 1 (0) = a 0 l 0 (0) + a 1 l 0 (-1) + a 2 l 0 (-2) + a 3 l 0 (-3) + a 4 l 0 (-4) + a 5 l 0 (-5) + a 6 l 0 (-6) + a 7 l 0 (-7) (2a) l 1 (2) = a 0 l 0 (2) + a 1 l 0 (1) + a 2 l 0 (0) + a 3 l 0 (-1) + a 4 l 0 (-2) + a 5 l 0 (-3) + a 6 l 0 (-4) + a 7 l 0 (-5) (2b) l 1 (4) = a 0 l 0 (4) + a 1 l 0 (3) + a 2 l 0 (2) + a 3 l 0 (1) + a 4 l 0 (0) + a 5 l 0 (-1) + a 6 l 0 (-2) + a 7 l 0 (-3) (2c) l 1 (6) = a 0 l 0 (6) + a 1 l 0 (5) + a 2 l 0 (4) + a 3 l 0 (3) + a 4 l 0 (2) + a 5 l 0 (1) + a 6 l 0 (0) + a 7 l 0 (-1) (2d) l 1 (8) = a 0 l 0 (8) + a 1 l 0 (7) + a 2 l 0 (6) + a 3 l 0 (5) + a 4 l 0 (4) + a 5 l 0 (3) + a 6 l 0 (2) + a 7 l 0 (1) (2e) l 1 (10) = a 0 l 0 (10) + a 1 l 0 (9) + a 2 l 0 (8) + a 3 l 0 (7) + a 4 l 0 (6) + a 5 l 0 (5) + a 6 l 0 (4) + a 7 l 0 (3) (2f) 0018-9456/$25.00 © 2007 IEEE