Signal Processing - July 2016 - 77

Numerical Tools for Filter Design (MIT)
In 6.341 at the Massachusetts Institute of Technology
(MIT), a numerically focused class project on IIR and FIR filter design was traditionally assigned as a key component
of the course. In developing 6.341x, one of our goals was
to provide a project in this theme for online learners. With
this in mind, we wanted to deliver a numerical project
experience that was contained entirely in the browser, provided graphical and textual feedback to the learner about
how and where their numerical input might be incorrect,
and did not require the learner to have extensive knowledge of a particular numerical signal processing language, yet still provided practice dealing with many of the
numerical issues associated with using such packages.
With these goals in mind, our approach in 6.341x was
to write a series of server-side Python libraries that allowed
learners to perform order estimation and filter design by
submitting design parameters to the edX server, which
would then return the numerical output that was computed
from the parameters. Learners were also provided with
associated Python/SciPy code to reproduce these results
on their own machine if they wished, although very little
knowledge of Python was required to use the online tools.
Using the numerical designs obtained from the in-browser
tools, learners were able to complete various assessment
problems, and basic code used in performing the assessment
was provided to learners to use as a reference if they wished.
Graphical feedback based on learner input was generated
dynamically on the server and passed to the browser, e.g.,
highlighting regions of the magnitude response where a
numerical design might not have met the stated specifications.
From the perspective of the student, the process of
designing a particular filter typically involved the following
sequence. First, an order estimation tool would be used, as

depicted in Figure S3. The returned values could then be
used to select parameters in a corresponding filter design
tool, shown in Figure S4. By transferring the resulting
numerical design to the appropriate assessment problem,
the learner was provided with automated, graphical feedback about his or her design, as is depicted in Figure S5.
The overall reaction to the exercises using these tools was
positive. Learners indicated, in particular, that the freedom
to explore various design methods and parameter choices
was a key part of the learning experience, highlighting to
us the value of providing access to numerical tools and
problems in an online signal processing course.

FIGURE S4. An in-browser tool for performing minimax-optimal FIR
filter design.

FIGURE S5. An exercise assessing a particular filter design entered
FIGURE S3. An in-browser tool for performing FIR filter order estimation.

by a learner, providing automated feedback about where the design
exceeded specifications stated previously in the problem.

IEEE Signal Processing Magazine

|

July 2016

|

77



Table of Contents for the Digital Edition of Signal Processing - July 2016

Signal Processing - July 2016 - Cover1
Signal Processing - July 2016 - Cover2
Signal Processing - July 2016 - 1
Signal Processing - July 2016 - 2
Signal Processing - July 2016 - 3
Signal Processing - July 2016 - 4
Signal Processing - July 2016 - 5
Signal Processing - July 2016 - 6
Signal Processing - July 2016 - 7
Signal Processing - July 2016 - 8
Signal Processing - July 2016 - 9
Signal Processing - July 2016 - 10
Signal Processing - July 2016 - 11
Signal Processing - July 2016 - 12
Signal Processing - July 2016 - 13
Signal Processing - July 2016 - 14
Signal Processing - July 2016 - 15
Signal Processing - July 2016 - 16
Signal Processing - July 2016 - 17
Signal Processing - July 2016 - 18
Signal Processing - July 2016 - 19
Signal Processing - July 2016 - 20
Signal Processing - July 2016 - 21
Signal Processing - July 2016 - 22
Signal Processing - July 2016 - 23
Signal Processing - July 2016 - 24
Signal Processing - July 2016 - 25
Signal Processing - July 2016 - 26
Signal Processing - July 2016 - 27
Signal Processing - July 2016 - 28
Signal Processing - July 2016 - 29
Signal Processing - July 2016 - 30
Signal Processing - July 2016 - 31
Signal Processing - July 2016 - 32
Signal Processing - July 2016 - 33
Signal Processing - July 2016 - 34
Signal Processing - July 2016 - 35
Signal Processing - July 2016 - 36
Signal Processing - July 2016 - 37
Signal Processing - July 2016 - 38
Signal Processing - July 2016 - 39
Signal Processing - July 2016 - 40
Signal Processing - July 2016 - 41
Signal Processing - July 2016 - 42
Signal Processing - July 2016 - 43
Signal Processing - July 2016 - 44
Signal Processing - July 2016 - 45
Signal Processing - July 2016 - 46
Signal Processing - July 2016 - 47
Signal Processing - July 2016 - 48
Signal Processing - July 2016 - 49
Signal Processing - July 2016 - 50
Signal Processing - July 2016 - 51
Signal Processing - July 2016 - 52
Signal Processing - July 2016 - 53
Signal Processing - July 2016 - 54
Signal Processing - July 2016 - 55
Signal Processing - July 2016 - 56
Signal Processing - July 2016 - 57
Signal Processing - July 2016 - 58
Signal Processing - July 2016 - 59
Signal Processing - July 2016 - 60
Signal Processing - July 2016 - 61
Signal Processing - July 2016 - 62
Signal Processing - July 2016 - 63
Signal Processing - July 2016 - 64
Signal Processing - July 2016 - 65
Signal Processing - July 2016 - 66
Signal Processing - July 2016 - 67
Signal Processing - July 2016 - 68
Signal Processing - July 2016 - 69
Signal Processing - July 2016 - 70
Signal Processing - July 2016 - 71
Signal Processing - July 2016 - 72
Signal Processing - July 2016 - 73
Signal Processing - July 2016 - 74
Signal Processing - July 2016 - 75
Signal Processing - July 2016 - 76
Signal Processing - July 2016 - 77
Signal Processing - July 2016 - 78
Signal Processing - July 2016 - 79
Signal Processing - July 2016 - 80
Signal Processing - July 2016 - 81
Signal Processing - July 2016 - 82
Signal Processing - July 2016 - 83
Signal Processing - July 2016 - 84
Signal Processing - July 2016 - 85
Signal Processing - July 2016 - 86
Signal Processing - July 2016 - 87
Signal Processing - July 2016 - 88
Signal Processing - July 2016 - 89
Signal Processing - July 2016 - 90
Signal Processing - July 2016 - 91
Signal Processing - July 2016 - 92
Signal Processing - July 2016 - 93
Signal Processing - July 2016 - 94
Signal Processing - July 2016 - 95
Signal Processing - July 2016 - 96
Signal Processing - July 2016 - 97
Signal Processing - July 2016 - 98
Signal Processing - July 2016 - 99
Signal Processing - July 2016 - 100
Signal Processing - July 2016 - 101
Signal Processing - July 2016 - 102
Signal Processing - July 2016 - 103
Signal Processing - July 2016 - 104
Signal Processing - July 2016 - Cover3
Signal Processing - July 2016 - Cover4
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_201809
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_201807
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_201805
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_201803
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_201801
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1117
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0917
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0717
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0517
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0317
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0117
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1116
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0916
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0716
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0516
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0316
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0116
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1115
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0915
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0715
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0515
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0315
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0115
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1114
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0914
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0714
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0514
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0314
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0114
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1113
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0913
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0713
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0513
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0313
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0113
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1112
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0912
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0712
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0512
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0312
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0112
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1111
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0911
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0711
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0511
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0311
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0111
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1110
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0910
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0710
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0510
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0310
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0110
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1109
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0909
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0709
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0509
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0309
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0109
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1108
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0908
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0708
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0508
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0308
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0108
https://www.nxtbookmedia.com