Intel 2920 Design Handbook page 62

Analog signal processor
Table of Contents

Advertisement

SUMMARY OF FILTER CHARACTERISTICS
3) Use the bilinear transform on the transfer function
in s (obtained in step 2) to obtain a transfer function
in z, i.e., replace each occurance of s with
2
(1 -z-l)
T
(1
+
z-l)
The digital filter which corresponds to the z-plane
expression from step 3 (Figure 5-10) will now have the
desired cutoff characteristic.
Note that this transform may alter the number of poles
and zeros involved.
If
poles and zeros are independently
transformed, redundant poles or zeros may occur.
Using this transform requires careful elimination of
such redundancies.
5.6 Implementing Filters with the 2920
Once you have determined the locations of your filter's
poles and zeros in the z-plane, converting this structure
into 2920 code is relatively straightforward. In the
blocks of Figures 5-7 and 5-8, there are three basic
operations performed to achieve digital filtering action:
a unit delay, addition, and multiplication.
For time invariant filters, the multiplications performed
for digital filters will be of some variable Yi by a con-
stant represented by the values Ao, AI, A2, BI, or B2.
The goal of the 2920 programmer is to implement these
functions with a minimum of 2920 instructions.
Unit
Delay-The blocks labeled z-I correspond to unit
delays, i.e., delays of one sample interval. The sample
interval is the time it takes for the 2920 to make one pass
through its program. The value on the output side of a
delay block represents the value computed'at the block's
input on the previous pass through the program.
The delay can be realized by a RAM location which
retains the data from the previous pass until it is needed.
A single LDA instruction of the 2920 is sufficient to
implement a unit delay block. Figure 1 shows two delay
blocks; thus two LDA instructions and two RAM loca-
tions are required. These instruction have the form
shown below:
LDA Y2, YI, ROO
LDA YI, YO, ROO
5-11
After executing these two instructions, the RAM loca-
tion designated Y2 contains the value of Y 1 from the
previous pass, and Y 1 contains the value of YO from the
previous pass. To complete the filter realization, it is
sufficient to complete the calculations of the new value
of YO from the current values of input, Y 1, and Y2, and
then compute the output from YO, Yl, and Y2. The new
value of YO involves multiplication of Yl and Y2 by the
constants Bl and B2. The instruction set of the 2920
permits
implementing
these
multiplications-by-
constants as a series of addition and subtraction steps.
Implementing
Coefficients-In general, the coeffi-
cients are not realized exactly, but rather are approx-
imated as closely as necessary to meet the filter
specifications. This permits minimizing the number
of 2920 program steps required to realize the
multiplications.
Each ADD or SUB instruction of the 2920 can be
thought of as adding a value to (or subtracting it from)
the destination operand (e.g., Yl in the last instruction
above). The value used in that operation is the product
of some power of two and the source operand (e.g., YO
in the last instruction above). There is a simple
algorithm for converting a multiplication by a constant
into a series of additions and subtractions.
It
consists of
choosing, at each step, the particular power of two and
the specific addition or subtraction operation which will
minimize the error, i.e., produce the closest approxima-
tion to the desired value.
For example, consider the coefficient Bl
=
1.8. The
power of two that would most closely approximate this
value would be 2
1 ,
or 2. This value may be realized with
a single 2920 instruction:
ADD YO, YI, LOI
The error in realizing B 1, after this step, would be
2-1.8=+0.2.
If
such an error is too large, another 2920
instruction step is added. To reduce an error of +0.2,
the programmer subtracts the value 2-
2
or 0.25 from the
approximation, giving a net approximation of 1.75 and
an error of -0.05.
If
-0.05 is still too large an error, an
additional 2920 step equivalent to adding the source
operand multiplied by 2-
4
= 0.0625 can be added. A net
approximation of 1.8125 results, with an error of
+0.0125. This process can be repeated until the coeffi-
cient is realized with adequate accuracy for the filter
requirements. Because there are two coefficients in the
filter, two sequences of operations must be defined as

Advertisement

Table of Contents
loading

Table of Contents