# Blockwise Frequency Domain Active Noise Controller Over Distributed Networks
## 3 Prototype Description  
The distributed ANC prototype is depicted in Figure 5. The addition of the recent DSP System Toolbox [27] in the computing environment MATLAB(r) provides multichannel real-time audio recording, processing and reproduction at low latency. Audio objects based on Object Oriented Programming (OOP) have been optimized for iterative computations that process large streams of audio data. Moreover, Audio Stream Input/Output (ASIO) drivers [28] have been incorporated to this software providing a low-latency and high fidelity interface between MATLAB(r) and audio card. The hardware implementation is composed by a CPU (Intel Core i7 3.07 GHz) and an audio card (MOTU 24 I/O). The communication between both components is performed by ASIO drivers and it is controlled by using the MATLAB(r) System objects provided by the DSP System Toolbox of MATLAB(r) software. The audio card stores the input data from the sensor of each node in buffers of size \(B\) and send them to the CPU through the ASIO drivers. The CPU, with MATLAB(r) support, executes the audio processing, saves the output data in buffers and sends them back to the audio card through the ASIO drivers, to be reproduced by the loudspeaker of each node. The selection of the block size \(B\) in the audio card is critical to determine the latency of the algorithm. The latency is the sum of the time spent on storing data in the input buffers, on processing these data and on sending them to the output buffers as well. A real-time application must satisfy that the time spent to fill up the input buffers (buffering time) was higher than the time spent in data processing (processing time). The buffering time is defined as \(B/fs,fs\) being the sampling rate. In a centralized ANC system, the processing time is the time that the algorithm takes to process data. However, in a distributed ANC system, it also includes the time in updating its own global state of the network (\(\mathbf{\hat{W}}\)) and in delivering this information among the nodes. As we consider an incremental network composed of \(N\) nodes, every node must transfer \(2L\times N\) coefficients (size of \(\mathbf{\hat{W}}\)) to the following node \(2(N-1)\) times in each block iteration (see Figure 4). Therefore, the processing time of the whole network at each block iteration (algorithm processing time + \(N\) times the updatingtime of \(\hat{\textbf{W}}+2(N-1)\) times the transmission time of \(\hat{\textbf{W}}\)) has to be less than the buffering time (see Figure 6). As an example, a transfer rate at least of 16.5 megabytes per second (MBps) would be necessary with an incremental network composed of four nodes, a general filter length of 4096 taps and single-precision floating-point data format. Therefore, using a standard Ethernet network of 1 Gbps (\(\approx\) 125 MBps), we would have enough rate capacity to perform the required data transfer among the nodes. It should be noted that, if the processing time of the network increases due to the addition of more nodes, the buffering time must be increased in order to satisfy the real-time condition. Hence, if we assume a fixed sampling rate, the block size \(B\) must be increased. Another important aspect that should be guaranteed is the causality of the system. The algorithm has to satisfy that the sum of the buffering delay and the maximum delay of the acoustic paths that join the actuators with the error sensors should be less than or equal to the minimum delay of the acoustic paths that join the noise source with the error sensors [29]. Causality constraint can be relaxed when a harmonic excitation is considered, but it is important in broadband noise control. As we perform an ANC system in a acoustic enclosure, where the wavelength is relatively low in comparison with the physical dimensions of the system, the causality condition is fulfilled by carefully choosing the distances between the noise source, actuators and error sensors. However, if this condition is not met, a decrease in buffering time is required.