当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python cusignal.waveforms.waveforms.chirp用法及代码示例


用法:

cusignal.waveforms.waveforms.chirp(t, f0, t1, f1, method='linear', phi=0, vertex_zero=True)

Frequency-swept 余弦发生器。

在下文中,“Hz”应解释为“每单位的周期数”;这里没有要求单位是一秒。重要的区别是旋转单位是周期,而不是弧度。同样,t 可以是空间而不是时间的度量。

参数

tarray_like

评估波形的时间。

f0浮点数

时间 t=0 时的频率(例如 Hz)。

t1浮点数

指定f1 的时间。

f1浮点数

时间 t1 时波形的频率(例如 Hz)。

method{‘linear’, ‘quadratic’, ‘logarithmic’, ‘hyperbolic’},可选

一种频率扫描。如果未给出,则假定为 linear。有关详细信息,请参阅下面的注释。

phi浮点数,可选

相位偏移,以度为单位。默认值为 0。

vertex_zero布尔型,可选

此参数仅在method 为‘quadratic’ 时使用。它确定作为频率图的抛物线的顶点是在t=0还是t=t1。

返回

yndarray

一个 numpy 数组,其中包含在 t 以请求的 time-varying 频率评估的信号。更准确地说,该函数返回 cos(phase + (pi/180)*phi) 其中 phase2*pi*f(t) 的积分(从 0 到 t )。 f(t) 定义如下。

例子

示例中将使用以下内容:

>>> from cusignal import chirp, spectrogram
>>> import matplotlib.pyplot as plt
>>> import cupy as cp

对于第一个示例,我们将绘制 10 秒内从 6 Hz 到 1 Hz 的线性啁啾的波形:

>>> t = cp.linspace(0, 10, 5001)
>>> w = chirp(t, f0=6, f1=1, t1=10, method='linear')
>>> plt.plot(cp.asnumpy(t), cp.asnumpy(w))
>>> plt.title("Linear Chirp, f(0)=6, f(10)=1")
>>> plt.xlabel('t (sec)')
>>> plt.show()

对于其余示例,我们将使用更高的频率范围,并使用 cusignal.spectrogram 演示结果。我们将使用以 8000 Hz 采样的 10 秒间隔。

>>> fs = 8000
>>> T = 10
>>> t = cp.linspace(0, T, T*fs, endpoint=False)

10 秒内从 1500 Hz 到 250 Hz 的二次啁啾(频率抛物线的顶点在 t=0):

>>> w = chirp(t, f0=1500, f1=250, t1=10, method='quadratic')
>>> ff, tt, Sxx = spectrogram(w, fs=fs, noverlap=256, nperseg=512,
...                           nfft=2048)
>>> plt.pcolormesh(cp.asnumpy(tt), cp.asnumpy(ff[:513]),
                   cp.asnumpy(Sxx[:513]), cmap='gray_r')
>>> plt.title('Quadratic Chirp, f(0)=1500, f(10)=250')
>>> plt.xlabel('t (sec)')
>>> plt.ylabel('Frequency (Hz)')
>>> plt.grid()
>>> plt.show()

相关用法


注:本文由纯净天空筛选整理自rapids.ai大神的英文原创作品 cusignal.waveforms.waveforms.chirp。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。