MATLAB: How to plot the frequency spectrum of a signal on Matlab

amamplitudecarrierdomainfourierfrequencyintelligenceModulationsamplingsignalspectrumvolts

Hello everybody I have already developed a small code with a lot of help from Mathworks and the help function (in Matlab), and from some forums but I need someone to help me with my code. It's pretty much working but the spectrum's amplitude is not going according to theory. It should be half of the carrier's amplitude which in my case should be 25 volts, but Matlab's plot gives 22.51 volts which is not correct also on the sidebands I am getting 8.476 volts and it should be a quarter of the carrier's amplitude which in my case is 12.5 volts.
Here is my code:
clear all;clc
Fs = 200; % Sampling frequency Fs >> 2fmax & fmax = 50 Hz
t = 0:1/Fs:7501; % length (x) = 7501
x = 50*(1+0.75*sin(2*pi*t)).*cos(100*pi*t); % AM Signal
xdft = (1/length(x)).*fft(x);
freq = -100:(Fs/length(x)):100-(Fs/length(x)); %Frequency Vector
y = abs(fftshift(xdft));
figure(1); % Plot signals in both time and frequency domain
subplot(211);plot(t,x);grid on;title 'Amplitude Modulated Signal';
axis([0 5 -100 100]);xlabel 'Time (sec)';ylabel 'Amplitude (volts)';
subplot(212);plot(freq,y);grid on;title 'AM Signal Spectrum';
axis([-60 60 0 25]);xlabel 'Frequency (Hz)';ylabel 'Amplitude (volts)';

Best Answer

Before with my time vector wrong t = 0:1/Fs:7501; % length (x) = 7501 <http://i920.photobucket.com/albums/ad48/gabrielthemessenger/before.jpg>
After with the correct time vector t = 0:1/Fs:1-1/Fs; <http://i920.photobucket.com/albums/ad48/gabrielthemessenger/after.jpg>