# Example 2

In this example, we compare the measured impedance of a cone with calculations.

```>>> import os
>>> import numpy
>>> import pylab
```

And the wiat package

```>>> import wiat
>>> from wiat.TM import *
```

Load the measured input impedance from a Matlab file. The measurement has been done with a two-microphone transfer function probe.

```>>> f_meas,Z_meas = wiat.Data.load_from_mat(('freqs','z'),
...     wiat.MEASUREMENTDIR + os.sep + '2008-04-19Zshaped_open_cone.mat')
```

Calculate the approximate location of the maxima by interpolation in the data

```>>> maxima_meas = wiat.Data.interpolate_maxima(f_meas,Z_meas)
```

Create the frequency array for the calculations.

```>>> f = numpy.arange(100,4600,1,dtype=float)
>>> T = 25.
```

We can use a dictionary to store the parameters of the cone and pass it to the function

```>>> ConeParameters = {'d0': 0.0125,'de': 0.0631,'L': 0.9652}
```

Define the instrument

```>>> I = Instrument("Open cone", [Cone(**ConeParameters)],
...         UnflangedOpenEnd(ConeParameters['de']))
```

Calculate its input impedance

```>>> Z_cone = CalculateImpedance(I,f,T)
```

Find the exact location of the first 5 maxima

```>>> maxima_cone = CalculateMaxima(Z_cone,I,f,T,number_of_maxima=5)
```

Compare the measured and calculated maxima.

```>>> maxima_comparison = CompareMaxima(maxima_meas, maxima_cone)
>>> print 'f1 [Hz] | f2 [Hz] | Interval [cents] | |Z1| | |Z2| | Ratio [dB]'
f1 [Hz] | f2 [Hz] | Interval [cents] | |Z1| | |Z2| | Ratio [dB]
>>> print '========|=========|==================|======|======|==========='
========|=========|==================|======|======|===========
>>> for c in maxima_comparison:
...     print '%7.2f | %7.2f | %+4.2f            | %4.1f | %4.1f | %+3.1f'%\
...           c[0:6]
143.18 |  142.91 | -3.30            |  7.4 |  8.6 | +1.3
297.82 |  298.27 | +2.60            |  8.5 | 13.7 | +4.1
462.57 |  462.83 | +0.99            |  7.8 | 13.1 | +4.5
631.48 |  632.17 | +1.88            |  7.1 | 11.0 | +3.8
803.48 |  803.99 | +1.10            |  6.5 |  9.0 | +2.9
```

Plot the results

```>>> dummy = pylab.plot(f_meas,numpy.abs(Z_meas),f,numpy.abs(Z_cone))
>>> dummy = pylab.legend(('measured','calculated'))
>>> dummy = pylab.xlabel('Frequency [Hz]')
>>> dummy = pylab.ylabel('Magnitude of the normalized input impedance')
>>> dummy = pylab.title(
...     'Comparison of the measured and calculated input impedance of a cone')
>>> pylab.savefig('example2')
>>> # pylab.show()
```

You should now have a file called example2.png in the same directory.