 # FIR Filtering For Audio Practitioners

A basic introduction of FIR filter generation for audio systems.

The reader can observe how the low frequency roll off changes and how the phase is not as flat in the low frequency region.

In general, FIR filter can work effectively to do correction for frequencies below 100Hz if a long processing delay can be tolerated.

Here is another example of a 3-way horn-loaded loudspeaker measurement. The loudspeaker’s transfer function is shown in figure 7. Figure 7

Two FIR filters (fs = 48 kHz, N = 2048, frequency resolution = 23.3 Hz) are created using different processing delay to linearize the loudspeaker’s phase response only, without affecting the frequency response of the loudspeaker. Figure 8 and figure 9 are showing the filter’s transfer function (left graph) and the calculated output (right graph). Figure 8

Figure 8 shows the result of a filter with 30ms processing delay. The filter’s frequency response is mostly flat with a little bit of dip around 45Hz. This setup will work nice to linearize the phase response of the loudspeaker system. However, if we shorten the processing delay to 10ms in the filter creation process, the result will be very different. Figure 9

Figure 9 – the left graph shows the filter’s transfer function with 10ms processing delay. Observe a drop starting at 80Hz in the filter’s frequency response. The right graph shows the predicted result of the loudspeaker where the phase response is successfully flattened, but the low frequency response does not extend as low as the original loudspeaker’s response shown in figure 7.

## Windowing

FIR has a finite duration as the name states. Therefore in the creation process, an audio practitioner needs to define where the finite points are.

FIR filters are not very good at handling specific frequency response (especially low frequency) because one needs to truncate the impulse of the FIR filter (hence it’s called finite). The act of further truncating is called windowing.

Typically, FIR filters are calculated based on an ideal filter and are then truncated. Here is several illustrative examples about windowing processes.