## Description

Full Name:

EEL 3135 – Lab #11

Question #1: (Implementing the DFT)

Download EEL3135 lab11 comment.m from Canvas, replace each of the corresponding comments

with the corresponding descriptions. This is designed to let you get more familiar with DFT.

Question #2: (DFT and DTFT)

In this question, you create a DFT function and compare results with the DTFT function. Keep in

mind that the DFT can be thought of as a sampled version of the DTFT. Consider the following

discrete-time signal:

x[n] = [0.75 + cos((π/20)n) + cos((π/15)n) + cos(πn + 2π/3)] [u[n] − u[n − 60]]

(a) Take the DTFT function from previous labs and modify it into the function X = DFT(x),

which inputs a signal x and outputs its DFT X with the same length.

Hint 1: The DTFT and DFT are defined as (where N is the signal length):

DTFT: X(ωb) =

N

X−1

n=0

x[n]e

−jωnb

, DFT: X[k] =

N

X−1

n=0

x[n]e

−j(

2π

N )kn

Hint 2: The w variable in the skeleton code’s DFT function should be in normalized angular

frequency ωb and can be determined by directly comparing the DFT and DTFT equations.

(b) Use plot to plot the magnitude of the DTFT. Be sure to label axes with proper units.

(c) Now plot the magnitude of the 60-length DFT of x[n] on top of the DTFT. See the skeleton

code on how to best plot the DFT on top of the DTFT plot. Note: w_DFT is the same as w

in the DFT function.

(d) Now plot the magnitude of the 55-length DFT (i.e., remove the last 5 values from the original

signal) of x[n] on top of the DTFT.

(e) Now plot the magnitude of the 65-length DFT (i.e., add 5 zeros to the original signal) of x[n]

on top of the DTFT.

(f) Now plot the magnitude of the 200-length DFT of x[n] on top of the DTFT.

(g) Answer in your comments: Based on the last several questions, what is the relationship

between the DTFT and the DFT? Under what conditions will the theoretical DTFT and

DFT have the same result?

1

Question #3: (DFT and IDFT) In this question, you create the inverse DFT function and use

it with the DFT function to perform convolution. Consider the following discrete-time signal:

x[n] = u[n − 10] − u[n − 45]

(a) Modify the DFT function from Question #2 to create an inverse DFT function x = IDFT(X),

which inputs a DFT-transformed signal X and outputs the time signal x.

Hint: The inverse DFT is defined as

x[n] = 1

N

N

X−1

k=0

X[k]e

+j(

2π

N )kn

(b) Use stem to plot the x[n] for 0 ≤ n ≤ 99.

(c) Use conv to compute y[n] = x[n]∗x[n] and then use stem to plot the result for 0 ≤ n ≤ 100.

(d) Use N = 100 length DFT and IDFT functions to compute y[n] = x[n] ∗ x[n] (i.e., use the

convolution property) and then use stem to plot the result.

(e) Use N = 60 length DFT and IDFT functions to compute y[n] = x[n] ∗x[n] and then use stem

to plot the result.

(f) Answer in your comments: What is the difference in the last two solutions? Why does

the difference exist?

Question #4: (DFT and FFT)

This question will focus on computation time differences between DFT and FFT. Choose a song at

least 3 minutes long for this problem and include it in your submission. Load it into MATLAB using

audioread. Note that most audio files will be stereo, so you need to make sure that you only use

one column of the audio data for this part of the lab (e.g., set x = x(:,1);). This site has a large

archive of free music that you can choose from: https://freemusicarchive.org/static.

(a) Use DFT to plot the magnitude of the DFT of only the first 10000 samples of the audio. Use

tic and toc (read help tic and help toc) to measure the length of time it takes to

compute the DFT, in seconds. Display the result with the disp function.

(b) Use fft (read help fft) to plot the magnitude of the DFT of only the first 10000 samples

of the audio. Use tic and toc to measure the length of time it takes to compute the FFT,

in seconds. Display the result with the disp function.

(c) Answer in your comments: Are there differences in the magnitude results? If so, why?

(d) Answer in your comments: How much faster is the FFT algorithm compared with the

DFT in this scenario?

(e) We will not perform this test, but using DFT on an entire 3 minute audio (sampled at 44.1 kHz)

should take approximately 500 hours. So instead, use FFT to plot the magnitude of the DFT

of the entire audio signal. Use tic and toc to measure the length of time it takes to

compute the FFT, in seconds. Display the result with the disp function.

2