1 Digital Signal Processing FIR Filtering and Convolution Dr. Dung Trung Vo Telecommunication Divisions Department of Electrical and Electronics September, 2013 Practical DSP methods Two basic classes: Block processing methods: data are collected and processed in blocks. Some typical applications include: FIR filtering of finiteduration signals by convolution Fast convolution of long signals broken up in short segments DFTFFT spectrum computations Speech analysis and synthesis Image processing Sample processing methods: data are processed one at a time—with each input sample is transforms into an output sample. Some typical applications include realtime applications: Realtime filtering of long signals Digital audio effects processing Digital control systems Adaptive signal processing Functional mapping: Linear systems: this mapping becomes a linear transformation CuuDuongThanCong.com https:fb.comtailieudientucntt2 FIR filtering applications Chapter focus: consider block processing and sample processing methods for FIR filtering applications Discuss computational aspects of the convolution equations Present various equivalent forms of convolution: Direct form Convolution table LTI form Matrix form Flipandslide form Overlapadd block convolution form. Block Processing Methods Convolution Finite set of samples: Duration of the data: where T is the sampling time interval Number of time samples L: CuuDuongThanCong.com https:fb.comtailieudientucntt3 Block Processing Methods – Convolution cont Input block: is L collected signal samples: Direct and LTI forms of convolution: Sum of the indices notice: Convolution table form: Block Processing Methods – Direct Form Block of impulse response: Consider a causal FIR filter of order M with impulse response h(n), n = 0, 1, . . . , M: Filter’s length: Index determination requirement: (i) the range of values of the output index n, and (ii) the precise range of summation in m Range of indices h(m): Range of indices x(n − m): or or This is the index range of the output sequence y(n) CuuDuongThanCong.com https:fb.comtailieudientucntt4 Block Processing Methods – Direct Form cont Output sequence: Output length: where y is longer than the input x by M samples, follows from the fact that a filter of order M has memory M Relative lengths of filter, input, and output blocks: Block Processing Methods – Direct Form cont Filter index’s range: or Direct form of convolution: for n = 0, 1, . . . , L+M−1. Compact notation: CuuDuongThanCong.com https:fb.comtailieudientucntt5 Block Processing Methods – Direct Form cont Example: consider the case of an order3 filter and a length5 input signal output length: convolutional equation: for example, at n = 5: Block Processing Methods – Direct Form cont All output samples: CuuDuongThanCong.com https:fb.comtailieudientucntt6 Block Processing Methods – Convolution Table Note: each output yn is the sum of all possible products hixj with i + j = n Convolution table: Calculation: entries within each antidiagonal strip are summed together to form the corresponding output value: The convolution table is convenient for quick calculation by hand because it displays all required operations compactly Block Processing Methods – Convolution Table cont Example: calculate the convolution of the following filter and input signals Solution: CuuDuongThanCong.com https:fb.comtailieudientucntt7 Block Processing Methods – LTI Form Input: as a linear combination of delayed impulses or Output: Block Processing Methods – LTI Form cont Blocks of input and output signals: Linear combinations of righthand side: CuuDuongThanCong.com https:fb.comtailieudientucntt8 Block Processing Methods – LTI Form cont LTI form of convolution: Calculation: the rows of the table correspond to the successive delays (right shifts) of the h sequence—the mth row corresponds to delay by m units. Each row is scaled by the corresponding input sample, that is, the mth row represents the term x mhnm in the LTI form. After the table is filled, the table entries are summed columnwise to obtain the output samples y(n) Block Processing Methods – LTI Form cont Example: calculate the convolution of the following filter and input signals Solution: CuuDuongThanCong.com https:fb.comtailieudientucntt9 Block Processing Methods – Matrix Form Linear matrix form: Filter matrix H: must be rectangular with dimensions Matrix form: columns of H are the successively delayed replicas of the impulse response vector h. H is Toeplitz matrix, which has the same entry along each diagonal Block Processing Methods – Matrix Form Form cont Example: calculate the convolution using the matrix form Solution: CuuDuongThanCong.com https:fb.comtailieudientucntt10 Block Processing Methods – Matrix Form Alternative matrix form: Compact form: Data matrix X dimension: Block Processing Methods – Matrix Form Form cont Example: calculate the convolution using the matrix form Solution: CuuDuongThanCong.com https:fb.comtailieudientucntt11 Block Processing Methods – FlipandSlide Form Flipandslide form of convolution: filter h(n) is flipped around or reversed and then slid over the input data sequence Calculation: output sample is obtained by computing the dot product of the flipped filter vector h with the M+1 input samples aligned below it. The input sequence is assumed to have been extended by padding M zeros to its left and to its right. Block Processing Methods – FlipandSlide Form cont Inputon transient: At time n = 0, the only nonzero contribution to the dot product comes from h0 and x0 which are time aligned. It takes the filter M time units before it is completely over the nonzero portion of the input sequence. The first M outputs correspond to the inputon transient behavior of the filter Steadystate: for a period of time M ≤ n ≤ L−1, the filter remains completely over the nonzero portion of the input data, and the outputs are given by the form Inputoff transients: During this period the filter slides over the last M zeros padded at the end of the input CuuDuongThanCong.com https:fb.comtailieudientucntt12 Block Processing Methods – Transient and SteadyState Behavior Time index n range: Three subranges: Transient and steadystate filter outputs: Block Processing Methods – Transient and SteadyState Behavior LTI form: Transient and steadystate filter outputs: CuuDuongThanCong.com https:fb.comtailieudientucntt13 Block Processing Methods – Convolution of Infinite Sequences LTI form: Three cases of infinite Sequences: 1. Infinite filter, finite input; i.e., M =∞, L < ∞. 2. Finite filter, infinite input; i.e.,M