使用指数扫频正弦信号,信号生成方法如下:
其中:
,
是扫频信号的起始频率和结束频率
是扫频信号的时长
是扫频率
逆信号是通过缩放时间翻转的信号计算,计算方法如下:
其中
信号的脉冲响应
扫频信号、逆信号、IR,以及频谱如下图:


参考程序如下
if __name__ == "__main__":# Sweep Parametersf1 = 10f2 = 100T = 3fs = 1000t = np.arange(0, T*fs)/fsR = np.log(f2/f1)# ESS generationx = np.sin((2*np.pi*f1*T/R)*(np.exp(t*R/T)-1))# Inverse filterk = np.exp(t*R/T)f = x[::-1]/k# Impulse responseir = sig.fftconvolve(x, f, mode='same')# Get spectra of all signalsfreq, Xdb = dbfft(x, fs)freq, Fdb = dbfft(f, fs)freq, IRdb = dbfft(ir, fs)plt.figure()plt.subplot(3,1,1)plt.grid()plt.plot(t, x)plt.title('ESS')plt.subplot(3,1,2)plt.grid()plt.plot(t, f)plt.title('Inverse filter')plt.subplot(3,1,3)plt.grid()plt.plot(t, ir)plt.title('Impulse response')plt.show()
参考文献:
Q. Meng - Impulse Response Measurement with Sine Sweeps and Amplitude Modulation Schemes
A. Novak - Nonlinear System Identification Using Exponential Swept-Sine Signal
K. Vetter - ExpoChirpToolbox - a Pure Data implementation of ESS impulse response measurement

















