Description
Problem 1:
Prove the following properties of linear-phase FIR filters.
-
If H(z) has four zeros at z1=rejθ, z2=1re−jθ, z3=re−jθ, and z4=1re−jθ, then H(z) represents a linear-phase FIR filter.
-
If H(z) has two zeros at z1=ejθ and z2=e−jθ, then H(z) represents a linear-phase FIR filter.
-
If H(z) has two zeros at z1=r and z2=1r, then H(z) represents a linear-phase FIR filter.
-
If H(z) has a zero at z1=1 or a zero at z1=−1, then H(z) represents a linear-phase FIR filter.
Problem 2:
Assume we want to filter the audio signal from a digital video disc (DVD) player as shown in the following diagram. The filtered audio signal is converted to analog by a D/A and drives a speaker. For the audio signal to have acceptable time synchronization with the video signal, the video engineers have determined that the time delay for the FIR filter should not be greater than 6×10−3 seconds. If the Fs sampling rate of the audio signal is 48 KHz, what is the maximum number of taps that we can have in the FIR filter that would satisfy the time delay restriction? (Assume the FIR filter has linear phase response and the D/A converter delay is zero).
Problem 3:
Let’s assume we were given an x(n) discrete-time sequence, whose sample rate is 20 KHz, and its ∣X(f)∣ spectral magnitude is shown below. We were asked to design a linear-phase low-pass FIR filter to attenuate the undesired high-frequency noise, as seen in the spectral magnitude plot. Assume we already designed the filter and the frequency magnitude response of our filter is also shown below.
Sometime later, we unfortunately learned that our original sequence x(n) had actually been obtained at 40 KHz sampling rate and not at 20 KHz!
So do we need to do anything with our low-pass filter coefficients h(k)’s which were originally obtained based on the assumption of 20 KHz sampling rate so that our filter still attenuates the high-frequency noise when the sample rate is actually 40 KHz? If yes, what? If no, why not? Please discuss.
Problem 4:
Consider an FIR filter whose impulse response h(k) and the input sequence x(n) are shown below. Find the output sequence y(n).
[Diagram references: (a) and (b)]
Problem 5:
Consider the following linear-phase 5-tap FIR filter:
[Diagram references: (c) and (d)]
DSP engineers always seek to reduce the number of multipliers in their systems. Given what you know about linear-phase FIR filters, redesign the filter above with the reduced number of multiplications per output sample and draw its block diagram.
Problem 6:
This picture below shows a simple 3-tap non-recursive FIR filter (Figure (a)):
The solution to this problem shows us how to design computationally efficient narrowband noise reduction filters.
If ∣h1∣≤2, the filter will have an ∣H(ω)∣ frequency magnitude response with two nulls at ±ωn as shown in Figure (b).
(a) Assume we have a low-frequency desired signal that is contaminated by high-level narrowband noise at ±3.35 MHz when the sample rate is Fs=8.25 MHz, as shown in Figure (c). Find the value of the filter coefficient h1 such that the frequency response of the 3-tap FIR filter will have nulls at ±3.35 MHz.
(b) What is the DC gain (i.e., the gain at zero Hz frequency) of our 3-tap filter?
(c) Does this filter have linear or nonlinear phase response? Why? Please discuss.
Problem 7:
There are digital filtering schemes that use the process conceptually shown in Figure (a) below, where the filter may be comprised of two parallel paths.
[Diagram references: (a) and (b)]
The actual implementation, however, will typically need a delay line as shown in Figure (b). The delay-line in the upper path is needed to compensate for the delay of the FIR filter in the bottom path.
How many unit-delay elements do you have to insert in the upper path for its delay to match that of the lower path?
Problem 8:
Texas Instruments Inc. makes a Digital Media System-on-Chip (DMSoC) (Part# TMS320DM646x), which leverages TI’s DaVinci™ technology to meet the networked media encode and decode application processing needs of next-generation embedded devices. It has a dual-core architecture providing the benefits of both a digital signal processor (DSP) and a reduced instruction set computer (RISC), incorporating a high-performance TMS320C64x+™ DSP core and an ARM926EJ-S core. Among other things, this chip contains an FIR filter structure shown below, where the coefficient b, as defined by the user, controls the frequency magnitude response of the filter.
[Diagram of FIR filter structure]
(a) What is the time-domain LCCDE (Linear Constant Coefficient Difference Equation) for this filter?
(b) Does the filter have a linear-phase frequency response, or nonlinear? Why?
(c) What is the Group Delay of this filter measured in number of samples?
MATLAB Exercise:
-
This is a simple exercise for an FIR filter design and filtering of an audio signal in MATLAB. It was kindly provided by Mr. Rick Lyons, the author of R3 textbook.
-
In this problem, you will be using the
fir1function in MATLAB to design your FIR filter. But, before you start, please read about all FIR filter design capabilities in MATLAB here: FIR Filter Design -
The file
CapnJ.wav, posted on CCLE, contains discrete samples of an audio signal of a male voice speaking English words, and a value for the Fs sample rate of that signal. -
Please use the template
ECE113_FIR_Design_Template.mposted on CCLE. -
After copying that
.wavfile to your MATLAB directory, you can load and play the audio signal using thesoundfunction as shown in the template. -
The audio signal of interest, covering the frequency range of roughly 0 to 3000 Hz, is very badly corrupted with high-level noise. Your problem is to design a digital filter that will sufficiently attenuate the noise so that the audio speech is intelligible.
The Problem:
Design an FIR filter, filter the audio signal, and determine the English words being spoken.
Hints:
-
Make sure you pause your computer using MATLAB’s
pausecommand between any consecutivesound(xx, Fs)commands. This will avoid any “Unable to open sound device” error messages. -
As you start making progress in removing the corrupting characteristics of the original sound signal, don’t be afraid to increase or decrease the amplitude (audio volume) of your time signal using e.g.,
X = 20*X;orX = X/20;commands, if needed. This may be necessary depending on your PC’s sound card and your version of MATLAB.

