Okay, I'll risk "exceeding my daily message limit". If the administrators think it is inappropriate, dealing with that is at their discretion.
Here is another proof that the alias images in the spectrum are caused by the sampling/upsampling, not the interpolation: Let's replace linear interpolation with simply stuffing zeros between samples. So that means, we upsample the signal without applying interpolation or filtering. Let's try this on an ~50 Hz sine wave sampled at 44100/88 ~= 501 Hz, upsampled to 44.1 kHz by stuffing 87 zeros between each sample. The resulting waveform looks like individual impulses, spaced 88 samples apart: http://morpheus.spectralhead.com/img/sine_upsampled_waveform.png Here is the spectrum: http://morpheus.spectralhead.com/img/sine_upsampled_spectrum.png We can see the usual alias frequencies at 450 Hz, 550 Hz, 950 Hz, 1050 Hz, 1450 Hz, 1550 Hz, 1950 Hz, 2050 Hz, ... This is because the upsampling causes the original spectrum to repeated infinite times, causing these alias frequencies to appear in the resulting spectrum. Therefore, it is NOT the interpolation that is causing these alias images, but rather, the upsampling... More precisely, they're already present in the original signal sampled at 500 Hz, the upsampling just makes them visible. I used no interpolation at all, yet all this aliasing appeared on the spectrum. All the interpolation does, is it filters out some of this aliasing... Since the impulse response of linear interpolation is a triangle, applying linear interpolation is equivalent to convolving the resulting upsampled signal with a triangular kernel filter. Since the Fourier transform of a rectangle is a sinc function, and a triangular kernel is equivalent to convolving two rectangular kernels, the Fourier spectrum of a triangular kernel will look like a sinc^2 function. But that's not what causes the aliasing... it's there already after the upsampling, before you apply the interpolation/convolution. You can take a discretized version of a continuous triangular kernel sampled at the upsampled rate, and convolving the upsampled signal with that kernel will be equivalent to linear interpolation. You do not actually need a continuous time signal to be present, and the aliasing/imaging is there already before doing the triangular convolution at the upsampled rate. Several authors discuss the equivalence of linear interpolation and convolution with a triangular filter, examples: 1) "linear interpolation can be expressed as convolving the sampled function with a triangle function"[1] http://morpheus.spectralhead.com/img/linear_interpolation1.png 2) "The first-order hold [= linear interpolation] corresponds to an impulse response for the reconstruction filter that is a triangle of duration equal to twice the sampling period."[2] http://morpheus.spectralhead.com/img/linear_interpolation2.png 3) http://morpheus.spectralhead.com/img/linear_interpolation3.png [1] Oliver Kreylos, "Sampling Theory 101" http://idav.ucdavis.edu/~okreylos/PhDStudies/Winter2000/SamplingTheory.html [2] Alan V. Oppenheim, "Signals and Systems", ch. 17. "Interpolation" http://ocw.mit.edu/resources/res-6-007-signals-and-systems-spring-2011/lecture-notes/MITRES_6_007S11_lec17.pdf [3] Ruye Wang, "Sampling Theorem", "Reconstruction of Signal by Interpolation" http://fourier.eng.hmc.edu/e101/lectures/Sampling_theorem/node3.html -P _______________________________________________ music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp