% Simulation parameters
fsampling = 20e6 ; % sampling frequency
Tsampling = 1/fsampling ; % sampling period
N = 512 ; % DFT size
% Pulse parameters
A = 1/1e-6 ; % pulse amplitude
D = 1e-6 ; % pulse duration
t = (0:Tsampling:(N-1)*Tsampling) ;
pulse = A*rectpuls(t-D/2,D) ;
f = (fsampling/N * (0:N-1)) ;
% simulated spectrum
simulated_spectrum = 1/fsampling*fft(pulse,N) ;
% exact spectrum
exact_spectrum = A*D*sinc((0:fsampling/1000:fsampling/2)*D).*exp(-
j*pi*(0:fsampling/1000:fsampling/2)*D) ;
figure
plot(f(1:N/2)/1e6,20*log10(abs(simulated_spectrum(1:N/2))),'k')
hold on
plot((0:fsampling/1000:fsampling/2)/1e6,20*log10(abs(exact_spectrum)),'r')
hold off
axis([0 5 -70 10])
xlabel('frequency (MHz)')
ylabel('magnitude (dB)')
legend('simulation','analysis')