了解一下chirp,扫频信号的生成
chirp信号作为测试激励信号,用处很多,搜索了一下也有很多成熟的应用,如matlab和python都能生成,可以从scipy-chirp
获取示例代码自己来生成chirp。如果深究内在原理,可以参考sinusoidal sweep正弦扫频信号博文的介绍,但该文生成的是指数级的扫频,其频谱曲线如下图:
为此,编写线性生成扫频,结合起来更加方便,贴在下面供需要的参考一下;
def linear_chirp(fmin=minimum_frequency, fmax=maximum_frequency, sr=sample_rate, duration=duration, peak=0.7):
delta_pi = np.pi/sr
points = duration * sr
delta_fr=(fmax-fmin)/points
samples = np.zeros(points)
for i in range(points):
samples[i] = (peak * np.sin(delta_pi * (fmin+delta_fr*i) * i)) # 将每个采样点的幅度值存入数组
return samples
生成的频域扫频如下图: