Articles by Adam

  • How to optimise battery life with NB-IoT 11 March 2019

    I recently had the pleasure of attending a two-day Hackathon at the Vodafone/Huawei (the world’s first) Narrowband Internet of Things (NB-IoT) open lab. The event was centred around the practical application of NB-IoT and how to leverage the technology to attain the somewhat figurative holy grail of battery performance for IoT devices – ten year plus battery life. Now, I am well aware that NB-IoT is more buzz word than anything else at the moment so let’s talk about what it actually is and its relevance given the state of IoT today before discussing the specific features of the technology that help to minimise power consumption.

    Read More ...

  • How to obtain an SSL certificate for a containerised web application - for free! 22 December 2018

    If you're reading this then it's safe to assume that I don't need to explain why it's important to secure your web service, we can just jump straight into the how. Unfortunately, a catch-all tutorial is simply not possible with the plethora of technologies within the modern developer's arsenal so I've decided upon a tech stack similar to ours at Think Engineer for this tutorial. So, a more specific title could be: How to obtain an SSL certificate, using Let's Encrypt, for a multi-container Docker web application running on Ubuntu 18.0.4 - for free!

    Read More ...

  • DSP: What is the Fourier Transform and how do we use it? 15 August 2018

    When you think of say, an audio signal or waveform, you think of this, right?  Figure 1: Audio waveform in the time domain. Figure 1 depicts an audio signal in the time domain; essentially a visualisation of the variation of the signal’s amplitude (plotted on the y-axis) over time (plotted on the x-axis). So, by observing the signal in this way, how much information can actually be extracted[1]?

    Read More ...

  • Window Functions and How We Use Them in DSP 19 July 2018

    A window function is a mathematical function that applies a weighting (often between 0 and 1) to each discrete time series sample in a finite set[1]. It should be noted that window functions can be applied in the frequency-domain, though this is a somewhat convoluted process and beyond the scope of this article. As a simple example, assume the finite set x of length N. If each value within x is assigned a weighting of 1 then it can be said that a new set y has been created to which the rectangular window function w (also of length N) has been applied: $$y(n) = x(n) . w(n)\qquad0 \leq n \leq N$$ The above equation essentially states that a new set should be created whereby each value at index n is the product of the values at the nth index of the sample set x and window function w. Figure 1 depicts both an unmodified sine wave and a sine wave to which a rectangular window has been applied – they are analogous to each other.

    Read More ...