Designing Information Devices and Systems II
EECS 16B is a follow up course to EECS 16A which I took in Spring 2021. Course topics were split up between three modules: front – end circuitry, signal processing, and computer learning. A large part of the course was the lab portion as well. I chose to remain in hands-on lab despite the challenges it would imply during remote learning. The semester began with a couple of warm-up labs just to get us acquainted with circuitry and using a breadboard. All subsequent labs made progress towards a voice-controlled car. The lab experience in this course has been the most fun I have had doing lab in any class. As always, I simply enjoy applying the skills I learn to tangible work.
Front-End Circuitry

The first module of this course was taught by Professor Stojanovic. Curriculum covered included transistors, high/low/band pass filters, transfer functions, and bode plots. Transistors were a natural topic to introduce the most fundamental level of signal processing. I had long heard transistors were the basis for all computing (at the moment), but never bothered to find out how they worked beyond surface-level knowledge. Frequency filters and transfer functions officially kicked the course into full gear. Linear algebra became an integral tool in all of our studies which only became progressively more prevalent as the semester went on. The concept of using basic circuit components which I had already begun studying in high school to produce useful, signal-filtering systems continued to expand my understanding of circuit practicality. Additionally, the ingenuity of shifting perspective between a real and imaginary basis was yet another example of awe-inspiring elegance in problem solving.
Signal Processing
From here on out, the course was taught by Prof. Ranade. The second module of the course consisted of two main topics: System Stability and System Controllability. In layman terms, stability simply ensures that a certain user-defined control scheme does not veer off into into infinity. Controllability ensures that the control scheme is able to reach any desired state so long as it is given enough discrete time intervals to iterate over. In this module, the familiar concept of using n-dimensional state vectors came back. As well, the basic concepts of linear independence and eigenvalues/vectors became crucial for the understanding of these topics. For the sake of simplicity, 16B only considered linear control schemes. However, the crux of our systems was closed-loop feedback. Closed loop feedback acts as a way for the control scheme to identify the current state of a system and use said information to make the necessary change on the next iteration. Closed loop feedback acts like a simplified version of our brain: taking in our surroundings and making an educated decision.
Computer Learning
The final module of this course delved deep into the realm of math. Topics included singular value decomposition (SVD), principal component analysis (PCA), linearization, classification, and lastly Discrete Fourier transforms (DFT). This was the most challenging module of the course as it required a strong level of mathematical maturity. SVD and PCA were interesting topics and serve as a basis for many machine learning models. The idea is to take in a large set of noisy, high-dimensional data and spit out a simplified, low-dimensional piece of data which “sums up” the chaotic data as well as possible. Linearization and classification are logical follow ups to SVD and PCA. Linearization essentially interpolates/extrapolates the data given and infers points not covered by the the training set. DFTs were the last and perhaps the most elegant topic of the course which I still do not have a full grasp of. The idea behind DFT is that complex-valued polynomial functions can more robustly fit a set of points than a real polynomial since the function will not rail due to high degrees. In more intuitive terms all discrete functions can be approximated by a superposition of sine and cosine functions (Euler’s Identity)!

Lab

16B lab is perhaps the one aspect of the class which I will remember long into the future. So much can go wrong with lab that TAs who would typically be able to troubleshoot could not help with. But how could I call myself a Berkeley engineer if I couldn’t troubleshoot on my own. After hours of work, slightly burned solder fingers, and one or two 4 AM bedtimes, behold the voice-controlled car.
Overall, I enjoyed parts of this class. The topics were certainly interesting and useful, but the class itself was taught in a messy and unorthodox manner. As someone who did not find it effective to attend lectures, I had difficulty finding reference material to learn the material from. It seems the curriculum of this class is constantly changing, which means notes and practice exams needed to be updated as the course progressed before they were relevant. As well, the math behind some of the concepts taught were glossed over very quickly. Oftentimes crucial mathematical concepts were skipped in lecture or notes and left to discussion sections or to the student to re-learn. It is no wonder that many students struggled to pass this class. The infamous amount of scrutiny this class receives from students is overkill but not completely unjustified. Nonetheless, I always come away from such challenging courses feeling fulfilled.
Food For Thought
What is the transfer function for the following filter? This filter is called the “notch filter”. Is this name fitting? (Hint: what does the bode plot look like based on the transfer function?)

