Although some questions were asked about this topic, I have not seen any that answers all the basic questions, that is why I took the liberty to ask more about this.
I suggest to limit, (or at lest to start by), 1D signals. Of course if someone wants to extend they are welcome.
For example, in some lectures it is mentioned that
an ideal 1D interpolator is an upsampler (by the wanted factor, e.g. 2) in cascade with an ideal lowpass filter i.e. an sinc.
Decimation would be to opposite. A convolution with a filter (sinc?) then a downsampler (by the wanted factor e.g. 2).
In Matlab, given a sine wave at a given frequency for example, how would you proceed to downsample it to a lower frequency? And could you make the link with aliasing ?
I have started to do the following, "manually" coded:
%Working with audio frequencies, for example, %to listen the results with audioread() function afterwards Fs=8000;%sampling frequency t=0:(1/Fs):1; f=4000; x=sin(2*pi*f*t); x_dwnsamp=zeros(length(x)); %decimate x to see what happends wrt aliasing decimation_step=2; for i=1:decimation_step:length(x) x_dwnsamp(i)=x(i); end figure; subplot(1,2,1); plot(abs(fft(x))); subplot(1,2,2); plot(abs(fft(x_dwnsamp)));
This was an attempt to resample the signal x which is just at the Nyquist freq. (4KHz) fora sampling freq. of 8KHz.