Amplitude demodulation of sinusidal signal in matlab
I think there are some problems with your analysis structure. 

First of all, for being able to see from -0.5 to 0.5, without aliasing, you have to sample at 1.

Secondly, if you want to down convert a signal, bring it to DC you need to multiply it with the corresponding cosine in time, or discrete time, or apply the convolution to its spectrum with the corresponding Fourier transformed cosine (a cosine in spectrum is a delta Dirac function on the frequency of the same cosine).

By the way, I do not know what the mkhwdata function does.
The solution should look something like this:

clc
close all;
clear

fc = 0.2;
fs = 1; %%%%%%%%%%%%%%%%%%

[z]= mkhwdata([xxxxxxxxx]);

[Z,nu] = tdftfast(z);
%N = length(z);
n = [0:(length(z) - 1)];
%n = N*(0:N-1);
mult  = exp(1i*2*0.25*pi.*n);
mult2 = exp(1i*2*pi*0.5.*n);

% We bring the image to DC
[z1] = (z.*transpose(mult)); 
[z2] = (Z.*transpose(mult2));

%Lowpass filter
[num,den] = butter(9,0.2);

y  = filter(num,den,z);
y1 = filter(num,den,z1);
y2 = filter(num,den,z2);

figure(4)
ylabel('Amplitude');
xlabel('Frequency (hz)');
subplot(221)
present_image(z);
subplot(222)
present_image(y);
subplot(223)
present_image(y1);
subplot(224)
present_image(y2);