Your Life As a Beautiful Mosaic
Polyphase Half Band Filter for Decimation by 2
The last post on half band filters (HBF) referenced the use of a polyphase filter bank structure with a half band filter of length N can be reduced to N/8 multiplies per input sample. This is a huge efficiency gain and why they are used in large sample rate change [harris2021, p.234]. The polyphase filter bank will be used to efficiently implement a decimation by 2 within the HBF with additional savings coming from folding the filter weights. A polyphase filterbank is characterized by multiple branches which represent multiple phases of the signal (the prefix poly- meaning “many”.)
Half Band Filter Design: Exceptional Filtering Efficiency!
The half band filter (HBF) is an incredibly efficient filtering structure when designed correctly! In this blog I will discuss how to design half band filter weights with the NumPy function remez(), how to select the parameters to maximize the efficiency, and how a folded FIR filter structure can increase the efficiency further.
The Wisdom of Conan O’Brien
I’m particularly fond of two pieces of wisdom from Conan O’Brien.
Designing an FIR Band Pass Filter with Remez
Band pass filters are characterized by having attenuation at both high frequency and low frequency with a pass-band in between. Band-pass filters can designed to have real coefficients which have an even-symmetric response or they can be upconverted to complex band-pass to have non-symmetric response which is useful in channelization or in applying a Hilbert transform.
Designing an FIR High Pass Filter with Remez
While low-pass filtering (LPF) is ubiquitous high pass filters (HPF) can be needed depending on the RF environment or for specific algorithms. The previous post FIR Low Pass Filter Design with Remez demonstrated how to use the remez() function in the SciPy package to design LPF filter weights. The following blog will demonstrate how to use remez() to design HPFs as well as designing LPF filters and upconverting them.
FIR Low Pass Filter Design with Remez
The focus of this blog is to describe the low pass filter design process with the remez() function, which is one of many ways to create FIR filter weights. The filter parameters of:
- filter length,
- pass-band,
- stop-band,
- cut-off frequency,
- transition bandwidth,
- and sidelobe attenuation
will be discussed, including their impact on the frequency response and how their trade-offs effect the design.
Engineering Mindset: Be a Stone Carver, not a Brick Mason
Maintaining the proper mindset is crucial to proper mental health and the longevity of your career. Many come to believe that engineering is linear and procedural, like a brick mason building a brick wall. The brick mason operates by adding more and more material; bigger is better, more expensive and more profitable.
A more effective mindset is that of the stone carver. Quality and craftsmanship are key for the stone carver. A stone carver designs one chisel stroke at a time. The stone carver removes what does not belong until the final design is revealed. For the stone carver, less is more: removing more material allows for more detail, more polish and represents an overall a higher quality piece of art.
Why are Sinusoids used in DSP and RF?
The goal of this post is to shed some light on why sinusoids are useful in DSP and RF communication.
Sinusoids are used by humans to describe the cyclical nature of the universe. They are a useful mathematical abstraction. Each year is 365 days and then a new year begins. Spring is followed by summer, fall, winter and then spring begins again. Low tide, high tide and then low tide again. A spinning ceiling fan. The rotation of the tires on your automobile. Reeling your fishing rod.
Basic Rules for Complex Numbers
The mathematics of DSP and complex numbers can be confounding.
Understanding how was difficult when I first started my DSP education and it’s still not something I fully grasp. When starting out in your DSP education sometimes it is enough to simply understanding how the tools and procedures are applied, rather than how they are derived.