Lecture 10, Multirate Signal Processing Transforms as Filter Banks. Equivalent Analysis Filters of a DFT

Similar documents
Filter Banks II. Prof. Dr.-Ing. G. Schuller. Fraunhofer IDMT & Ilmenau University of Technology Ilmenau, Germany

Digital Signal Processing 2/ Advanced Digital Signal Processing, Audio/Video Signal Processing Lecture 10, Frequency Warping, Example

Filter Banks II. Prof. Dr.-Ing Gerald Schuller. Fraunhofer IDMT & Ilmenau Technical University Ilmenau, Germany

Module 4 MULTI- RESOLUTION ANALYSIS. Version 2 ECE IIT, Kharagpur

OLA and FBS Duality Review

! Downsampling/Upsampling. ! Practical Interpolation. ! Non-integer Resampling. ! Multi-Rate Processing. " Interchanging Operations

OLA and FBS Duality Review

Filter Banks with Variable System Delay. Georgia Institute of Technology. Atlanta, GA Abstract

ECSE 512 Digital Signal Processing I Fall 2010 FINAL EXAMINATION

Fourier Series Representation of

Interchange of Filtering and Downsampling/Upsampling

MULTIRATE DIGITAL SIGNAL PROCESSING

Chapter 7 Wavelets and Multiresolution Processing

An Introduction to Filterbank Frames

DISCRETE FOURIER TRANSFORM

L6: Short-time Fourier analysis and synthesis

SC434L_DVCC-Tutorial 6 Subband Video Coding

Lecture 11: Two Channel Filter Bank

Quadrature-Mirror Filter Bank

Two Channel Subband Coding

LAB 6: FIR Filter Design Summer 2011

Chapter 8 The Discrete Fourier Transform

Elec4621 Advanced Digital Signal Processing Chapter 11: Time-Frequency Analysis

Perfect Reconstruction Two- Channel FIR Filter Banks

Module 4. Multi-Resolution Analysis. Version 2 ECE IIT, Kharagpur

Therefore the new Fourier coefficients are. Module 2 : Signals in Frequency Domain Problem Set 2. Problem 1

Digital Image Processing

E : Lecture 1 Introduction

Multirate signal processing

3. Lecture. Fourier Transformation Sampling

1 1.27z z 2. 1 z H 2

EE 225D LECTURE ON DIGITAL FILTERS. University of California Berkeley

The Discrete Fourier Transform

EDISP (NWL2) (English) Digital Signal Processing Transform, FT, DFT. March 11, 2015

DISCRETE-TIME SIGNAL PROCESSING

Two-Dimensional Signal Processing and Image De-noising

Lecture 27 Frequency Response 2

Discrete Fourier transform (DFT)

! Introduction. ! Discrete Time Signals & Systems. ! Z-Transform. ! Inverse Z-Transform. ! Sampling of Continuous Time Signals

Lecture 16: Multiresolution Image Analysis

ELEG 305: Digital Signal Processing

The basic structure of the L-channel QMF bank is shown below

Wavelets and Filter Banks

The Continuous-time Fourier

Digital Speech Processing Lecture 10. Short-Time Fourier Analysis Methods - Filter Bank Design

Improved Interpolation

ECE 301 Fall 2010 Division 2 Homework 10 Solutions. { 1, if 2n t < 2n + 1, for any integer n, x(t) = 0, if 2n 1 t < 2n, for any integer n.

(i) Understanding the characteristics and properties of DTFT

Novel Waveform Design and Scheduling For High-Resolution Radar and Interleaving

SNR Calculation and Spectral Estimation [S&T Appendix A]

Time Series Analysis: 4. Digital Linear Filters. P. F. Góra

Review of Fundamentals of Digital Signal Processing

Transforms and Orthogonal Bases

Fourier Transform 2D

1. Calculation of the DFT

Introduction to DFT. Deployment of Telecommunication Infrastructures. Azadeh Faridi DTIC UPF, Spring 2009

EE-210. Signals and Systems Homework 7 Solutions

Design of Orthonormal Wavelet Filter Banks Using the Remez Exchange Algorithm

Flash File. Module 3 : Sampling and Reconstruction Lecture 28 : Discrete time Fourier transform and its Properties. Objectives: Scope of this Lecture:

Subband Coding and Wavelets. National Chiao Tung University Chun-Jen Tsai 12/04/2014

INTRODUCTION TO THE DFS AND THE DFT

MR IMAGE COMPRESSION BY HAAR WAVELET TRANSFORM

Fall 2011, EE123 Digital Signal Processing

Multiresolution schemes

Digital Image Processing

Multidimensional Signal Processing

Cast of Characters. Some Symbols, Functions, and Variables Used in the Book

Lecture 3: Linear Filters

c 2010 Melody I. Bonham

Digital Signal Processing

Wavelets and Multiresolution Processing

Multirate Digital Signal Processing

Digital Image Processing. Filtering in the Frequency Domain

Lecture 14: Windowing

Design of Nonuniform Filter Banks with Frequency Domain Criteria

Chapter 7 Wavelets and Multiresolution Processing. Subband coding Quadrature mirror filtering Pyramid image processing

Lecture 3: Linear Filters

Module 3. Convolution. Aim

Two-Dimensional Signal Processing and Image De-noising

COMPLEX WAVELET TRANSFORM IN SIGNAL AND IMAGE ANALYSIS

Wavelets and Filter Banks Course Notes

Discrete-time signals and systems

Fast Wavelet/Framelet Transform for Signal/Image Processing.

Optimal Discretization of Analog Filters via Sampled-Data H Control Theory

SIGNALS AND SYSTEMS. Unit IV. Analysis of DT signals

Periodic discrete-time frames: Design and applications for image restoration

LABORATORY 3 FINITE IMPULSE RESPONSE FILTERS

The Discrete-time Fourier Transform

Design and Application of Quincunx Filter Banks

ECE-700 Review. Phil Schniter. January 5, x c (t)e jωt dt, x[n]z n, Denoting a transform pair by x[n] X(z), some useful properties are

Review of Fundamentals of Digital Signal Processing

Chapter 4 Discrete Fourier Transform (DFT) And Signal Spectrum

Multiresolution schemes

Filtering in Frequency Domain

Problem Set 9 Solutions

Digital Image Processing Lectures 13 & 14

ECE472/572 - Lecture 13. Roadmap. Questions. Wavelets and Multiresolution Processing 11/15/11

Digital Image Processing

3-D Directional Filter Banks and Surfacelets INVITED

Discrete Math, Spring Solutions to Problems V

Transcription:

Lecture 10, Multirate Signal Processing Transforms as Filter Banks Equivalent Analysis Filters of a DFT From the definitions in lecture 2 we know that a DFT of a block of signal x is defined as X (k)= n=0 x(mn +n)e j 2 π N k n Hence we can rewrite the DFT as a matrix multiplication with the matrix T with the elements, T n,k =e j 2π N n k n is the time and row index, and k is the frequency and column index. Using the signal block vector x (m)=[ x(mn ), x(mn +1),..., x(mn + )] (2) we can rewrite the DFT of block m as a matrix multiplication, y m =x m T (3) This is the matrix formulation of the DFT, where the matrix multiplication (3) is

y k (m)= n=0 j 2 π N x(mn +n) e k n (4) Here we can now extract the equivalent impulse responses. Now we can compare above transform eq. (4) with the convolution and downsampling eq. (2 of last time), N (m)= y n0 L 1 n=0 x(mn +n 0 n)h k (n) (eq. 2 of lecture 10, see also lecture 1) We see that here the index n for our signal x has the reverse order /reverse sign as in eq. 4. But since we are interested in the equivalent impulse response, we simply reverse the index order in the transform equation (4) (we use the index substitution n N 1 n' ). We still obtain the same sum, because the sum ordering doesn't change the result. y N (m)= y k (m)= n '=0 x(mn + n' ) e j 2 π ( n ' ) k N Compare this with our convolution sum in (2 of lecture 10), it looks like the convolution sum, with the phase index of n 0 =N 1. This indicates that y k (m) contains phase N-1 of the downsampled subband signal. Through this comparison we obtain the equivalent impulse response of our DFT as

h k (n)=e j 2π N (N 1 n) k =T N 1 n,k for k,n=0,..., N 1. This is now the equivalent analysis impulse response of our DFT, interpreted as analysis filter bank! Observe that it can also be interpreted as a rectangular window of length N with modulation of this exponential term! In Conclusion: The DFT can also be seen as a special kind of filter bank. Each DFT coefficent can be seen as a sample of one of the downsampled subbands. Each column of our transform matrix T represents the impulse response of one subband filter, but in reversed order (we can read the impulse response out of the transform matrix starting from the bottom and going up). Equivalent Synthesis Filter Bank

A synthesis filter bank. We still need the find the equivalent synthesis filters, if we apply the inverse transform for the perfect reconstruction of our signal (we get perfect reconstruction, i.e. the original signal, if the transform T is invertible). For the mathematical formulation of the inverse transform, we can again write the reconstructed signal x as a sequence of blocks, ^x (m):=[ ^x(mn ), ^x(mn +1),..., ^x(mn + )] We obtain the reconstructed signal by simply multiplying the blocks of subband samples y(m) with the inverse transform matrix, x m = y m T 1 (5) The elements of this inverse DFT matrix are ^x(mn +n)= k=0 (T 1 ) k,n = 1 N e j 2π N n k Eq. (5) can now also be written as (again using row times column) y k (m) 1 N e j 2 π N n k (6) with n=0,..., N 1. To see the resulting impulse response of the equivalent synthesis filter bank, we need the equations for upsampling and filtering in the

synthesis filter bank. In the synthesis filter bank, the subband signals y k m are upsampled first, and we obtain the upsampled signal y N 0, k (n), with phase 0 and time index n because we are at the higher sampling rate. The following filtering is the convolution with the synthesis subband impulse responses g k n, hence we get the output of the k'th filter as L 1 x k (n):= y N 0,k (n) g k (n)= n'=0 y N 0, k (n n ') g k (n' ) (7) where L is the length of the synthesis filter (see also lecture 1). We assume that L is a multiple of N, which we can always obtain by appending zeros if necessary. Observe that most samples of y N 0, k (n) are zero. To rewrite (7) such that we only process the non-zero samples, we again use the block wise processing, by substituting n mn +n and n' m' N +n' (using block indices m and m' and in block or phase indices n and n') to obtain L/ n ' =0 ^x k (mn +n)= y N 0,k (mn +n m' N n ' ) g k (m' N +n ' ) m '=0 with n=0,..., N 1. Here we can see that we get the non-zero elements of y N 0, k (n) if its argument is integer multiples of N, and we get this if we have

n=n '. Because of this, the inner sum only consists of one summand (because the sum over n' disappears), L/ ^x k (mn +n)= m '=0 y N 0,k ((m m') N ) g k (m' N +n) For the reconstructed signal, we simply add up all the N subbands, L/ ^x(mn +n)= y N 0, k ((m m ') N ) g k (m' N +n) k=0 m' =0 Here we can now replace y N 0, k (mn) by y k (m), since we now address only the non-zero elements, m' =0 L/ ^x(mn +n)= k=0 y k (m m') g k (m ' N +n) (8) This is now our reconstructed signal, where the first sum is over the subbands, and the second sum is over the blocks. At this point, we can compare this filter bank eq. (8) with the synthesis transform eq. (6). y k (m) 1 N e j 2 π N n k (6) ^x(mn +n)= k =0 First we see that the transform eq. (6) has no sum over the blocks, meaning the filters only have length L=N, hence the inner sum disappears with m'=0. With this, (8) becomes ^x(mn +n)= k=0 y k (m) g k (n)

Compare this with the transform equation (6), we can see now that the equivalent impulse responses are g k (n)= 1 N e j 2π N n k =(T 1 ) k,n Looking at our transform matrix, we see that this impulse responses correspond to each row of the inverse transform matrix, non-reversed. In Conclusion: the impulse responses of our subbands are the rows of the synthesis transform, here not time reversed! (We can read out the impulse responses of the synthesis filter bank from left to right in each column of the transform matrix). Observe: Each time we got our result by comparing the convolution sum of our equivalent filter bank with the transform sum.

Python Example: Take a DFT of size N =4. Its transform matrix T can be obtained with ipython --pylab T=fft.fft(eye(4)) T Out: array([[ 1.+0.j, 1.+0.j, 1.+0.j, 1.+0.j], [ 1.+0.j, 0.-1.j, -1.+0.j, 0.+1.j], [ 1.+0.j, -1.+0.j, 1.+0.j, -1.+0.j], [ 1.+0.j, 0.+1.j, -1.+0.j, 0.-1.j]]) Observe that we have complex values in the transform, and hence obtain complex valued filters. To evaluate complex valued filters, we need the full circle in the frequency domain, from 0 to 2pi. If we want to obtain the frequency response of subband k=1 of this DFT filter bank, we take the second column, time-reverse it, and plot the frequency response with freqz. Because Octave/Matlab starts indexing at 1, we need the index 2 for the subband k. In Octave/Matlab, we use "fft", which stands for Fast Fourier Transform, the fast implementation of the DFT, and command "freqz" uses the fft function internally, import scipy.signal as sp

W,H=sp.freqz(flipud(T[:,1]),whole=True) plot(w,20*log10(abs(h))) axis([0,6.28, -20,15]) xlabel('normalized Frequency') ylabel('db') title('magnitude Response for DFT suband k=1') Observe: We have a bad stopband attenuation (less than 20dB). Also observe: The frequency axis is going from 0 to 2pi (instead of just pi). This is because we have a complex impulse response. The normalized frequency 2pi is the sampling frequency. Since we have a 2π periodic frequency, this is identical to frequency 0, and

the frequencies from pi to 2pi can also be seen as the negative frequencies from -pi to 0. This shows that this filter has a pass band at the positive frequencies, but not at the negative frequencies. The equivalent passband at the negative frequencies is obtained from subband k=3, W,H=sp.freqz(flipud(T[:,3]),whole=True) plot(w,20*log10(abs(h))) xlabel('normalized Frequency') ylabel('db') title('magnitude Response for DFT suband k=3') Observe: This looks like the frequency mirrored

version of the filter for k=1. This also shows how to separate positive and negative frequencies. The low pass is at k=0, and the high pass appears at k=2. Observe that here the high pass appears in the middle, because of this symmetry between positive and negative frequencies. Example Transform as Filter Bank: Now we show in an example that the transform is indeed a special case of a critically sampled filter bank with the above computed filters. Take the example signal of length 8, x=sin(2*pi/8*1*arange(8)) and its decomposition into blocks of length 4: xm=zeros((2,4)) xm[0,:]=x[0:4] xm[1,:]=x[4:8] xm Out: array([[ 0.00000000e+00, 7.07106781e-01, 1.00000000e+00, 7.07106781e-01], [ 1.22464680e-16, -7.07106781e-01, -1.00000000e+00, -7.07106781e-01]]) Again we obtain our DFT transform matrix as

T=fft.fft(eye(4)) We obtain the transformed blocks with yt=dot(xm,t) yt Out: array([[ 2.41421356 +0.00000000e+00j, -1.00000000 +1.11022302e-16j, -0.41421356 +0.00000000e+00j, -1.00000000-1.11022302e-16j], [-2.41421356 +0.00000000e+00j, 1.00000000-2.22044605e-16j, 0.41421356 +0.00000000e+00j, 1.00000000 +2.22044605e-16j]]) Here, each row contains the spectrum of each corresponding block. Now we process the input signal x through a critically sampled filter bank with the equivalent filter impulse responses, the transform matrix columns, flipped up-down, and down-sampled with the last phase of the blocks, n 0 =N 1=3 (as it appeared in our derivation of the equivalent impulse responses), y=zeros((2,4))*1j for k in range(4): y[:,k]=sp.lfilter(flipud(t[:,k]),1,x)[3::4] y Out[80]: array([[ 2.41421356 +0.00000000e+00j, -1.00000000 +1.11022302e-16j, -0.41421356 +0.00000000e+00j, -1.00000000-1.11022302e-16j], [-2.41421356 +0.00000000e+00j, 1.00000000-2.22044605e-16j, 0.41421356 +0.00000000e+00j, 1.00000000 +2.22044605e-16j]]) Compare with the transform output: yt Out: array([[ 2.41421356 +0.00000000e+00j, -1.00000000 +1.11022302e-16j,

-0.41421356 +0.00000000e+00j, -1.00000000-1.11022302e-16j], [-2.41421356 +0.00000000e+00j, 1.00000000-2.22044605e-16j, 0.41421356 +0.00000000e+00j, 1.00000000 +2.22044605e-16j]]) We can see that yt from the transform and y from the critically sampled filter bank are indeed the same! In conclusion: We see that a transform is a special case of a filter bank. The tool of reading out the impulse responses from a transform matrix allows us to analyze the resulting filters, and to judge if they fulfill our requirements.