DSP SRC Filters

This was a pretty technical question, so I’m going to keep the answers at a pretty technical level. A lot could be written on the tradeoffs involved, reasoning behind them, why some of the choices below are valid for music listening (but wouldn’t be for other applications), etc. And there is a lot of basic knowledge of how DSP and sample rate conversion works that would be hard to convey in a short post.

There is a fair bit of religion in this space to contend with in this area, and we do not really subscribe to a particular view. The four filter choices are provided to allow people with a personal bias towards/against minimum phase filters and slow rolloff filters to exercise that preference.

The designs are the the same for the minimum + linear phase variants aside from the phase shift. The designs are also the same (relative to source/target frequencies of course) for all PCM sample rate conversion pairs. So a few plots can paint the picture.

All below plots are for a 44.1kHz -> 88.2kHz upsampling filter. I chose that rate pair to keep the graphs as readable as possible. Also–a real life DAC does not use linear interpolation between samples like MATLAB’s plotting tools. So please ignore the fact that the impulses below look choppy. It has nothing to do with the filters and everything to do with how I generated the plots below.

Precise is a steeper filter. It’s called “precise” because in some lines of thinking, the measure of how “ideal” a filter is is primarily determined by how much of the sub-nyquist frequency range is preserved without attenuation. It is not quite a pure “brick wall”. It’s flat to about 20kHz for 44.1kHz source material, and has approx -60dB of attenuation at Fs/2.

Smooth is a slow rolloff filter. It trades off some attenuation of high frequencies to reduce the amount of ringing. People who agonize over impulse response rather than frequency response plots might prefer this style of filter. This one starts to attenuate pretty early. -0.1dB at 15kHz for 44.1kHz source material, -6dB at Fs/2. It is very leaky, but has a “cleaner” impulse response.

Precise: Frequency Response

Precise: Impulse Response (Linear Phase)

(Sorry for the lack of smoothing in the plot…that is a consequence of the plotting method not a sign of trouble in the filter).

Precise: Impulse Response (Minimum Phase)

(Sorry for the lack of smoothing in the plot…that is a consequence of the plotting method not a sign of trouble in the filter).

Smooth: Frequency Response

Smooth: Impulse Response (Linear Phase)

(Sorry for the lack of smoothing in the plot…that is a consequence of the plotting method not a sign of trouble in the filter).

Smooth: Impulse Response (Minimum Phase)

(Sorry for the lack of smoothing in the plot…that is a consequence of the plotting method not a sign of trouble in the filter).

13 Likes