It seems that the Rate Transition block does not do any interpolation. It behaves like a zero-order hold when the sampling frequency is higher in the input than in the output. Thus, you could try this:
% Sampling frequency
Fs1 = 10e3;
Fs2 = 4e3;
% Load your data
y = load('yourdata'); %y=sin(0:1/Fs1:1);
Ttime = (length(y)-1)*(1/Fs1);
% X-Axis
x = 0:1/Fs1:Ttime;
xi = 0:1/Fs2:Ttime;
% Zero-order hold
yi = zeros(length(xi),1);
jj = 1;
xi(1) = x(1);
for ii=2:length(y)
% Update value
if (x(ii)>=xi(jj)),
yi(jj) = y(ii-1);
jj = jj+1;
end
end
% Plot
figure
hold on
scatter(x,y,'b');
scatter(xi,yi,'r');
hold off
legend('Fs=10k','Fs=4k')
The only modification with the previous code is to estimate the yi (y-axis interpolated) from a zero-order hold.