Digital Signal Processing Reference
In-Depth Information
3.2.3
Scaling
The problem of register overflow can be managed successfully by scaling
operations in three main areas, namely, (a) scaling the input signal; (b) scaling the
filter coefficients and (c) managing the register size. If the input signal is full
scale i.e. 2 B- 1 -1, and the largest filter coefficient also has value 2 B- 1 -1, then the
output value would require a register whose size is at least 2 B bits wide after
multiplication. One may use any scaling factor to pre-scale the input signal so that
2 B bit-wide registers are adequate. However, this may lead to a loss of
information if the input signal features are smaller than the digitization level after
scaling [7]. And moreover, whatever scaling factor is used, the same must be used
to renormalize the filter output to achieve unity gain. Alternatively, the filter
coefficients may be scaled (i.e., divided) by 2 B- 1 to realize a fixed-point fractional
representation so that they range from -1 to (1 - 1/2 B- 1 ); 2's complement fixed-
point arithmetic offers several advantages and is common in many applications.
Third, the register width may be further increased from 2 B to 2 B + k bits where k
is the smallest power of 2 which is greater than the filter gain (i.e., 2 k
G ). Once
filtering is completed, the output must be rescaled (i.e., multiplied) by (1 -
Q /100) F c to achieve unity gain.
Other forms of scaling using L 1 , L 2 , or L norms have been proposed and are
popular (see e.g., [1,6]). One of the best known scaling factors is given by
1
λ
=
(3.8)
+
=
L
1
|
h
|
k
,
B
k
1
Here the filter coefficients
to achieve suitable scaling.
This technique, known as sum scaling, is the most stringent of scaling policies and
is entirely overflow-proof when the input signal is in the range -1 to (1 - 1/2 B- 1 ).
Note however, that this relation is so stringent that it often leads to a suboptimal
signal-to-noise ratio for the filter.
In general, no rule can be given for scaling as the filter implementation,
nature of the input signal, and arithmetic usually dictate the method of scaling. It
is worthwhile to note though that some form of scaling should be carried out with
the factor G, used either as subfactors or as a single factor, if unity gain filtering is
to be achieved.
h ,
are multiplied by
λ
B
3.2.4
An Example in Converting LPF99F0.3 to 16-Bit Precision
As an example of the use of (3.6) we will convert the coefficients of a 99-point
low-pass filter with F c = 0.3 to 16-bit integers. In this case, B = 16, and the filter
coefficients corresponding to LPF99F0.3 are used. The overshoot Q from the Perfor-
 
Search WWH ::




Custom Search