FIR Preprocessing Filter Home Overview Design PLAs System Testing
 
Building Blocks
Circular FIFO
Multiplier
Adder
Matlab Design
 
Circuit Design: Matlab Filter Design

 

An FIR filter design was selected for this pre-processing filter ASIC. FIR filters have several advantages, including a linear phase shift with frequency, and limited overall distortion. An N-tap FIR is defined by its coefficients h[], pre-processed data [x], and post-processed data y[]:

Linear phase-shift FIR filters were used in this project. They are defined by a symmetric set of coefficients:

Four sets of filter coefficients were designed for the filter ROM. These coefficients were initially produced in Matlab by the following commands:

  • Low pass
    • h1 = fir1(20,0.45,'low');
  • High pass
    • h2 = fir1(20,0.55,'high');
  • Band stop
    • h3 = fir1(20, [0.23 0.77],'stop');
  • Band Pass
    • h4 = fir1(20, [0.25 0.65]);

The low-pass filter is shown in Figure 1.

Figure 1: Low-pass filter

 

The high-pass filter is shown in Figure 2.

Figure 2: High-pass filter

 

The band-stop filter is shown in Figure 3.

Figure 3: Band-stop filter

 

The band-pass filter is shown in Figure 4.

Figure 4: Band-pass filter

 

Filtering of raw data in Matlab was easily accomplished with the following command:

  • y = conv (x, h)


The filter coefficients initially produced in Matlab were in floating-point decimal format. They were converted into two's complement, fixed-point format before being stored in the filter ROM.