EE417506 2022 HW 2, please see course web-page for due dates

You can read in the Anderson textbook, Digital Transmission Engineering, in Chapter 2. For

this assignment, either MATLAB or python can be used, since no special toolboxes are employed.

I strongly encourage two person teams on this assignment.


Use my de�nition of the sinc and rect functions:

1. rect(x/X) = 1, only when |x| < X/2,(two-sided width is X and zero else.
2. sinc(x) = sin(πx)/πx., with zero-crossings ZC at the integers, ±1,±2, . . .

Remember that



has width B, and is centered at a. Both rect and sinc are used in both the time (t) and frequency
(f) domain. Bandwidth is always de�ned over positive frequencies. The cross-correlation integral is
(`cross’ implies two di�erent signals, `auto’ implies the same signal)

Rxc(τ) =

x(t + τ)c∗(t)dt

and the output of a matched �lter to pulse s(t) at time o�set τ is

Rss(τ) =

s(τ − t)s∗(−t)dt =

s(τ + t)s∗(t)dt

and can be computed for sampled signals (vectors x and c ) using MATLAB’s xcorr.m, using Rss
= xcorr(s,s) = xcorr(s). Note that we use xcorr to produce the auto-correlation xcorr(s,s).

These can be computed in the frequency domain as

Rss(τ) =

|S(f)|2 exp(−2πfτ)df

Mnemonic: The CD-Rule. For complex valued signals (think phasors) , placement of the complex

conjugate is a matter of de�nition. The CD rule states that the Conjugate goes with the Delay.

Problem 1

We often need to put AWGN (additive white Gaussian Noise) through �lters. The general result

is that if w(t) is AWGN with spectral level No/2 (Watts per Hz), then the output of the �lter h,
given by the convolution y(t) = h(t) ∗ w(t). The output is a random process, which we take to
be wide sense stationary after all transients have decayed. The process y(t) is spectrally-shaped
Gaussian noise (zero-mean), with spectrum

Sy(f) =
|H(f)|2, and average power Py =


where Eh < ∞ is the energy in the �lter h(t). This can be calculated in the time or frequency
domain, since by Parseval

Eh =

|h(t)|2dt =


Although AWGN has in�nite power, the output process y(t) has �nite power Py. Since noise is
zero-mean and Gaussian (normally) distributed, this means the RMS value is σy =

Py, and one


can compute the probability that the noise exceeds a given level. With MATLAB, for a random

variable RV x with a zero mean Gaussian distribution with variance σ2, we can compute, using

P{x > a} = Q(

) =





So, most of these computations, reduce to calculating the power out of the process, since σ2y = Py.
Compute the output power for an No/2 input AWGN, when (only the magnitude response is


1. A rectangular �lter with bandwidth B, |H(f)| = Horect(f/2B)
2. A sinc �lter with �rst null at f = B, |H(f)| = Hosinc(f/B)
3. A Manchester pulse matched-�lter, where h(t) = rect((t−T/4)/(T/2))−rect((t−3T/4)/(T/2))
4. An exponential �lter with h(t) = Aexp(−t/τ), t > 0.
5. The n-th order Butterworth Filter with frequency response

|H(f)|2 =

1 + (2πf)2n

These are all calculations you can do with basic calculus, or by Fourier transform. The Butter-

worth �lter response must be plotted and you can compute the noise gain.

Problem 2

A pulse matched �lter is often used in signal processing. To examine the output of the MF, to

input pulse s(t), we can either (1) compute the �lter response or (2) compute the auto-correlation
function. For example, for discrete time pulse s, the MATLAB command would be

b = conj(s([end:-1:1])); y = filter( b, 1, s); plot(y); grid

y = xcorr( s, s); plot(y);grid

Compute and display plot these for signals. Comment on the di�erences between the input

signal and the output of xcorr.

1. A rectangular �lter with bandwidth B, |H(f)| = Horect(f/2B)
2. A sinc �lter with null-to-null bandwidth B, |H(f)| = Hosinc(f/B)
3. A Manchester pulse matched-�lter, where h(t) = rect((t−T/4)/(T/2))−rect((t−3T/4)/(T/2))
4. A rect pulse coded Barker-13 pulse,

s(t) =

bkp(t−kT), p(t) = rect(t−T/2)/T

The bk is the Barker-13 code, see Wikipedia:


Note this is di�erent from the plots shown in class, because we have added the rect signal. This is

the analog baseband signal that would be transmitted. Other pulse shapes can be used – the root

raised cosine.

Problem 3 Matched Filtering and Timing


Use Matlab (or other ) to generate the following signals at sampling rate Fs = 1/Ts, Ts = T/50.
(1MHz). This is called oversampling relative to the baud rate. Using the p(t) = sinc(t/T) pulse,
write a program to implement the matched �lter.Be sure to use both sides of the sinc. Plot the

resulting matched �lter output and show that the MF works as expected. To show that be sure you

can predict where the MF peak will occur.

You can implement a matched �lter in several ways, for example, using filter.m or conv.m.

The di�erence is in the length of the output signal. Convolution always gives the full length, but

the �lter output is limited to the length of the input. See MATLAB help as needed. Sometimes

zero-padding is needed to see the full response.

You can use the T = 1e− 06 with the above. Vary the time o�sets to see the e�ect on moving
the MF peak. Pick a plot and submit it. Label all axes. Explain any scaling you use. The scaling

depends on the oversampling rate, here 50x

Problem 4. Matched Filtering to a known pulse

Matched Filter theory tells us that the best (maximum SNR) linear receiver to the observation

y(t) = As(t) + w(t)

is the �lter

hMF (t) = s(T − t)

Here we are taking the pulse s(t) to be non-zero only on [0,T]. Sketch the MF response to the pules

s(t) = rect(



s(t) = rect(

)− rect(


Recall the exact de�nition of rect(x) = 1, only when |x| < 1/2; otherwise 0. I strongly advising
sketching these analog pulse shapes. The convolutions can be done graphically and it is known that

the convolution of 2 rectangles is a triangle. The issue is (1) where are the triangles located, and
(2) what are their horizontal widths and vertical heights.

Determine SNR at the optimal sampling time for each of these signal. Assume the noise is

WGN of spectral level No/2.