View
1.100
Download
0
Category
Tags:
Preview:
DESCRIPTION
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.
Citation preview
Dynamic ConvolutionProposed Algorithm
Efficient DSP ImplementationResults
Conclusion
An Efficient DSP Implementation of a DynamicConvolution Approach Using Principal Component
Analysis
Andrea Primavera1, Stefania Cecchi1, Laura Romoli1, Michele Gasparini1 and
Francesco Piazza1
1 A3lab - DII - Universita 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
Dynamic ConvolutionProposed Algorithm
Efficient DSP ImplementationResults
Conclusion
1 Dynamic ConvolutionIntroductionState of the art
2 Proposed AlgorithmProposed algorithmSystem identificationPCA based preprocessingEmulation of the nonlinear system
3 Efficient DSP ImplementationTargetDynamic convolutionProposed approach
4 ResultsCase study: a digital guitar pre-amplifierObjective measure
5 ConclusionConclusionFuture worksQuestions
Andrea Primavera An Efficient DSP Implementation of a Dynamic Convolution Approach Using Principal Component Analysis 2/21
Dynamic ConvolutionProposed Algorithm
Efficient DSP ImplementationResults
Conclusion
IntroductionState of the art
Dynamic convolution technique is one of the most common approachesused 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
Dynamic ConvolutionProposed Algorithm
Efficient DSP ImplementationResults
Conclusion
IntroductionState of the art
Dynamic convolution technique is one of the most common approachesused to perform a nonlinear convolution (emulation of compressors,limiters and pre-amps).
DYNAMICCONVOLUTION
COMPUTATIONALCOST
MINIMIZATION
Problem
We propose an efficient DSP based real-time implementation of adynamic 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
Dynamic ConvolutionProposed Algorithm
Efficient DSP ImplementationResults
Conclusion
IntroductionState 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 outputsignal 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
Dynamic ConvolutionProposed Algorithm
Efficient DSP ImplementationResults
Conclusion
IntroductionState 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 thesystem 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
Dynamic ConvolutionProposed Algorithm
Efficient DSP ImplementationResults
Conclusion
Proposed algorithmSystem identificationPCA based preprocessingEmulation of the nonlinear system
A simplified model of dynamic convolution procedure has beendeveloped. It allows a faithful reproduction of the convolution operationlowering 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
Dynamic ConvolutionProposed Algorithm
Efficient DSP ImplementationResults
Conclusion
Proposed algorithmSystem identificationPCA based preprocessingEmulation 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
040
80120
−1
−0.5
0
0.5
1
Time [samples]IR index
Am
plit
ud
e
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
Dynamic ConvolutionProposed Algorithm
Efficient DSP ImplementationResults
Conclusion
Proposed algorithmSystem identificationPCA based preprocessingEmulation of the nonlinear system
PCA is applied to the matrix H obtained through the system analysisprocedure.
PCA offers a mechanism for performing lossy data compression:high compression rate is provided by discarding the last principalcomponents, (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 thecovariance matrix C = (H − H)(H − H)T with H representinga 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
Dynamic ConvolutionProposed Algorithm
Efficient DSP ImplementationResults
Conclusion
Proposed algorithmSystem identificationPCA based preprocessingEmulation of the nonlinear system
0 20 40 60 80 100 120−3
−2
−1
0
1
2
3
IR index
Am
plit
ud
e
First basis vectorSecond basis vectorThird basis vector
(i)
0 100 200 300 400 500−2
−1
0
1
2
3
Time [samples]
Am
plit
ud
e
First principal componentSecond principal componentThird principal component
(ii)
0 1 2 3 40
20
40
60
80
100
Number of principal components
Cu
mu
lativ
e p
erc
en
tag
e o
f va
ria
nce
(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
Dynamic ConvolutionProposed Algorithm
Efficient DSP ImplementationResults
Conclusion
Proposed algorithmSystem identificationPCA based preprocessingEmulation of the nonlinear system
The proposed approach allows one to approximate the dynamicconvolution operation using pairs of amplitude waveshapers and FIRfilters .
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 emulationdepends 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
Dynamic ConvolutionProposed Algorithm
Efficient DSP ImplementationResults
Conclusion
TargetDynamic convolutionProposed approach
The real time implementation of the proposed approach has been donethrough the Texas Instruments Evaluation Board OMAPL137.
Hardware features
Dual-Core System-On-Chip300MHz ARM926EJ-S RISC MPU300MHz C674x VLIW Floating Point DSP
128KByte RAM Shared Memory64MByte SDRAMEnhanced Direct-Memory-Access Controller 3 (EDMA3)2 I/O audio channel32KByte 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 ownlibraries (i.e., DSPLib).
Andrea Primavera An Efficient DSP Implementation of a Dynamic Convolution Approach Using Principal Component Analysis 12/21
Dynamic ConvolutionProposed Algorithm
Efficient DSP ImplementationResults
Conclusion
TargetDynamic convolutionProposed approach
The real time implementation of the proposed approach has been donethrough the Texas Instruments Evaluation Board OMAPL137.
Hardware features
Dual-Core System-On-Chip300MHz ARM926EJ-S RISC MPU300MHz C674x VLIW Floating Point DSP
128KByte RAM Shared Memory64MByte SDRAMEnhanced Direct-Memory-Access Controller 3 (EDMA3)2 I/O audio channel32KByte 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 ownlibraries (i.e., DSPLib).
Andrea Primavera An Efficient DSP Implementation of a Dynamic Convolution Approach Using Principal Component Analysis 12/21
Dynamic ConvolutionProposed Algorithm
Efficient DSP ImplementationResults
Conclusion
TargetDynamic convolutionProposed approach
The real time implementation of the proposed approach has been donethrough the Texas Instruments Evaluation Board OMAPL137.
Hardware features
Dual-Core System-On-Chip300MHz ARM926EJ-S RISC MPU300MHz C674x VLIW Floating Point DSP
128KByte RAM Shared Memory64MByte SDRAMEnhanced Direct-Memory-Access Controller 3 (EDMA3)2 I/O audio channel32KByte 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 ownlibraries (i.e., DSPLib).
Andrea Primavera An Efficient DSP Implementation of a Dynamic Convolution Approach Using Principal Component Analysis 12/21
Dynamic ConvolutionProposed Algorithm
Efficient DSP ImplementationResults
Conclusion
TargetDynamic convolutionProposed approach
The real time implementation of the proposed approach has been donethrough the Texas Instruments Evaluation Board OMAPL137.
Hardware features
Dual-Core System-On-Chip300MHz ARM926EJ-S RISC MPU300MHz C674x VLIW Floating Point DSP
128KByte RAM Shared Memory64MByte SDRAMEnhanced Direct-Memory-Access Controller 3 (EDMA3)2 I/O audio channel32KByte 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 ownlibraries (i.e., DSPLib).
Andrea Primavera An Efficient DSP Implementation of a Dynamic Convolution Approach Using Principal Component Analysis 12/21
Dynamic ConvolutionProposed Algorithm
Efficient DSP ImplementationResults
Conclusion
TargetDynamic convolutionProposed approach
The use of external memory is required due to the large amount ofmemory required by the application (i.e, lot of IRs to store).
Block diagram of dynamic convolution
implementation.
It is possible to remove thenormalization 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
Dynamic ConvolutionProposed Algorithm
Efficient DSP ImplementationResults
Conclusion
TargetDynamic convolutionProposed approach
The use of external memory is required due to the large amount ofmemory 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
Dynamic ConvolutionProposed Algorithm
Efficient DSP ImplementationResults
Conclusion
TargetDynamic convolutionProposed approach
The PCA procedure allows one to reduce the global memory usage andpermit to use internal memory for data storage.
• Amplitude waveshaperAll the expedients used for dynamic convolution have been takeninto account (similar concepts assuming the length of each impulseresponse equals to 1 (L = 1)).
• FIRAn efficient implementation has been obtained using the partitionedoverlap 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
Dynamic ConvolutionProposed Algorithm
Efficient DSP ImplementationResults
Conclusion
Case study: a digital guitar pre-amplifierObjective measure
Dynamic convolution can be employed to emulate several nonlineardevice.
A digital guitar pre-amplifier has been taken into account (Guitar RigVST plugin).
Case Study: Guitar Pre-Amplifier
Several tests have been carried out to evaluate the effectiveness of theproposed algorithm comparing the workload of dynamic convolutionand PCA based approach.
Tests
Andrea Primavera An Efficient DSP Implementation of a Dynamic Convolution Approach Using Principal Component Analysis 16/21
Dynamic ConvolutionProposed Algorithm
Efficient DSP ImplementationResults
Conclusion
Case study: a digital guitar pre-amplifierObjective 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
Dynamic ConvolutionProposed Algorithm
Efficient DSP ImplementationResults
Conclusion
Case study: a digital guitar pre-amplifierObjective measure
OBJECTIVE MEASURE
100 200 300 400 5000
20
40
60
80
100
120
IR length [samples]
Wo
rklo
ad
(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 numberof PCs.
• The presented algorithm allows a faithful approximation of thedynamic convolution operation.
• The proposed approach introduce a remarkable improvement interms of computational cost reduction.
Considerations
Andrea Primavera An Efficient DSP Implementation of a Dynamic Convolution Approach Using Principal Component Analysis 18/21
Dynamic ConvolutionProposed Algorithm
Efficient DSP ImplementationResults
Conclusion
ConclusionFuture worksQuestions
In conclusion:
• A novel approach useful to reproduce nonlinearity behaviors andbased on dynamic convolution and principal component analysis, isproposed in this paper.
• Exploiting the PCA procedure, it is possible to approximate thedynamic convolution operation reducing the computational costrequired during the nonlinear system emulation.
• A DSP-based real time implementation has been performed andseveral experimental results have been carried out considering adigital 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
Dynamic ConvolutionProposed Algorithm
Efficient DSP ImplementationResults
Conclusion
ConclusionFuture worksQuestions
Future works:
• Will be oriented toward a further investigation of the proposedapproach through deeper listening test sessions and considering realanalog nonlinearities.
Andrea Primavera An Efficient DSP Implementation of a Dynamic Convolution Approach Using Principal Component Analysis 20/21
Dynamic ConvolutionProposed Algorithm
Efficient DSP ImplementationResults
Conclusion
ConclusionFuture worksQuestions
QUESTIONS?
Andrea Primavera An Efficient DSP Implementation of a Dynamic Convolution Approach Using Principal Component Analysis 21/21
Recommended