Using fft in matlab to retrieve input signal magnitude
I just fixed 3 things in your code and added comments where I did. The reason is basicly just the way the FFT is defined/implemented in Matlab.

fs         = 1024;            
fftsize    = 2048;           % Choose as a power of 2 of the sample rate       

sim_length = fftsize/fs ;     
t          = 0:1/fs:sim_length-1/fs;                
x          = 0.5*sin(2*pi*15*t);

data                  = x';
window                = blackman(fftsize);
windowed_data         = window.*data;


fftd_data   = abs( fft(windowed_data, fftsize)/length(x) ); % Normalize the fft

bin_freq = fs/(fftsize) ;

fundamental_bin = ceil( 15/bin_freq );

lower_limit = fundamental_bin-4;
upper_limit = fundamental_bin+4; 

2*sum( fftd_data(lower_limit:upper_limit) ) % Multiply by 2, because of the DFT-symmetry

ans =

    0.5000


For a more detailed explanation, check out this thread at Mathworks forum.