A distributed system is a collection of networked computers, communicating with each other in order to achieve a common goal. This computing paradigm enables computer clusters to work on complicated microbiological or astronomical computations, it makes peer-to-peer file sharing possible, and it is also what guarantees the authenticity of cryptocurrency transaction ledgers.
The most common motivations for implementing an algorithm in a distributed fashion are improved fault tolerance and the requirement for distributing the computational load among multiple computers. These factors also play an important role in several digital signal and information processing systems - just think of the vast amount of data collected by the sensors of a self-driving vehicle, and the autonomous decisions-making based on this data.
The main focus of this thesis is the implementation of distributed digital signal processing algorithms, illustrated by a specific example application: multiple channel active noise cancellation. In my work, I first introduce and analyze the algorithms most commonly used in such applications, then I describe the steps of implementing a working prototype of a distributed active noise cancellation system.