NON NON - - LINEAR CONVOLUTION: A NEW LINEAR CONVOLUTION: A NEW APPROACH FOR THE AURALIZATION APPROACH FOR THE AURALIZATION
OF DISTORTING SYSTEMS OF DISTORTING SYSTEMS
Angelo Farina, Alberto Bellini and Enrico Armelloni
Industrial Engineering Dept., University of Parma, Via delle Scienze 181/A Parma, 43100 ITALY – HTTP://pcfarina.eng.unipr.it
Goals
Goals for for Auralization Auralization
z
Transform the results of objective electroacoustics measurements to audible sound samples suitable for listening tests
z
Traditional auralization is based on linear
convolution: this does not replicates faithfully the nonlinear behaviour of most transducers
z
The new method presented here overcomes to this
strong limitation, providing a simplified treatment
of memory-less distortion
Methods Methods
z
We start from a measurement of the system based on exponential sine sweep (Farina, 108th AES, Paris 2000)
z
Diagonal Volterra kernels are obtained by post- processing the measurement results
z
These kernels are employed as FIR filters in a
multiple-order convolution process (original
signal, its square, its cube, and so on are
convolved separately and the result is summed)
Exponential
Exponential sweep sweep measurement measurement
z
The excitation signal is a sine sweep with constant
amplitude and exponentially-increasing frequency
Raw Raw response response of of the system the system
Many harmonic orders do appear as colour stripes
Deconvolution
Deconvolution of of system system ’ ’ s s impulse impulse response response
The deconvolution is obtained by convolving the raw response with a suitable inverse filter
Multiple
Multiple impulse impulse response response obtained obtained
The last peak is the linear impulse response, the preceding ones are the harmonic distortion orders
1st
2nd 5th 3rd
Auralization
Auralization by by linear linear convolution convolution
Convolving a suitable sound sample with the linear IR, the frequency response and temporal transient effects of the system can be simulated properly
⊗
=
What What ’ ’ s s missing missing in in linear linear convolution convolution ? ?
z
No harmonic distortion, nor other nonlinear effects are being reproduced.
z
From a perceptual point of view, the sound is judged “cold” and “innatural”
z
A comparative test between a strongly nonlinear
device and an almost linear one does not reveal
any audible difference, because the nonlinear
behavior is removed for both
Theory
Theory of of nonlinear nonlinear convolution convolution
z
The basic approach is to convolve separately, and then add the result, the linear IR, the second order IR, the third order IR, and so on.
z
Each order IR is convolved with the input signal raised at the corresponding power:
( ) (
i x n i)
h( ) (
i x n i)
h( ) (
i x n i)
...h )
n ( y
1 M
0 i
3 3 1
M 0 i
2 2 1
M 0 i
1 ⋅ − + ⋅ − + ⋅ − +
=
∑ ∑ ∑
−=
−
=
−
=
The problem is that the required multiple IRs are not the results of the measurements: they are instead the diagonal terms of Volterra kernels
Volterra
Volterra kernels kernels and and simplification simplification
z
The general Volterra series expansion is defined as:
( ) ( ) ∑ ∑ ( ) ( ) ( )
∑
−=
−
=
−
= ⋅ − + ⋅ − ⋅ − +
= M 1
0 i
1 M
0 i
2 1
2 1 2 1
M 0 i
1 1
1
1 2
1
i n x i
n x i
, i h i
n x i
h )
n ( y
( ) ( ) ( ) ( )
∑ ∑ ∑
−=
−
=
−
=
+
−
⋅
−
⋅
−
⋅ + M 1
0 i
1 M
0 i
1 M
0 i
3 2
1 3
2 1 3
1 2 3
...
i n
x i
n x i
n x i
, i , i h
This explains also nonlinear effect with memory, as the system output contains also products of previous sample values with different delays
Memoryless
Memoryless distortion distortion followed followed by by a a linear linear system
system with with memory memory
z The first nonlinear system is assumed to be memory-less, so only the diagonal terms of the Volterra kernels need to be taken into account.
Not-linear system K[x(t)]
Noise n(t)
input x(t)
+
output y(t) linear system
w(t)⊗h(t) distorted signal
w(t)
z Furthermore, we neglect the noise, which is efficiently rejected by the sine sweep measurement method.
Volterra
Volterra kernels kernels from from the the measurement measurement results results
The measured multiple IRs h’ can be defined as:
[ ]
h' sin[
2]
h' sin[
3]
...sin '
h )
t (
y = 1⊗ ωvar + 2⊗ ⋅ ωvar + 3⊗ ⋅ωvar +
We need to relate them to the simplified Volterra kernels h:
[ ]
h sin[ ]
h sin[ ]
...sin h
) t (
y = 1 ⊗ ωvar + 2 ⊗ 2 ωvar + 3 ⊗ 3 ωvar +
Trigonometry can be used to expand the powers of the sinusoidal terms:
(ω⋅τ)= − ⋅cos(2⋅ω⋅τ)
2 1 2
sin2 1 (ω⋅τ)= ⋅ (ω⋅τ)− ⋅sin(3⋅ω⋅τ)
4 sin 1
4 sin3 3
(ω⋅τ)= − ⋅ ( ⋅ω⋅τ)+ ⋅cos(4⋅ω⋅τ)
8 2 1
2 cos 1 8 sin4 3
( )ω⋅τ = ⋅ ( )ω⋅τ − ⋅ ( ⋅ω⋅τ)+ ⋅sin(5⋅ω⋅τ)
16 3 1
16 sin sin 5
8 sin5 5
Finding
Finding the connection the connection point point
Going to frequency domain by taking the FFT, the first equation becomes:
[ ] [ ]
X H'[ ] [ ]
X /2 H'[ ] [ ]
X /3 ...' H )
(
Y ω = 1 ω ⋅ ω + 2 ω ⋅ ω + 3 ω ⋅ ω + Doing the same in the second equation, and substituting the trigonometric expressions for power of sines, we get:
[ ] [ ]
[ ] [ ] H X[ ]/5 ...
16 4 1
/ X j 8 H
3 1 / X 16 H
H 5 4 1
2 / X j 2 H
H 1 2 X 1
8 H H 5
4 H 3
) ( Y
5 4
5 3
4 2
5 3
1
+ ω
⋅
⋅ + ω
⋅
⋅
⋅ + ω
⎥⎦⋅
⎢⎣ ⎤
⎡− ⋅ − ⋅ +
+ ω
⋅
⎥⎦⋅
⎢⎣ ⎤
⎡− ⋅ − ⋅ +
ω
⎥⎦⋅
⎢⎣ ⎤
⎡ + ⋅ + ⋅
= ω
The terms in square brackets have to be equal to the
corresponding measured transfer functions H’ of the first equation
Solution Solution
z
Thus we obtain a linear equation system:
[ ]
⎪⎪
⎪⎪
⎪⎪
⎩
⎪⎪
⎪⎪
⎪⎪
⎨
⎧
⋅
=
⋅
⋅
=
⋅
−
⋅
−
=
+
⋅
⋅
−
=
⋅ +
⋅ +
=
5 5
4 4
5 3
3
4 2
2
5 3
1 1
16 H ' 1
H
8 H j 1 '
H
16 H H 5
4 ' 1
H
H 2 H
j 1 '
H
8 H H 5
4 H 3 '
H
We can easily solve it,
obtaining the required Volterra kernels as a function of the
measured multiple-order IRs:
⎪⎪
⎪
⎩
⎪⎪
⎪
⎨
⎧
⋅
=
⋅
⋅
−
=
⋅
−
⋅
−
=
⋅
⋅ +
⋅
⋅
=
⋅ +
⋅ +
=
5 5
4 4
5 3
3
4 2
2
5 1 3
1
' H 16 H
' H j 8 H
' H 20 '
H 4 H
' H j 8 '
H j 2 H
' H 5 '
H 3 ' H H
Non Non - - linear linear convolution convolution
As we have got the Volterra kernels already in
frequency domain, we can efficiently use them in a multiple convolution algorithm implemented by
overlap-and-save of the partitioned input signal:
Normal signal input x(t)
x2
output y(t) h1(t)
Squared signal
x3
Cubic signal
x4
Quartic signal
⊗
+
h2(t) ⊗
+
h3(t) ⊗
+
h4(t) ⊗
Software
Software implementation implementation
Although today the algorithm is working off-line (as a mix of
manual CoolEdit operations and some Matlab processing), a more efficient implementation as a CoolEdit plugin is being worked out:
This will allow for real-time operation even with
a very large number of filter coefficients
Audible
Audible evaluation evaluation of of the performance the performance
Original signal Linear convolution
Live recording Non-linear multi convolution
These last two were compared in a formalized blind listening test
Subjective
Subjective listening listening test test
z A/B comparison
z Live recording & non-linear auralization
z 12 selected subjects
z 4 music samples
z 9 questions
z 5-dots horizontal scale
z Simple statistical analysis of the results
z A was the live recording, B was the auralization, but the listener did not know this
95% confidence intervals of the responses
Conclusion Conclusion
Statistical parameters – more advanced statistical methods would be advisable for getting more significant results
Final remarks
- The CoolEdit plugin is planned to be released in two months – it will be downloadable from HTTP://www.ramsete.com/aurora
- The sound samples employed for the subjective test are available for download at HTTP://pcangelo.eng.unipr.it/public/AES110
- The new method will be employed for realistic reproduction in a listening room of the behaviour of car sound systems
Question Number Average score
2.67 * Std. Dev.
1 (identical-different) 1.25 0.76
3 (better timber) 3.45 1.96
5 (more distorted) 2.05 1.34
9 (more pleasant) 3.30 2.16