The Science of Domestic Concert Hall Design  
by Ralph Glasgal 



e WIFR Structure 
Ambiophonic Principles for the Recording and Reproduction of Surround Sound for Music  Part 4 Angelo Farina, Ralph Glasgal, Enrico Armelloni, Anders Torger 3.2 Implementation of the WFIR structure as an audio plugin and as DSP code The WFIR structure illustrated in fig. 6 was first translated into an equivalent Clanguage code, suitable to operate on discretetime samples of a sound waveform. The algorithm can be implemented with a single cycle, which is repeated as many times as the number of coefficients of the WFIR. This implementation was done independently by two of the authors [13, 14], with slightly different goals. Torgerís implementation is freely available as GNU public domain software. The body of the cycle requires 3 multiplications and 3 sums, plus 4 memory operations (3 retrieves and one store). The algorithm requires a memory space as long as the number of filter coefficients, in order to store the partial sums of each stage. In comparison, the traditional FIR algorithm is much cheaper, as the body of its main cycle requires only a single multiplication and addition, and two memory operations (retrieving the coefficient and the sample). The related computational cost is thus approximately given by the ratio 10/4, provided that we assign the same weight to multiplication, addition and memory operations. Then the C code was embedded in a CoolEdit plugin, in order to mimic the behavior of the DSP code (allowing for listening tests, although not in realtime) and to prewarp the measured impulse responses. This means that it is possible to process the measured IRs in the warped domain, deriving directly the coefficients of the crosstalk canceling inverse filters. Fig. 7 shows the user interface of the "ConvoWarp" module.
From the user point of view this module simply requires one to store the WFIR coefficients on the clipboard (in WAV format), then allows for the processing of a stereo audio signal by up to four separate WFIR filters, and thus is ideal for crosstalk canceling networks. When the plugin is employed for the prewarping of measured impulse response coefficients (or of precomputed crosstalk canceling filters), a negative value of λ must be used. Furthermore, a discrete Dirac delta function is fed into the warped filter structure using the measured impulse response as the coefficients of the WFIR. This operation produces the set of prewarped coefficients. Both WFIR and FIR architectures have been implemented on an evaluation board equipped with an AD 21065L SHARC processor in assembly code for efficiency purposes. This DSP unit is capable of realtime processing up to approximately 900 multiplyadd operations at a sampling rate of 48 kHz. This means that with the traditional FIR implementation approximately 225 taps for each of the 4 crosstalk canceling filters are allowed at maximum.
Exploiting the parallel processing capabilities of the SHARC processor, the WFIR code was implemented with only 5 lines of code, as shown in fig. 8, and thus, in this case, the computational cost of the WFIR is exactly 5 times of that of a traditional FIR. Thus, the maximum number of taps for each WFIR crosstalk canceller is 45. 3.3 Experimental results Experiments and listening tests were performed at ASK Industry, Italy, inside a treated listening room, equipped with a pair of professionalgrade selfpowered monitor loudspeakers (Dynaudio). The loudspeakers were arranged in the stereo dipole configuration (distance between the acoustic centers was 350 mm, and the listenerís head was 2 m from the front of the speakers). First, the binaural impulse responses were measured, making use of a Bruel & Kjaer head and torso simulator type 4100, a PC equipped with a professional sound board (Echo Layla) and the Aurora measuring software [15]. Fig. 10 shows a typical measurement session. Fig. 11 shows the measured impulse responses of the system, corresponding to the 4 impulse responses referred to as h in fig. 3. First, a set of very long inverse FIRs was computed (2048 taps each), as shown in fig. 12. When these filters are employed (running them with the Aurora convolution plugin under CoolEdit), a good frequency response and crosstalk cancellation is obtained, as shown in fig. 13. Despite the length of these inverse filters, the response is good only above 600 Hz: at lower frequency the response is quite uneven, although the cancellation of the cross talk remains very effective.
After this, the "short" FIR and WFIR inverse filters were derived, respectively 220 and 42 taps long. Fig. 14 shows the effect of such short FIR inverse filters when applied to the system of fig. 8. Similarly, figs. 15 and 16 show the WFIR coefficients, and the filtering effect of the WFIR structure. From these results, it is clear that the short FIR only behaves correctly at medium/high frequency, providing poor overall response, with great problems at low frequency. On the other hand, the WFIR gives an overall flat spectrum starting from much lower frequencies, although the crosstalk cancellation is somewhat less effective, and the time response is slightly "smeared". << Previous Page  Next Page >> Article Pages 1  2  3  4  5  6  7  8  9  10 