<< Chapter < Page Chapter >> Page >
The swept sine measurement technique is used for measuring impulse responses. It has advantages when measuring weakly nonlinear systemsin that the linear and nonlinear components can be separated to some extent. Free, open-source software is provided in Matlab (orOctave) and Pure Data (PD) for carrying out swept-sine impulse-response measurements using the sound hardware found on atypical personal-computer.

Introduction

Linear system to be measured

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 is the swept-sine measurement technique, described below.

Sine sweep measurement theory

In some cases, it is desirable to relax the power-maximizing constraint | s ( n ) | = 1 n in favor of obtaining some other desirable measurement system properties. For example, we may caremore about the accuracy of the measurement at lower frequencies compared to higher frequencies, so we would like the excitation signal s ( n ) to contain more energy at lower frequencies . We might also be measuring a mechanical or acoustical system in which the motor controlled by s ( n ) behaves weakly nonlinearly. If the nonlinearity is memoryless and is NOT preceded by any filtering, then the system to be measured matches the Hammerstein model shown in . The goal is to measure h ( n ) , independently of the motor nonlinearity f ( s ) . Performing the measurement is complicated by the fact thatsuperposition no longer holds.

Hammerstein Model

Mathematically, the Hammerstein system behaves as follows:

r ( n ) = ( f ( s ) * h ) ( n )

It turns out that we can obtain both of these desirable measurement system properties by using a new excitation signal s ( n ) . This signal is a sine wave with a frequency that is exponentially increasedfrom ω 1 to ω 2 over T seconds :

s ( n ) = sin [ K ( e - n / L f s - 1 ) ]

where K = ω 1 T ln ω 2 ω 1 and L = T ln ω 2 ω 1 . The MATLAB / Octave code generate_sinesweeps.m generates the appropriate sine sweep.

Now we consider how to extract the linearized impulse response from a measurement. In essence, we need to inverse filter the measurement by the excitation signal.

To this end, we realize that a useful property of s ( n ) is that the time delay Δ t N between any sample n 0 and a later point with instantaneous frequency N times larger than the instantaneous frequency at s ( n 0 ) is constant:

Δ t N = T ln ( N ) ln ω 2 ω 1

This characteristic implies that after inverse-filtering the measured response, the signals due to the nonlinear terms in f ( s ) are located at specific places in the final response signal. Consequently, thelinear contribution to the response, which is proportional to h ( n ) can be separated from the other nonlinear terms. We can thus measure a linear system even if it is being driven by a weakly nonlinearmotor.

Because the frequency of s ( n ) increases exponentially, the system is excited for longer periods of time at lower frequencies. This meansthat the inverse filter averages measurements at lower frequencies longer, so this measurement technique is better suited to especiallylow-pass noise sources.

Sine sweep measurement procedure

  • Generate the sine sweeps using generate_sinesweeps.m
  • Open the pd patch sinesweeps.pd in pd.
  • Ensure that the patch is not in editing mode, and check the“compute audio”box in the main pd window.
  • Adjust the“Output Volume”so that when you click on“Record Response To The Sine Sweeps,”the system under test is behaving linearly (i.e. not clipping), but so that the input signal to thesound interface is not too noisy.
  • If there is an input volume on the sound interface, adjust it so that the levels approximately match those shown in when you click on“Record Response To The Sine Sweeps.”If the sound interface has no input volume, then you will need to adjust the“Output Volume”accordingly.
    sinesweeps.pd aftermaking a measurement with an appropriate input level
  • Once you are satisfied with the results, click the“Write Responses to Disk”button.
  • pd will write the file Resp.wavto disk. Rename this file so that the name matches the measurement you just made.For instance, you might rename it to nonlinear2Resp.wav if it corresponded to the second time you measured the transfer function of a weakly nonlinear system.
  • Run sinesweeps_response('nonlinear2,100,0.4') in MATLAB or Octave to analyze the measured response. This means that the inverse filter will be restricted to a dynamicrange of 100 (40 dB), which helps avoid exaggerating problems beneath ω 1 and above ω 2 , where the excitation signal has little energy. 0.4 refers to the length in seconds of thelinear impulse response term to be extracted. Plots will be generated, and the file nonlinear2ImpResp.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