Butterworth Filter Design in C++

A low-pass filter is a filter which removes high frequencies from a signal. Low-pass filters are very useful in digital audio applications. For example: Removing artifacts when resampling. Emulating the response of a speaker cabinet. Removing harsh sounding frequencies introduced by wave shaping effects such as overdrive. In this post, we will be looking at … Read more

Transfer Functions

Transfer Functions In this post, we introduce the idea of transfer functions in the context of signal processing. In particular, we distinguish between the case of continuous-time signals (such as an analogue circuit board) and discrete-time signals used in DSP. Continuous Systems Laplace transform The Laplace transform of a function f(t)f(t)f(t) is given by: F(s)=L(f(t))=∫0∞f(t)e−stdt … Read more

Gaussian Elimination with Partial Pivoting

Gaussian elimination is a direct method for solving a linear system of equations. A linear system is a set of simultaneous equations (linear) in several variables. In theory, solving such a system algebraically is straightforward. First, we eliminate the first variable either by substitution or appropriate row operations. We then continue to eliminate the second … Read more

Quaternions part 2

In the previous post, we introduced quaternions and discussed some of their basic properties. Quaternions are often used in 3D applications such as graphics and robotics to perform smooth rotations. In this post we describe how to use quaternions to represent points in 3D and how to use quaternion operations to perform rotations about an … Read more

Quaternions

Quaternions define a 4 dimensional algebra which is particularly useful for dealing with rotations in 3d. They are often used when you might want to produce a smooth rotation by interpolating between two orientations. Common applications are 3d graphics animation (e.g. games or CGI) and robotic kinematics. Quaternions can be thought of as being similar … Read more