# Downsampling in Matlab simple example

I'm trying to visualise downsampling in the frequency domain in matlab

I take a simple sinusoid, perform an fft and plot a two sided spectrum. Then I downsample the time domain signal (downsamplefactor D=2) and perform the same fft and two sided spectrum plot.

What i would expect to see: (This uses M, i use D as downsample factor) So i'm expecting my frequencies to get stretched by a factor D and the amplitude should get scaled by 1/D. The stretching works as expected, however my amplitude doesnt scale. What am I missing/not seeing? Matlab code:

% normal signal -> fft -> plot
Fs = 100; %sampling frequency
T = 1/Fs; %sampling time
L = 500;  %signal length
f = 5;    %sine frequency

dF = Fs/L;      %frequency bin step
t = (0:L-1)*T;  %time vector
y = 2*sin(f*2*pi*t);    %sine

Y = fft(y);     %fft
P = abs(Y/L);   %extract magnitude plot

P2 = fftshift(P); %rearranges P to 2sided spectrum:negfreq,0component,posfreq

F2 = dF*(-L/2:1:L/2-1); %for when L is even
%F2 = dF*((-L+1)/2:1:(L+1)/2-1); %for when L is odd
F2rad = F2*pi/(Fs/2); % *pi /Nyquist to convert to [-pi pi]

figure, hold on
%plot(F2,P2) %frequency plot

% downsampled signal -> fft -> plot

D = 2;
yd = y(1:D:L); %can also use downsample command
yd = downsample(y,D); %equal to above

Ld = length(yd); %downsampled length

Yd = fft(yd);

Pd = abs(Yd/Ld); %0component,posfreq,nyquist,negfreq
Pd2 = fftshift(Pd); %rearranges P to nyquist,negfreq,0component,posfreq

dFd = (Fs/D)/Ld; %frequency bin step

Fd2 = dFd*(-Ld/2:1:Ld/2-1); %for when L is even
%Fd2 = dF*((-L+1)/2:1:(L+1)/2-1); %for when L is odd
Fd2rad = Fd2*pi/(Fs/(2*D)); % *pi /Nyquist to convert to [-pi pi]

%plot(Fd2,Pd2) %frequency plot

Pd = abs(Yd/Ld)