The problem is to estimate the essential bandwidth of a rectangular pulse

\begin{equation} g(t) = \Pi(t/T), \end{equation}

Where the essential bandwidth must contain at least $90\%$ of the pulse energy.

Here's what I'm trying to solve :

$$0.9 =\frac1\pi\int\limits_0^{2BT\pi} \mathrm{sinc}^2 \left(\frac x2\right) \,dx$$

I'm not sure how to get MATLAB to solve this numerically for the upper bound value.

first the energy for the pulse is $E_g$

\begin{equation} E_g = \int^{+\infty}_{-\infty} g^2(t)dt\, = \int^{+T/2}_{-T/2} dt\, = T \end{equation}


\begin{equation} \ \Pi(t/T) \Longleftrightarrow T\mathrm{sinc}(\pi fT) \end{equation}

and for the Energy Spectral Density of the pulse

\begin{equation} \ \Psi(f) = \mid G(f) \mid ^2 = T^2\mathrm{sinc}^2(\pi fT) \end{equation}

The energy $E_B$ within the band from $0$ to $B$ hertz is

\begin{equation} \ E_B = \int^{+B}_{-B} T^2 \mathrm{sinc}^2(\pi ft)df\, \end{equation}


\begin{equation} \ 2 \pi fT = x \end{equation}

\begin{equation} \ df = dx/((2 \pi fT) \end{equation} plugging into the integral \begin{equation} \ E_B = (T/ \pi) \int_{0}^{2 \pi BT} \mathrm{sinc}^2(x/2)dx\, \end{equation} \begin{equation} \ E_g = T \end{equation}

\begin{equation} \ 0.9 = (E_b/E_g) = 1/ \pi \int^{2 \pi BT}_{0} \mathrm{sinc}^2(x/2)dx\, \end{equation}

I wanted to work through this example fully, but I'm not sure how to get this numerically solved, solving for the bandwidth B from the upper bound of the integral using MATLAB.

  • $\begingroup$ You also need to define $\text{sinc}(x)$ since it has two definitions. If it is $\frac{\sin(\pi x)}{\pi x}$, then there is no answer because $$\int_{0}^{\infty}\text{sinc}^2(x/2)dx=1$$ which is less than $0.9(\pi)$. Are you sure there is a $1/\pi$? $\endgroup$
    – msm
    Oct 9, 2016 at 3:53
  • $\begingroup$ You should give us more context. It looks like you're trying to solve for the 90% bandwidth of some system. Could you add the actual question that leads to that integral? $\endgroup$
    – Matt L.
    Oct 9, 2016 at 7:30
  • $\begingroup$ In its current form this is a math question, nothing to do with signal processing apart from the fact that the integrand is a famous example of frequently encountered signal of SP. Best solution is to use a numerical table like that of an error function in probability theory unless you can solve it analytically. $\endgroup$
    – Fat32
    Oct 9, 2016 at 14:07
  • $\begingroup$ I added the full context of the problem that I should've had upfront when posing the question earlier. $\endgroup$
    – Engine_ear
    Oct 10, 2016 at 5:05
  • $\begingroup$ Defining sinc(x) = sin(x)/x $\endgroup$
    – Engine_ear
    Oct 10, 2016 at 5:06

1 Answer 1


First note that $$\mathcal{F}\{\mathrm{rect}(\frac{t}{T})\}=T\mathrm{sinc}(Tf)=\frac{\sin(\pi Tf)}{\pi f}$$ Then you have correctly calculated the pulse energy as $$E_g=\int_{-\infty}^{+\infty}g^2(t)dt=T$$ Now we want to find $B$ such that $$\int_{-B}^{B}T^2\mathrm{sinc}^2(Tf)df=0.9T$$ or since the function is even, $$\int_{0}^{B}T\mathrm{sinc}^2(Tf)df=0.45$$ which by assuming $$Tf=x\Rightarrow df=dx/T$$ is $$\int_{0}^{TB}\mathrm{sinc}^2(x)dx=0.45$$ Using the following code we get the essential bandwidth $$\bbox[0.5em,#efe,border:0.1em groove navy]{\ B\approx\frac{0.8455}{T}\ }$$

J = 0.45; %target value
acceptable_error = 1e-4;
dx = 1e-5;
xmax = 1; %initial guess
max_iterations = 100;
iteration = 0;
while iteration < max_iterations;
    x = 0:dx:xmax;
    I = trapz(x,y);
    if abs(I-J) <= acceptable_error
    if I < J
        xmax = 3/2*xmax;
        xmax = xmax/2;
    iteration = iteration+1;
fprintf('absolute error = %f\n',abs(I-J));
fprintf('solution = %f\n',xmax)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.