Minimum Phase Filters in MATLAB

Post navigation

To find the the transfer function (1/H) that cancels out the effects of the bridge-actuator system on the violin (H), one needs to obtain the inverse filter and convolve the filter’s unit sample response with the input waveform. However, one needs to know both amplitude response and phase response to generate the unit sample response of the inverse filter. The amplitude of the inverse is known 1/H and easy to obtain, but this new function 1/H has a phase we know nothing about!

Electrical engineers thus usually assume “linear phase” when finding the inverse. However, my advisor Prof. Roman Kuc published a paper in 1983 that demonstrated the use of a “minimum phase filter”. By applying the conditions of a minimum phase filter and a Hilbert Transform, one can “reconstruct” the phase of a function given only its amplitude. That’s crazy! It’s like saying I can give you the imaginary component of a complex number if you give me its real part.

The minimum phase filter only works in certain conditions – in the case of Prof Kuc’s paper, a low pass filter with linear attenuation in the log scale. We are testing to see if how valid this approach may be for the surrogate soundboard system.

Here are some preliminary results – these are signals captured using a piezo transducer on the bridge-body interface of the surrogate sound system. The chirp of 100-10000Hz in 1 second is applied to the system and the piezo measures the vibrations after the chirp has gone through the actuator and surrogate bridge.

I then apply the inverse filter using code I wrote in MATLAB, which boosts the higher frequencies that have been dampened by the surrogate system. The boosting coefficients differ for the linear phase approach and the minimum phase approach. Curiously, some of the frequencies in the minimum phase filter drop to 0, indicating some kind of odd behavior in the integral of the Hilbert Transform.