用法:
cusignal.convolution.convolve.convolve(in1, in2, mode='full', method='auto')
卷積兩個 N 維數組。
卷積
in1
和in2
,輸出大小由mode
參數確定。- in1:array_like
第一個輸入。
- in2:array_like
第二輸入。應該具有與
in1
相同的維度數。- mode:str {‘full’, ‘valid’, ‘same’},可選
指示輸出大小的字符串:
full
輸出是輸入的完全離散線性卷積。 (默認)
valid
輸出僅包含那些不依賴零填充的元素。在‘valid’ 模式中,
in1
或in2
在每個維度上必須至少與另一個一樣大。same
輸出與
in1
大小相同,以 ‘full’ 輸出為中心。
- method:str {‘auto’, ‘direct’, ‘fft’},可選
一個字符串,指示使用哪種方法來計算卷積。
direct
卷積直接從總和確定,即卷積的定義。
fft
傅裏葉變換用於通過調用
fftconvolve
來執行卷積。auto
根據更快的估計自動選擇直接或傅立葉方法(默認)。
- convolve:數組
一個 N 維數組,包含
in1
與in2
的離散線性卷積的子集。
參數:
返回:
注意:
默認情況下,
convolve
和correlate
使用method='auto'
,它調用choose_conv_method
以使用預先計算的值選擇最快的方法(choose_conv_method
也可以使用關鍵字參數測量 real-world 時序)。因為fftconvolve
依賴於浮點數,所以有一些約束可能會強製執行method=direct
(在choose_conv_method
文檔字符串中有更多詳細信息)。例子:
使用 Hann 窗平滑方脈衝:
>>> import cusignal >>> import cupy as cp >>> sig = cp.repeat(cp.asarray([0., 1., 0.]), 100) >>> win = cusignal.hann(50) >>> filtered = cusignal.convolve(sig, win, mode='same') / cp.sum(win)
>>> import matplotlib.pyplot as plt >>> fig, (ax_orig, ax_win, ax_filt) = plt.subplots(3, 1, sharex=True) >>> ax_orig.plot(cp.asnumpy(sig)) >>> ax_orig.set_title('Original pulse') >>> ax_orig.margins(0, 0.1) >>> ax_win.plot(cp.asnumpy(win)) >>> ax_win.set_title('Filter impulse response') >>> ax_win.margins(0, 0.1) >>> ax_filt.plot(cp.asnumpy(filtered)) >>> ax_filt.set_title('Filtered signal') >>> ax_filt.margins(0, 0.1) >>> fig.tight_layout() >>> fig.show()
相關用法
- Python cusignal.convolution.convolve.convolve2d用法及代碼示例
- Python cusignal.convolution.convolve.convolve1d3o用法及代碼示例
- Python cusignal.convolution.convolve.convolve1d2o用法及代碼示例
- Python cusignal.convolution.convolve.choose_conv_method用法及代碼示例
- Python cusignal.convolution.convolve.fftconvolve用法及代碼示例
- Python cusignal.convolution.correlate.correlate用法及代碼示例
- Python cusignal.windows.windows.hann用法及代碼示例
- Python cusignal.windows.windows.general_gaussian用法及代碼示例
- Python cusignal.waveforms.waveforms.chirp用法及代碼示例
- Python cusignal.windows.windows.gaussian用法及代碼示例
- Python cusignal.windows.windows.hamming用法及代碼示例
- Python cusignal.windows.windows.get_window用法及代碼示例
- Python cusignal.waveforms.waveforms.gausspulse用法及代碼示例
- Python cusignal.peak_finding.peak_finding.argrelmin用法及代碼示例
- Python cusignal.windows.windows.bartlett用法及代碼示例
- Python cusignal.spectral_analysis.spectral.welch用法及代碼示例
- Python cusignal.windows.windows.chebwin用法及代碼示例
- Python cusignal.windows.windows.general_cosine用法及代碼示例
- Python cusignal.peak_finding.peak_finding.argrelextrema用法及代碼示例
- Python cusignal.filtering.resample.resample_poly用法及代碼示例
注:本文由純淨天空篩選整理自rapids.ai大神的英文原創作品 cusignal.convolution.convolve.convolve。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。