AN-1: Multi-Rate Processing and Polyphase Filtering with Plug-In Example
by Will Pirkle (v1.1 updated 4.1.13)
This app note describes the concepts behind sample rate conversion for up and down-sampling. The accompanying project is an Oversampling WaveShaper. The WaveShaper is a non-linear processor that adds harmonics to the input signal. This can cause aliasing when the harmonics exceed Nyquist. One way to combat this is to oversample the signal and run the WaveShaper at a higher sample rate. After processing, the signal is down-sampled to the original rate. After studying the Plug-In code, you are asked to optimize it. In doing so, you are introduced to the concept of Polyphase Filtering – a way to decompose a FIR filter into smaller sub-filters which ultimately can lower the CPU usage of the rate conversion.
This video shows the Oversampling Waveshaper Plug-In (NOTE: if you compile the plug-in for yourself, make sure to build the Release version (not the Debug version) for fastest processing):