Table of Contents
Introduction
This blog describes how to design the FIR filter gain through normalization and then applying a gain. Applying filter gain may be desirable to setting the proper amplitude level or power level needed for follow on processing based on threshold values or other reference levels.
Filter design methods may create different gains for the resulting filters such as with Remez, using windowed sinc functions or as specially designed pulse shaping filters. Normalizing the magnitude response of an FIR filter makes the gain 1, or 0 dB, at a desired frequency. A gain factor can then be applied by scaling each of the filter weights.
More blogs on filter design:
Normalizing FIR Filter Gain
Normalizing a filter to unit gain at some frequency is as simple as dividing the filter weights by the magnitude of the discrete-time Fourier transform (DTFT) at
(1)
where is the normalized filter and h[n] is the unnormalized filter. To see why this is the case, start by taking the DTFT of h[k] which is
(2)
The unnormalized filter gain at is the magnitude of the frequency response
(3)
A filter gain of 1 at is achieved by scaling the frequency response (2) by the unnormalized filter gain at (3). The frequency response of the normalized filter is therefore
(4)
The time-domain filter weights are the inverse DTFT of (4)
(5)
which is the same as (1)
(6)
Scaling FIR Filter Gain
Examples for Designing FIR Filter Gain
Low Pass Filter Example
Figure 1 gives the impulse and frequency responses for an unnormalized sinc with 31 filter weights with a Hamming window applied. Figure 2 gives the responses after the filter is normalized to 0 dB gain at using (6) and Figure 3 gives the responses after scaling the same filter to have a gain of 6 dB at using (10).
Band Pass Filter Example
Figure 4 gives the impulse and frequency responses for an unnormalized sinc with 31 filter weights with a Hamming window applied and then frequency shifted to band-pass. Figure 5 gives the responses after the filter is normalized to 0 dB gain at , which is equivalent to , using (6) and Figure 6 gives the responses after scaling the same filter to have a gain of -3 dB using(10).
Conclusion
The gain of an FIR filter can be designed by first normalizing the weights to unit gain at frequency and then scaling each of the weights by the desired linear gain. The filter normalization is calculated by diving the filter weights by the magnitude of the frequency response at .
More blogs on filter design: