I am trying to resample an audio signal in my application. It will be between 48kHz and 96kHz audio (both upsampling and downsampling).
Looking at the Wikipedia page for resampling I see there are two approaches:
- Decimation and upsampling
- Polynomial interpolation e.g. Lagrange
My questions are:
The upsampling Wikipedia page states
Smooth out the discontinuities with a lowpass filter, which replaces the zeros.
How does inserting L-1 zeroes between the original sample and then passing it through a low pass filter magically replace the zeroes to become interpolated samples?
If I decide to use polynomial interpolation (Lagrange) do I need to use a low pass filter when downsampling to remove the high frequency signals that are above the Nyquist frequency? What about during upsampling? Why or why not?
All the implementations of resampling I see on the internet are "IIR" filters. Are there any "FIR" resampling filters? If so, why is one seemingly more popular than the other?
My application works by resampling 'chunks' of audio randomly instead of a continuous stream (which is why I want to use a FIR resampling filter as there is no continuity). Is this a good idea or should I change my application to use a IIR resampling filter on a continuous stream of audio?