Page 367 - Analog and Digital Filter Design
P. 367
364 Analog and Digital Filter Design
being the highpass response. In each case the sinc (x) envelope will depend on
the passband width.
DSP Implementation of an FIR Filter
Although it would be possible to implement the filter as shown in previous
figures, by shifting the data using shift registers or flip-flops, there is another
method more appropriate to a processor based system. Anyone who has written
a “C”program will know that pointers are used to enable faster operation. Point-
ers are memory locations that contain the address of another memory location.
An example will explain this concept.
Suppose we want a 20-step shift register; this can be implemented by having a
20-address memory. The “input” can be an address set into one pointer, and the
“output” can be an address set into another pointer. Each time there is a new
data word it is stored at the address pointed to by the “input” pointer. If the
pointer is decremented after each read operation this is equivalent to the data
in the whole register moving to a higher address, relative to the pointer. This
concept is illustrated in Figure 15.7.
Further delays
b
I Input
Figure 15.7
Pointer Operation
When the pointer reaches the end of the address range it is reset to start at the
beginning. By this means we have the equivalent of a shift register; the old data
is overwritten instead of being shifted out.
All the memory locations need to be read and multiplied by their respective coef-
ficients. The problem is that the beginning of the shift register keeps moving to
a lower address. However, since we know that the input address pointer is point-

