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


Python SciPy signal.unit_impulse用法及代碼示例


本文簡要介紹 python 語言中 scipy.signal.unit_impulse 的用法。

用法:

scipy.signal.unit_impulse(shape, idx=None, dtype=<class 'float'>)#

單位脈衝信號(離散增量函數)或單位基向量。

參數

shape int 或 int 的元組

輸出中的樣本數 (1-D),或表示輸出形狀的元組 (N-D)。

idx 無或int或int或‘mid’的元組,可選

值為 1 的索引。如果為 None,則默認為第 0 個元素。如果idx='mid', 衝量將集中在shape // 2在所有維度。如果是 int,則衝動將在編號在所有維度。

dtype 數據類型,可選

數組所需的數據類型,例如 numpy.int8 。默認為 numpy.float64

返回

y ndarray

包含脈衝信號的輸出數組。

注意

一維情況也稱為克羅內克三角洲。

例子

第 0 個元素( )的脈衝:

>>> from scipy import signal
>>> signal.unit_impulse(8)
array([ 1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.])

脈衝偏移 2 個樣本( ):

>>> signal.unit_impulse(7, 2)
array([ 0.,  0.,  1.,  0.,  0.,  0.,  0.])

二維脈衝,居中:

>>> signal.unit_impulse((3, 3), 'mid')
array([[ 0.,  0.,  0.],
       [ 0.,  1.,  0.],
       [ 0.,  0.,  0.]])

脈衝在 (2, 2),使用廣播:

>>> signal.unit_impulse((4, 4), 2)
array([[ 0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.],
       [ 0.,  0.,  1.,  0.],
       [ 0.,  0.,  0.,  0.]])

繪製 4th-order Butterworth 低通濾波器的脈衝響應:

>>> imp = signal.unit_impulse(100, 'mid')
>>> b, a = signal.butter(4, 0.2)
>>> response = signal.lfilter(b, a, imp)
>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> plt.plot(np.arange(-50, 50), imp)
>>> plt.plot(np.arange(-50, 50), response)
>>> plt.margins(0.1, 0.1)
>>> plt.xlabel('Time [samples]')
>>> plt.ylabel('Amplitude')
>>> plt.grid(True)
>>> plt.show()
scipy-signal-unit_impulse-1.png

相關用法


注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.signal.unit_impulse。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。