當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。