Choice of Lossless Feedback Matrix
As mentioned in §3.4, an ``ideal'' late reverberation impulse response should resemble exponentially decaying noise [314]. It is therefore useful when designing a reverberator to start with an infinite reverberation time (the ``lossless case'') and work on making the reverberator a good ``noise generator''. Such a starting point is ofen referred to as a lossless prototype [153,430]. Once smooth noise is heard in the impulse response of the lossless prototype, one can then work on obtaining the desired reverberation time in each frequency band (as will be discussed in §3.7.4 below).
In reverberators based on feedback delay networks (FDNs), the smoothness of the ``perceptually white noise'' generated by the impulse response of the lossless prototype is strongly affected by the choice of FDN feedback matrix as well as the (ideally mutually prime) delay-line lengths in the FDN (discussed further in §3.7.3 below). Following are some of the better known feedback-matrix choices.
Hadamard Matrix
A second-order Hadamard matrix may be defined by
![$\displaystyle \mathbf{H}_2 \isdef
\frac{1}{\sqrt{2}}
\left[\begin{array}{rr}
1 & 1\\
-1 & 1
\end{array}\right],
$](http://www.dsprelated.com/josimages_new/pasp/img748.png)
![$\displaystyle \mathbf{H}_4 \isdef
\frac{1}{\sqrt{2}}
\left[\begin{array}{rr}
\...
...}{rrrr}
1& 1& 1&1\\
-1& 1&-1&1\\
-1&-1& 1&1\\
1&-1&-1&1
\end{array}\right].
$](http://www.dsprelated.com/josimages_new/pasp/img749.png)






As of version 0.9.30, Faust's math.lib4.12contains a function called hadamard(n) for generating an
Hadamard matrix, where
must be a power of
. A
Hadamard feedback matrix is used in the programming example
reverb_designer.dsp (a configurable FDN reverberator)
distributed with Faust.
A Hadamard feedback matrix is said to be used in the IRCAM Spatialisateur [218].
Householder Feedback Matrix
One choice of lossless feedback matrix
for FDNs, especially
nice in the
case, is a specific Householder
reflection proposed by Jot [217]:
where
![$ \uv_N^T = [1, 1, \dots, 1]$](http://www.dsprelated.com/josimages_new/pasp/img756.png)



It is interesting to note that when is a power of 2, no multiplies
are required [430]. For other
, only one multiply is
required (by
).
Another interesting property of the Householder reflection
given by Eq.
(3.4) (and its permuted forms) is that an
matrix-times-vector operation may be carried out with only
additions (by first forming
times the input vector, applying
the scale factor
, and subtracting the result from the input
vector). This is the same computation as physical wave
scattering at a junction of identical waveguides (§C.8).
An example implementation of a Householder FDN for is shown in
Fig.3.11. As observed by Jot [153, p.
216], this computation is equivalent to
parallel feedback comb filters with one new feedback path from the
output to the input through a gain of
.
A nice feature of the Householder feedback matrix is that
for
, all entries in the matrix are nonzero. This
means every delay line feeds back to every other delay line, thereby
helping to maximize echo density as soon as possible.
Furthermore, for , all matrix entries have the same
magnitude:
![$\displaystyle \mathbf{A}_4 = \frac{1}{2}
\left[\begin{array}{rrrr}
1 & -1 & -1 ...
...
-1 & 1 & -1 & -1\\
-1 & -1 & 1 & -1\\
-1 & -1 & -1 & 1
\end{array}\right].
$](http://www.dsprelated.com/josimages_new/pasp/img766.png)



Due to the elegant balance of the Householder feedback matrix,
Jot [216] proposes an
FDN based on an embedding of
feedback matrices:
![$\displaystyle \mathbf{A}_{16} = \frac{1}{2}
\left[\begin{array}{rrrr}
\mathbf{A...
...\mathbf{A}_4 & -\mathbf{A}_4 & -\mathbf{A}_4 & \mathbf{A}_4
\end{array}\right]
$](http://www.dsprelated.com/josimages_new/pasp/img768.png)

Householder Reflections
For completeness, this section derives the Householder reflection
matrix from geometric considerations [451]. Let
denote
the projection matrix which orthogonally projects vectors onto
, i.e.,


















Most General Lossless Feedback Matrices
As shown in §C.15.3, an FDN feedback matrix
is
lossless if and only if its eigenvalues have modulus 1 and its
eigenvectors are linearly independent.
A unitary matrix is any (complex) matrix that is inverted
by its own (conjugate) transpose:






All unitary (and orthogonal) matrices have unit-modulus eigenvalues and linearly independent eigenvectors. As a result, when used as a feedback matrix in an FDN, the resulting FDN will be lossless (until the delay-line damping filters are inserted, as discussed in §3.7.4 below).
Triangular Feedback Matrices
An interesting class of feedback matrices, also explored by Jot [216], is that of triangular matrices. A basic fact from linear algebra is that triangular matrices (either lower or upper triangular) have all of their eigenvalues along the diagonal.4.13 For example, the matrix
![$\displaystyle \mathbf{A}_3 = \left[\begin{array}{ccc}
\lambda_1 & 0 & 0\\ [2pt]
a & \lambda_2 & 0\\ [2pt]
b & c & \lambda_3
\end{array}\right]
$](http://www.dsprelated.com/josimages_new/pasp/img786.png)




It is important to note that not all triangular matrices are lossless. For example, consider
![$\displaystyle \mathbf{A}_2 = \left[\begin{array}{cc} 1 & 0 \\ [2pt] 1 & 1 \end{array}\right]
$](http://www.dsprelated.com/josimages_new/pasp/img790.png)
![$ [0,1]^T$](http://www.dsprelated.com/josimages_new/pasp/img791.png)

![$\displaystyle \mathbf{A}_2^n = \left[\begin{array}{cc} 1 & 0 \\ [2pt] n & 1 \end{array}\right]
$](http://www.dsprelated.com/josimages_new/pasp/img793.png)
One way to avoid ``coupled repeated poles'' of this nature is to use
non-repeating eigenvalues. Another is to convert
to Jordan
canonical form by means of a similarity transformation, zero any
off-diagonal elements, and transform back [329].
Next Section:
Choice of Delay Lengths
Previous Section:
History of FDNs for Artificial Reverberation