<< Chapter < Page Chapter >> Page >
A technique using Golay complementary sequences is introduced for measuring impulse responses. Compared to the swept-sine method, it is more robust to additive white noise. Free, open-source software is provided in Matlab (or Octave) and Pure Data (PD) for carrying out impulse-response measurements using the sound hardware found on a typical personal computer.

Introduction

Linear system to be measured

[link] depicts a linear system characterized by an impulse response h ( n ) , driven by an input signal s ( n ) , and producing the output signal r ( n ) . The system identification problem is to estimate h ( n ) given known input/output signals s ( n ) and r ( n ) . A practical method for identifying finite impulse responses uses Golay complementary sequences to excite the linear system as described below. Maximum length sequences may be alternatively used for this type of measurement, as they are also noise signals consisting of 1's and -1's, but perfectly inverse filtering the measurement is more computationally intensive.

Golay complementary sequences

The length L bilevel sequences a ( n ) and b ( n ) are Golay complementary sequences if and only if the following condition holds, where ¤ denotes the autocorrelation operator [link] :

a ( n ) ¤ a ( n ) + b ( n ) ¤ b ( n ) = 2 L δ ( n )

and δ ( n ) is the Kronecker delta function. Many references in the audio signal processing literature refer to such sequences as Golay codes; however, to avoid confusion with Golay error-correcting codes used in digital communication, we call the sequences Golay complementary sequences . Recall that ( [link] ) can also be written using * , the convolution operator:

a ( - n ) * a ( n ) + b ( - n ) * b ( n ) = 2 L δ ( n )

Given that a L ( n ) and b L ( n ) are Golay, it turns out that a 2 L ( n ) = [ a L ( n ) b L ( n ) ] and b 2 L ( n ) = [ a L ( n ) - b L ( n ) ] are also Golay. This means that Golay complementary sequences can be constructed recursively given seedsequences such as a 2 ( n ) = [ 1 1 ] and b 2 ( n ) = [ 1 - 1 ] . See the MATLAB / Octave source code generate_golay.m for details. Notice also that the resulting bilevel sequences consist of only 1's and - 1 's. This means that the signal contains the maximum possible power level given that | s ( n ) | 1 n . This property is helpful for minimizing measurement noise.

Let r a ( n ) = a ( n ) * h ( n ) be the response due to the input a ( n ) , and let r b ( n ) = b ( n ) * h ( n ) be the response due to the input b ( n ) . Due to ( [link] ), the impulse response h ( n ) may be determined as follows:

h ( n ) = 1 2 L ( a ( n ) ¤ r a ( n ) + b ( n ) ¤ r b ( n ) )

See golay_response.m for more details.

Measurement procedure using golay complementary sequences

  1. Generate the Golay complementary sequnces golayA.wav and golayB.wav using generate_golay.m .
  2. Open the pd patch golay.pd , in pd.
  3. Ensure that the patch is not in editing mode, and check the “compute audio” box in the main pdwindow.
  4. Adjust the “Output Volume” so that when you click on “Record Response to Golay A”, the system under test is behaving linearly(i.e. not clipping), but so that the input signal to the sound interface is not too noisy.
  5. If there is an input volume on the sound interface, adjust it so that the levels approximately match those shown in [link] when you click on “Record Response to Golay A” and “Record Response to Golay B.” If the sound interface has no input volume,then you will need to adjust the “Output Volume” accordingly.
    golay.pd aftermaking a measurement with an appropriate input level
  6. Once you are satisfied with the results, click the “Write Responses to Disk” button.
  7. pd will write the files RespA.wavand RespB.wavto disk. Rename these files so that the names match the measurement you just made. For instance, you might renamethem to hpfRespA.wav and hpfRespB.wav if they corresponded to the measurement of a high-pass filter.
  8. Run golay_response('hpf') in MATLAB or Octave to analyze the measured response. Plots will be created, and the file hpfImpResp.wav will be written to disk.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Impulse response measurement toolbox. OpenStax CNX. Jun 23, 2008 Download for free at http://cnx.org/content/col10519/1.5
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Impulse response measurement toolbox' conversation and receive update notifications?

Ask