Difference between deconvolution and match eq?

Flow Of Time

Member
Oct 6, 2012
686
0
16
Could some explain this to me? I can't seem to find that information anywhere...
Like where is the difference between an IR captured by
Sine -> Poweramp + Cab -> Mic -> Deconvolved with Sine

and
Di -> Poweramp + Cab -> Mic -> Match eq'd with Preamp out?
 
As i understand it the math behind it is a bit different. with the first technique you compare a sinewave against a modulated one (like match eq) and then through mathematical deconvolution you create an impulse response which contains the spectrum of the source signal. with convolution you can get this information back. theoretically this technique is really precise but depends on the frequency range of the sine which isn't that good with voxengos deconvolver. and it only works if the signals share the same source sine.
With match EQ the de-/convolution doesn't exist. instead of that an algorythm compares the relative amplitude differences of mostly averaged fast fourier transformations between two signals. because of averaging you can also use completely different signals. the resolution here depends on the software where ozone has the best with 3Hz as far as i know.

i got better results with match EQ than with voxengo and my guess is that the amp reacts more natural to a DI than to a sine sweep. but i'm doing it this way:
Di -> normal amp input -> preamp out/speaker out with dummy load (depends on whether you want the poweramp included or not) and than match eq to mic

now someone with better knowledge can correct me^^
 
Matching requires averaging.
Even for sine sweep response impulse can be retrieved by deconvolution (with minimal phase transformation) or by matching i.e. finding average spectrums of both signal, division and transforming result to time domain (with MP-transform).
Some results comparing different approaches (of course matching was performed by my own tool):


Instead of direct matching, I`m retrieve matching impulse, which is more convenient.
 
Last edited by a moderator:
Di -> normal amp input -> preamp out/speaker out with dummy load (depends on whether you want the poweramp included or not) and than match eq to mic

This would've been my second question :D that seems to be perfect for creating powerampless irs.. without the need for a linear transistor poweramp

So is match eq basically a more flexible kind of deconvolution? Beacause (if I understood correctly) both methods seem to "subtract" tone a from tone b, and leave you the difference.
(Sorry if I'm beeing to stupid to understand shit here again..)
 
This would've been my second question :D that seems to be perfect for creating powerampless irs.. without the need for a linear transistor poweramp

that's the point! =D

the cool thing is also that you can take an existent IR which has an imprinted poweramp...run it after your preamp..and then match eq it with a signal from your poweramp..so you can use that IR tone but with your real poweramp instead of the imprinted one.
Match eq is a really handy technique and i still hope for a software that does it with a better resolution than ozone (because 3Hz resolution can still be not enough in the low end) and i miss a feature where you can fix issues in the match eq curve like with free hand editing the curve afterwards if there are some errors.

i found this short explaination: "Convolution of two audio signals is equivalent to filtering the spectrum of one sound by the spectrum of another sound."
So because basically both methods give you the difference of two spectrums i would guess now that ozones match eq also uses convolution as algorithm.
 
Instead of direct matching, I`m retrieve matching impulse, which is more convenient.

I don't really understand what you mean?


Do you favour noise or sinesweeps? I haven't tried noise yet. i find that sweeps sometimes create resonances which probably won't there with a full spectrum source signal.
 
Instead of using Ozone, CurveEQ etc. for matching I`m ising processing with FFT block size larger than samplerate (65536) and directly get minimal phase impulse from transfer function (i.e. spectrums division). Noise requires larger averaging period to get rid of nasty high frequencies peaks. I`m thinks that matching (with proper tools) is more convenient - you can just play something on high gain, record preamp send signal parallel with miced signal and you are ready to make good enougn impulse :)

To summarize differences.
In case os standard sine sweep deconvolution no averaging is used, deconvolution process requires FFT with block size larger or equal to file length.
In case of matching, there is averaging, any FFT block size can be choosed (closer to samplerate can be better).
 
the cool thing is also that you can take an existent IR which has an imprinted poweramp...run it after your preamp..and then match eq it with a signal from your poweramp..so you can use that IR tone but with your real poweramp instead of the imprinted one.
That's a cool idea aswell :)
 
Matching is definitely more convenient. But I'm still looking for a better tool for that purpose. I tried CurveEQ some time ago but it wasn't really accurate.
And you wrote your one program for that? Was it difficult?
 
You can use mathematical packages like SciLab (free, any OS) to do it, it will be easier than program from scratch. SciLab has built in function for Welch analysis (i.e. spectrum averaging), if you are interested, than I`m can provide you with link to my article (but in russian) about it.
I`m also thinking that CurveEQ does not give sufficient precision, so I`m usually using block size of 65536 :)
 
SciLab could be a useful tool also for other things if it makes programming easier. I take a look at it.
If google translate gets along with russian fairly well so that the context is understandable you could post a link :)
 
thank you. the google translation is funny but aweful :D At least i got the overall meaning. You describe there that you use Matlab in the first place but for what SciLab is needed? As alternative to MathLab or does it add new scripts/functions to MahtLab? And does Matlab has some handy functions to do this stuff better than Maple or Mathematica?
So as far as i understand you basically use MathLab for the matching purpose than writing a C/C++ code for a standalone .exe ? I already worked with Maple and FFTs but never thought about using a math program for this although it would be obvious...
 
SciLab free, as Octave, that is, similar functions, minor adjustments. As for Mathematica (I`m also have program in that package), it`s requires implementation of pwelch()/pspect(), so you must write such averaging yourself using basic FFT and linear algebra functions.
Also Matlab/Octave have rceps() function for cepstrum processing, while SciLab requires cepstrum processing using just FFT (like Mathematica). Code in Mathematica closer to C/C++ implementation.