Lesson_11 - EEL 3135: Signals and Systems Dr. Fred J....

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon
EEL 3135: Signals and Systems Dr. Fred J. Taylor, Professor Lesson Title: FIR Filter Architecture Lesson Number: 11 (Section 5-4) Background: In Chapter 5, elementary FIR filters are discussed. FIRs are, and will remain, a popular filter methodology due to their intrinsic simplicity and versatility. In Chapter 5, the basic design of an FIR is seen to be a multiply-add expression. The FIR implementation choices made by an engineer FIR give rise to architectural diversity. Whether the filter implementation involves the use of software, hardware, or firmware, the designer is expected to realize a solution that implements the convolution sum: [ ] [ ] = - = M k k k n x h n y 0 1. efficiently and affordably. The design is also expected to meet all posted speed (filter cycles/sec), power (W), and precision (bits) requirements. The very structure of Equation 1 infer the type of basic elements, called building blocks, that are required to build an FIR solution. Simple (soft) Implementations Equation 1 can be implemented in software using low to high level languages. For example, at a low level, an FIR would execute a code similar to that shown below: For each input sample x[k], do 2 x 0 =x[k] y[k]=h 0 x 0 + h 1 x 1 +…+ h N-1 x N-1 {update FIFO stack} x N-1 = x N-2 *… = … x 2 = x 1 x 1 = x 0 It is assumed that the data is stored in a first-in first-out (FIFO) buffer. Once in operation, the code would perform N multiplications and N-1 adds, export the outcome, and read a new data sample into the FIFO per filter cycle. At a high level, MATLAB would perform FIR filter using the filter command as illustrated below. Example A MATLAB filter call is reported below. filter 1-D digital filter 1
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
EEL 3135: Signals and Systems Dr. Fred J. Taylor, Professor Syntax y = filter(b,a,X) [y,zf] = filter(b,a,X) [y,zf] = filter(b,a,X,zi) y = filter(b,a,X,zi,dim) [...] = filter(b,a,X,[],dim) Description y = filter(b,a,X) filters the data in vector X with the filter described by numerator coefficient vector b and denominator coefficient vector a . If a(1) is not equal to 1 , filter normalizes the filter coefficients by a(1) . If a(1) equals 0 , filter returns an error. If X is a matrix, filter operates on the columns of X . If X is a multidimensional array, filter operates on the first nonsingleton dimension. [y,zf] = filter(b,a,X) returns the final conditions, zf , of the filter delays. If X is a row or column vector, output zf is a column vector of max(length(a),length(b))-1 . If X is a matrix, zf is an array of such vectors, one for each column of X , and similarly for multidimensional arrays. [y,zf] = filter(b,a,X,zi) accepts initial conditions, zi , and returns the final conditions, zf , of the filter delays. Input zi is a vector of length max(length(a),length(b))-1 , or an array with the leading dimension of size max(length(a),length(b))-1 and with remaining dimensions matching those of X . y = filter(b,a,X,zi,dim)
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 11

Lesson_11 - EEL 3135: Signals and Systems Dr. Fred J....

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online