24
Dynamic Convolution Proposed Algorithm Efficient DSP Implementation Results Conclusion An Efficient DSP Implementation of a Dynamic Convolution Approach Using Principal Component Analysis Andrea Primavera 1 , Stefania Cecchi 1 , Laura Romoli 1 , Michele Gasparini 1 and Francesco Piazza 1 1 A3lab - DII - Universit` a Politecnica delle Marche - Ancona - ITALY 5 th European DSP in Education and Research Conference, 13 th and 14 th September, 2012, Amsterdam, Netherlands. Andrea Primavera An Efficient DSP Implementation of a Dynamic Convolution Approach Using Principal Component Analysis 1/21

An Efficient DSP Implementation of a Dynamic Convolution Using Principal Component Analysis

Embed Size (px)

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

Page 1: An Efficient DSP Implementation of a Dynamic Convolution Using Principal Component Analysis

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

Page 2: An Efficient DSP Implementation of a Dynamic Convolution Using Principal Component Analysis

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

Page 3: An Efficient DSP Implementation of a Dynamic Convolution Using Principal Component Analysis

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

Page 4: An Efficient DSP Implementation of a Dynamic Convolution Using Principal Component Analysis

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

Page 5: An Efficient DSP Implementation of a Dynamic Convolution Using Principal Component Analysis

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

Page 6: An Efficient DSP Implementation of a Dynamic Convolution Using Principal Component Analysis

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

Page 7: An Efficient DSP Implementation of a Dynamic Convolution Using Principal Component Analysis

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

Page 8: An Efficient DSP Implementation of a Dynamic Convolution Using Principal Component Analysis

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

Page 9: An Efficient DSP Implementation of a Dynamic Convolution Using Principal Component Analysis

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

Page 10: An Efficient DSP Implementation of a Dynamic Convolution Using Principal Component Analysis

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

Page 11: An Efficient DSP Implementation of a Dynamic Convolution Using Principal Component Analysis

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

Page 12: An Efficient DSP Implementation of a Dynamic Convolution Using Principal Component Analysis

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

Page 13: An Efficient DSP Implementation of a Dynamic Convolution Using Principal Component Analysis

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

Page 14: An Efficient DSP Implementation of a Dynamic Convolution Using Principal Component Analysis

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

Page 15: An Efficient DSP Implementation of a Dynamic Convolution Using Principal Component Analysis

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

Page 16: An Efficient DSP Implementation of a Dynamic Convolution Using Principal Component Analysis

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

Page 17: An Efficient DSP Implementation of a Dynamic Convolution Using Principal Component Analysis

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

Page 18: An Efficient DSP Implementation of a Dynamic Convolution Using Principal Component Analysis

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

Page 19: An Efficient DSP Implementation of a Dynamic Convolution Using Principal Component Analysis

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

Page 20: An Efficient DSP Implementation of a Dynamic Convolution Using Principal Component Analysis

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

Page 21: An Efficient DSP Implementation of a Dynamic Convolution Using Principal Component Analysis

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

Page 22: An Efficient DSP Implementation of a Dynamic Convolution Using Principal Component Analysis

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

Page 23: An Efficient DSP Implementation of a Dynamic Convolution Using Principal Component Analysis

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

Page 24: An Efficient DSP Implementation of a Dynamic Convolution Using Principal Component Analysis

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