In the recent years, several techniques have been proposed in the literature in order to attempt the emulation of nonlinear electro-acoustic devices, such as compressors, limiters, and pre-amplifiers. Among them, the dynamic convolution technique is one of the most common approaches used to perform a nonlinear convolution. In this paper, an efficient DSP implementation of a nonlinear system emulation based on the dynamic convolution technique and principal component analysis is proposed with the aim of lowering the required workload and the global memory usage. Several results are reported in order to show the effectiveness of the proposed approach, taking into consideration a guitar pre-amplifier as a particular case study and also introducing comparisons with the existing techniques of the state of the art.
Difference Between Search & Browse Methods in Odoo 17
An Efficient DSP Implementation of a Dynamic Convolution Using Principal Component Analysis
1. Dynamic Convolution
Proposed Algorithm
Efficient DSP Implementation
Results
Conclusion
An Efficient DSP Implementation of a Dynamic
Convolution Approach Using Principal Component
Analysis
Andrea Primavera1
, Stefania Cecchi1
, Laura Romoli1
, Michele Gasparini1
and
Francesco Piazza1
1
A3lab - DII - Universit`a Politecnica delle Marche -
Ancona - ITALY
5th
European DSP in Education and Research Conference, 13th
and 14th
September, 2012, Amsterdam, Netherlands.
Andrea Primavera An Efficient DSP Implementation of a Dynamic Convolution Approach Using Principal Component Analysis 1/21
2. Dynamic Convolution
Proposed Algorithm
Efficient DSP Implementation
Results
Conclusion
1 Dynamic Convolution
Introduction
State of the art
2 Proposed Algorithm
Proposed algorithm
System identification
PCA based preprocessing
Emulation of the nonlinear system
3 Efficient DSP Implementation
Target
Dynamic convolution
Proposed approach
4 Results
Case study: a digital guitar pre-amplifier
Objective measure
5 Conclusion
Conclusion
Future works
Questions
Andrea Primavera An Efficient DSP Implementation of a Dynamic Convolution Approach Using Principal Component Analysis 2/21
3. Dynamic Convolution
Proposed Algorithm
Efficient DSP Implementation
Results
Conclusion
Introduction
State of the art
Dynamic convolution technique is one of the most common approaches
used to perform a nonlinear convolution (emulation of compressors,
limiters and pre-amps).
Andrea Primavera An Efficient DSP Implementation of a Dynamic Convolution Approach Using Principal Component Analysis 3/21
4. Dynamic Convolution
Proposed Algorithm
Efficient DSP Implementation
Results
Conclusion
Introduction
State of the art
Dynamic convolution technique is one of the most common approaches
used to perform a nonlinear convolution (emulation of compressors,
limiters and pre-amps).
DYNAMIC
CONVOLUTION
COMPUTATIONAL
COST
MINIMIZATION
Problem
We propose an efficient DSP based real-time implementation of a
dynamic convolution taking into account:
• OMAP L137;
• Usage of smart DSP expedients;
• Principal component analysis (PCA);
Proposed Solution
Andrea Primavera An Efficient DSP Implementation of a Dynamic Convolution Approach Using Principal Component Analysis 4/21
5. Dynamic Convolution
Proposed Algorithm
Efficient DSP Implementation
Results
Conclusion
Introduction
State of the art
For discrete-time signals x and impulse response h with a finite length N,
the linear convolution results:
y[n] = x[n] ∗ h[n] =
N−1
m=0
x(n)h(m − n) (1)
This operation cannot be used in nonlinear case, since the output
signal is not directly proportional to the input signal.
Problem
Andrea Primavera An Efficient DSP Implementation of a Dynamic Convolution Approach Using Principal Component Analysis 5/21
6. Dynamic Convolution
Proposed Algorithm
Efficient DSP Implementation
Results
Conclusion
Introduction
State of the art
For discrete-time signals x and impulse response h with a finite length N,
the linear convolution results:
y[n] = x[n] ∗ h[n] =
N−1
m=0
x(n − m)h(m) (2)
y[n] =
N−1
m=0
x[n − m]H [m, S(x[n − m])] , (3)
where:
• H is the matrix of impulse responses obtained through the
system analysis procedure.
• S(x[n]) = 1 + {|x[n]| /(fs/M)} represents the selector function.
Dynamic Convolution
Andrea Primavera An Efficient DSP Implementation of a Dynamic Convolution Approach Using Principal Component Analysis 6/21
7. Dynamic Convolution
Proposed Algorithm
Efficient DSP Implementation
Results
Conclusion
Proposed algorithm
System identification
PCA based preprocessing
Emulation of the nonlinear system
A simplified model of dynamic convolution procedure has been
developed. It allows a faithful reproduction of the convolution operation
lowering the computational cost required:
Block diagram of the proposed algorithm.
MAIN PHASES
• System Identification
• Preprocessing based
on PCA
• Emulation
Andrea Primavera An Efficient DSP Implementation of a Dynamic Convolution Approach Using Principal Component Analysis 7/21
8. Dynamic Convolution
Proposed Algorithm
Efficient DSP Implementation
Results
Conclusion
Proposed algorithm
System identification
PCA based preprocessing
Emulation of the nonlinear system
A MMLS technique has been used in order to obtain M IRs related to M
input signals of different amplitudes.
MMLS signal used in the system
identification procedure.
50100150200250
0
40
80
120
−1
−0.5
0
0.5
1
Time [samples]
IR index
Amplitude
Dataset of IRs obtained analyzing a
guitar pre-amplifier.
Parameters configuration: Amplitude decreasing of 1dB for step,
M = 64, and sample rate of 48 kHz.
Andrea Primavera An Efficient DSP Implementation of a Dynamic Convolution Approach Using Principal Component Analysis 8/21
9. Dynamic Convolution
Proposed Algorithm
Efficient DSP Implementation
Results
Conclusion
Proposed algorithm
System identification
PCA based preprocessing
Emulation of the nonlinear system
PCA is applied to the matrix H obtained through the system analysis
procedure.
PCA offers a mechanism for performing lossy data compression:
high compression rate is provided by discarding the last principal
components, (i.e., those exhibiting the lowest variance).
More in detail:
ˆH = V · W , (4)
where:
• the basis vectors V is computed as the eigenvector of the
covariance matrix C = (H − H)(H − H)T
with H representing
a L × M matrix with the averages of hk (n).
• the principal components W are obtained as follows:
W = V T
· H (5)
Going Deeper into PCA
Andrea Primavera An Efficient DSP Implementation of a Dynamic Convolution Approach Using Principal Component Analysis 9/21
10. Dynamic Convolution
Proposed Algorithm
Efficient DSP Implementation
Results
Conclusion
Proposed algorithm
System identification
PCA based preprocessing
Emulation of the nonlinear system
0 20 40 60 80 100 120
−3
−2
−1
0
1
2
3
IR index
Amplitude
First basis vector
Second basis vector
Third basis vector
(i)
0 100 200 300 400 500
−2
−1
0
1
2
3
Time [samples]
Amplitude
First principal component
Second principal component
Third principal component
(ii)
0 1 2 3 4
0
20
40
60
80
100
Number of principal components
Cumulativepercentage
ofvariance
(iii)
Basis vectors (i), principal components (ii), percentage of cumulative variance (iii)
obtained using the PCA analysis for a guitar pre-amplifier.
Andrea Primavera An Efficient DSP Implementation of a Dynamic Convolution Approach Using Principal Component Analysis 10/21
11. Dynamic Convolution
Proposed Algorithm
Efficient DSP Implementation
Results
Conclusion
Proposed algorithm
System identification
PCA based preprocessing
Emulation of the nonlinear system
The proposed approach allows one to approximate the dynamic
convolution operation using pairs of amplitude waveshapers and FIR
filters .
The coefficients of these structures are set as:
• Amplitude waveshapers → basis vectors Vi
• FIR filters → principal components Wi
The number N of Waveshaper and FIR filters used during the emulation
depends on the desired value of cumulative percentage of variance
(higher is the percentage value better is the approximation).
Andrea Primavera An Efficient DSP Implementation of a Dynamic Convolution Approach Using Principal Component Analysis 11/21
12. Dynamic Convolution
Proposed Algorithm
Efficient DSP Implementation
Results
Conclusion
Target
Dynamic convolution
Proposed approach
The real time implementation of the proposed approach has been done
through the Texas Instruments Evaluation Board OMAPL137.
Hardware features
Dual-Core System-On-Chip
300MHz ARM926EJ-S RISC MPU
300MHz C674x VLIW Floating Point DSP
128KByte RAM Shared Memory
64MByte SDRAM
Enhanced Direct-Memory-Access Controller 3 (EDMA3)
2 I/O audio channel
32KByte L1P Program RAM/Cache (DSP side)
32KByte L1D Data RAM/Cache (DSP side)
256KByte L2 Unified Mapped RAM/Cache (DSP side)
• Design constraints: Sample frequency 48 kHz, latency 64 samples,
floating point implementation;
• ARM: used to manage the control parameters;
• DSP: used to perform the DSP operations, exploiting its own
libraries (i.e., DSPLib).
Andrea Primavera An Efficient DSP Implementation of a Dynamic Convolution Approach Using Principal Component Analysis 12/21
13. Dynamic Convolution
Proposed Algorithm
Efficient DSP Implementation
Results
Conclusion
Target
Dynamic convolution
Proposed approach
The real time implementation of the proposed approach has been done
through the Texas Instruments Evaluation Board OMAPL137.
Hardware features
Dual-Core System-On-Chip
300MHz ARM926EJ-S RISC MPU
300MHz C674x VLIW Floating Point DSP
128KByte RAM Shared Memory
64MByte SDRAM
Enhanced Direct-Memory-Access Controller 3 (EDMA3)
2 I/O audio channel
32KByte L1P Program RAM/Cache (DSP side)
32KByte L1D Data RAM/Cache (DSP side)
256KByte L2 Unified Mapped RAM/Cache (DSP side)
• Design constraints: Sample frequency 48 kHz, latency 64 samples,
floating point implementation;
• ARM: used to manage the control parameters;
• DSP: used to perform the DSP operations, exploiting its own
libraries (i.e., DSPLib).
Andrea Primavera An Efficient DSP Implementation of a Dynamic Convolution Approach Using Principal Component Analysis 12/21
14. Dynamic Convolution
Proposed Algorithm
Efficient DSP Implementation
Results
Conclusion
Target
Dynamic convolution
Proposed approach
The real time implementation of the proposed approach has been done
through the Texas Instruments Evaluation Board OMAPL137.
Hardware features
Dual-Core System-On-Chip
300MHz ARM926EJ-S RISC MPU
300MHz C674x VLIW Floating Point DSP
128KByte RAM Shared Memory
64MByte SDRAM
Enhanced Direct-Memory-Access Controller 3 (EDMA3)
2 I/O audio channel
32KByte L1P Program RAM/Cache (DSP side)
32KByte L1D Data RAM/Cache (DSP side)
256KByte L2 Unified Mapped RAM/Cache (DSP side)
• Design constraints: Sample frequency 48 kHz, latency 64 samples,
floating point implementation;
• ARM: used to manage the control parameters;
• DSP: used to perform the DSP operations, exploiting its own
libraries (i.e., DSPLib).
Andrea Primavera An Efficient DSP Implementation of a Dynamic Convolution Approach Using Principal Component Analysis 12/21
15. Dynamic Convolution
Proposed Algorithm
Efficient DSP Implementation
Results
Conclusion
Target
Dynamic convolution
Proposed approach
The real time implementation of the proposed approach has been done
through the Texas Instruments Evaluation Board OMAPL137.
Hardware features
Dual-Core System-On-Chip
300MHz ARM926EJ-S RISC MPU
300MHz C674x VLIW Floating Point DSP
128KByte RAM Shared Memory
64MByte SDRAM
Enhanced Direct-Memory-Access Controller 3 (EDMA3)
2 I/O audio channel
32KByte L1P Program RAM/Cache (DSP side)
32KByte L1D Data RAM/Cache (DSP side)
256KByte L2 Unified Mapped RAM/Cache (DSP side)
• Design constraints: Sample frequency 48 kHz, latency 64 samples,
floating point implementation;
• ARM: used to manage the control parameters;
• DSP: used to perform the DSP operations, exploiting its own
libraries (i.e., DSPLib).
Andrea Primavera An Efficient DSP Implementation of a Dynamic Convolution Approach Using Principal Component Analysis 12/21
16. Dynamic Convolution
Proposed Algorithm
Efficient DSP Implementation
Results
Conclusion
Target
Dynamic convolution
Proposed approach
The use of external memory is required due to the large amount of
memory required by the application (i.e, lot of IRs to store).
Block diagram of dynamic convolution
implementation.
It is possible to remove the
normalization operation:
y[n] =
N−1
m=0
x[n−m]H [m, s(x[n − m])] .
y[n] =
N−1
m=0
H [m, s(x[n − m])] .
Andrea Primavera An Efficient DSP Implementation of a Dynamic Convolution Approach Using Principal Component Analysis 13/21
17. Dynamic Convolution
Proposed Algorithm
Efficient DSP Implementation
Results
Conclusion
Target
Dynamic convolution
Proposed approach
The use of external memory is required due to the large amount of
memory required by the application (i.e, lot of IRs to store).
Block diagram of dynamic convolution
implementation.
1 The value of a pointer is
changed on the basis of a
logarithmic function of the
input sample value.
2 The IRs having amplitude just
below and above the
amplitude of the current
sample are stored into internal
memory and a linear
interpolation is performed.
3 Circular buffer is used to
manage the accumulator.
Andrea Primavera An Efficient DSP Implementation of a Dynamic Convolution Approach Using Principal Component Analysis 14/21
18. Dynamic Convolution
Proposed Algorithm
Efficient DSP Implementation
Results
Conclusion
Target
Dynamic convolution
Proposed approach
The PCA procedure allows one to reduce the global memory usage and
permit to use internal memory for data storage.
• Amplitude waveshaper
All the expedients used for dynamic convolution have been taken
into account (similar concepts assuming the length of each impulse
response equals to 1 (L = 1)).
• FIR
An efficient implementation has been obtained using the partitioned
overlap and save (POLS) algorithm.
• The use of FFT symmetry property allows to reduce the number of
complex multiplications.
• The use of DMA engine permit to parallelize external memory
transfers and processing operation.
Andrea Primavera An Efficient DSP Implementation of a Dynamic Convolution Approach Using Principal Component Analysis 15/21
19. Dynamic Convolution
Proposed Algorithm
Efficient DSP Implementation
Results
Conclusion
Case study: a digital guitar pre-amplifier
Objective measure
Dynamic convolution can be employed to emulate several nonlinear
device.
A digital guitar pre-amplifier has been taken into account (Guitar Rig
VST plugin).
Case Study: Guitar Pre-Amplifier
Several tests have been carried out to evaluate the effectiveness of the
proposed algorithm comparing the workload of dynamic convolution
and PCA based approach.
Tests
Andrea Primavera An Efficient DSP Implementation of a Dynamic Convolution Approach Using Principal Component Analysis 16/21
20. Dynamic Convolution
Proposed Algorithm
Efficient DSP Implementation
Results
Conclusion
Case study: a digital guitar pre-amplifier
Objective measure
OBJECTIVE MEASURE
Signal waveforms obtained during the guitar pre-amplifier simulation. (i) input signal,
(ii) output generated by the nonlinear system, (iii) output produced with the dynamic
convolution, (iv) residual error using 1 PC, (v) residual error using 2 PCs, (vi) residual
error using 3 PCs.
Andrea Primavera An Efficient DSP Implementation of a Dynamic Convolution Approach Using Principal Component Analysis 17/21
21. Dynamic Convolution
Proposed Algorithm
Efficient DSP Implementation
Results
Conclusion
Case study: a digital guitar pre-amplifier
Objective measure
OBJECTIVE MEASURE
100 200 300 400 500
0
20
40
60
80
100
120
IR length [samples]
Workload
(a) (b) (c) (d)
Workload as a function of the IR length. (a)
Dynamic convolution, (b) proposed approach
using 1 PC, (c) proposed approach using 2
PCs, (d) proposed approach using 3 PCs.
Principal components MSE
1 1.67 ∗ 10−5
2 1.27 ∗ 10−6
3 2.59 ∗ 10−7
MSE as a function of the number
of PCs.
• The presented algorithm allows a faithful approximation of the
dynamic convolution operation.
• The proposed approach introduce a remarkable improvement in
terms of computational cost reduction.
Considerations
Andrea Primavera An Efficient DSP Implementation of a Dynamic Convolution Approach Using Principal Component Analysis 18/21
22. Dynamic Convolution
Proposed Algorithm
Efficient DSP Implementation
Results
Conclusion
Conclusion
Future works
Questions
In conclusion:
• A novel approach useful to reproduce nonlinearity behaviors and
based on dynamic convolution and principal component analysis, is
proposed in this paper.
• Exploiting the PCA procedure, it is possible to approximate the
dynamic convolution operation reducing the computational cost
required during the nonlinear system emulation.
• A DSP-based real time implementation has been performed and
several experimental results have been carried out considering a
digital guitar pre-amplifier as a particular case study.
Andrea Primavera An Efficient DSP Implementation of a Dynamic Convolution Approach Using Principal Component Analysis 19/21
23. Dynamic Convolution
Proposed Algorithm
Efficient DSP Implementation
Results
Conclusion
Conclusion
Future works
Questions
Future works:
• Will be oriented toward a further investigation of the proposed
approach through deeper listening test sessions and considering real
analog nonlinearities.
Andrea Primavera An Efficient DSP Implementation of a Dynamic Convolution Approach Using Principal Component Analysis 20/21
24. Dynamic Convolution
Proposed Algorithm
Efficient DSP Implementation
Results
Conclusion
Conclusion
Future works
Questions
QUESTIONS?
Andrea Primavera An Efficient DSP Implementation of a Dynamic Convolution Approach Using Principal Component Analysis 21/21