Solve MATLAB FFT Help for Unity Rectangular Pulse

  • Thread starter Thread starter Fronzbot
  • Start date Start date
  • Tags Tags
    Fft Matlab
Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
1 replies · 6K views
Fronzbot
Messages
58
Reaction score
0

Homework Statement


Find the Fourier Transform of a unity amplitude rectangular pulse of width 2T, where T=[ims]. Use MATLAB to plot the magnitude response of this signal's FT.


Homework Equations





The Attempt at a Solution


I got something that LOOKS right, but the first zero-crossing SHOULD be +-pi/T which equals 3.14e3, in this case (since I'm taking the Fourier Transform of an aperiodic rectangular pulse). However, when plotted, MATLAB is telling me it's about 2000. On top of that, the amplitude should be 2*T which, in this case, is 0.002 but MATLAB says it's 3... I have no clue what is going wrong with the code. Any help would be GREATLY appreciated.

Code:
clear all
close all

% Part 1

%Following generates pulse of width T
T = 1e-3; %half-width of rectangular pulse
dt = 1e-3;
ts = [-T:dt:T];
pulse = rectpuls(ts);


%Generate fft of pulse
N = 1024; %Number of samples
y=fftshift(fft(pulse,N)); 
ws = 2*pi/T;
waxis = [-ws/2:ws/N:ws/2-(ws/N)];
plot(waxis,abs(y))
title(['FT of Rectangular Pulse of width ',num2str(2.*T./1e-3),'ms']);
xlabel('w [rad/s]');
ylabel('Amplitude');
axis auto
 
on Phys.org