Hi, I either can't reproduce your problem or am not understanding it.
Below I have inserted some sample code (which I think essentialy copies yours).
Since I didn't have your B3_noise signal I made one myself by creating a rand signal and then adding a single frequency component to it with a frequency of 100 Hz.
I ran it for two cases first with Fs = 1000 Hz and then with Fs = 2000 Hz. In both cases there is a clear spike, as expected at 100 Hz.
You will note that the maximum frequency on the two plots is different, 500 Hz in the first case and 1000 Hz in the second. This is just the Nyquist frequency (1/2 the sampling rate), which is the highest frequency that can be seen without aliasing in the FFT.
In the future, it is better to use the code button on the Matlab answers toolbar to insert code rather than using a screen shot. When you do it that way people can directly edit and try out your code snippet.
Fs = 2000;
numPoints = 2500;
fPure = 100;
aPure = 10;
T = 1/Fs;
t = (0:numPoints-1)*T;
B3_noise = rand(numPoints,1) + aPure*sin(2*pi*fPure*t(:));
L = length(B3_noise);
t = (0:L-1)*T;
N = 2^nextpow2(L);
f = (Fs*(0:(N/2))/N)';
Y = fft(B3_noise,N);
Y_mag = abs(Y/N);
Y_mag = Y_mag(1:N/2+1)/(N/2);
figure
plot(f,Y_mag)
title(['Fs = ',num2str(Fs)])