# Synchronized Swept Sine

Synchronized-Swept-Sine method is a nonlinear system identification method based on “nonlinear convolution” presented by Angelo Farina in AES 108th convention in Paris in 2000. The method can analyze a nonlinear system in the terms of higher order impulse responses using a single swept sine signal with user-defined frequencies and duration. The synchronization of the swept sine, described in [1], allows the phase synchronization of the higher order impulse responses. The higher order impulse responses can be next used, in several ways, to nonlinear modeling and synthesis. The most common way is the estimation of Diagonal Volterra Kernels, that are equivalent to filters of Generalized Hammerstein Model (Parallel Cascaded Hammerstein Model).

[1] Novak, A., Lotton, P., & Simon, L. (2015). *Synchronized swept-sine: Theory, application, and implementation*. Journal of the Audio Engineering Society, 63(10), 786-798.

The synchronized swept-sine is generated using$x(t) = \sin \left[ 2 \pi f_1 L \exp \left( \dfrac{t}{L} \right) \right]$

where

$L = \dfrac{T}{\ln \left( \frac{f_2}{f_1} \right)},$

and where $f_1$ and $f_2$ are initial and final frequency respectively and $T$ is duration of the swept-sine.

The input signal $x(t)$ is then used as an excitation signal of a nonlinear system under test. The output $y(t)$ is acquired and the deconvolution process, to obtain the so-called impulse response $h(t)$ is next performed in the frequency domain as

$h(t) = \mathcal{F}^{-1} \left[ \mathcal{F}[y(t)] \tilde{X}(f)] \right],$

where $\tilde{X}(f)$ is defined as

$\tilde{X}(f) = 2 \sqrt{\frac{f}{L}} \exp \left\{- j 2 \pi f L \left[1-\ln \left(\frac{f}{f_1} \right) \right] + j\frac{\pi}{4} \right\}.$

The impulse response $h(t)$ consist of time-delayed higher harmonic impulse responses $h_m(t)$

$h(t) = \sum_m h_m(t+\Delta_m),$

separated by time delays

$\Delta t_m = L \ln(m).$

The following figure shows an example of the estimation of a nonlinear filter (4th order Generalized Hammrestein System) using the Synchronized Swept Sine. The Matlab and Python codes are available in the Tabs above.

The Matlab code can be downloaded here: Matlab_Synchronized_Swept_Sine.zip

The jupyter notebook can be downloaded here: Python_Synchronized_Swept_Sine.ipynb