本文简要介绍 python 语言中 scipy.signal.oaconvolve
的用法。
用法:
scipy.signal.oaconvolve(in1, in2, mode='full', axes=None)#
使用 overlap-add 方法对两个 N 维数组进行卷积。
使用 overlap-add 方法对 in1 和 in2 进行卷积,输出大小由 mode 参数确定。
对于大型数组 (n > ~500),这通常比
convolve
快得多,当一个数组比另一个数组大得多时,通常比fftconvolve
快得多,但当只需要几个输出值或当数组的形状非常相似,并且只能输出浮点数组(int 或对象数组输入将被强制转换为浮点数)。- in1: array_like
第一个输入。
- in2: array_like
第二输入。应该具有与 in1 相同的维数。
- mode: str {‘full’, ‘valid’, ‘same’},可选
指示输出大小的字符串:
full
输出是输入的完全离散线性卷积。 (默认)
valid
输出仅包含那些不依赖零填充的元素。在 ‘valid’ 模式中,in1 或 in2 在每个维度上都必须至少与另一个一样大。
same
输出与 in1 大小相同,以 ‘full’ 输出为中心。
- axes: int 或 数组 of ints 或 None,可选
计算卷积的轴。默认值是在所有轴上。
- out: 数组
一个 N 维数组,包含 in1 与 in2 的离散线性卷积的子集。
参数 ::
返回 ::
注意:
参考:
[1]维基百科,“Overlap-add_method”。 https://en.wikipedia.org/wiki/Overlap-add_method
[2]理查德·G·里昂。了解数字信号处理,第三版,2011 年。第 13.10 章。国际标准书号 13:978-0137-02741-5
例子:
将 100,000 个样本信号与 512 个样本滤波器进行卷积。
>>> import numpy as np >>> from scipy import signal >>> rng = np.random.default_rng() >>> sig = rng.standard_normal(100000) >>> filt = signal.firwin(512, 0.01) >>> fsig = signal.oaconvolve(sig, filt)
>>> import matplotlib.pyplot as plt >>> fig, (ax_orig, ax_mag) = plt.subplots(2, 1) >>> ax_orig.plot(sig) >>> ax_orig.set_title('White noise') >>> ax_mag.plot(fsig) >>> ax_mag.set_title('Filtered noise') >>> fig.tight_layout() >>> fig.show()
相关用法
- Python SciPy signal.order_filter用法及代码示例
- Python SciPy signal.czt_points用法及代码示例
- Python SciPy signal.chirp用法及代码示例
- Python SciPy signal.residue用法及代码示例
- Python SciPy signal.iirdesign用法及代码示例
- Python SciPy signal.max_len_seq用法及代码示例
- Python SciPy signal.kaiser_atten用法及代码示例
- Python SciPy signal.hilbert用法及代码示例
- Python SciPy signal.ricker用法及代码示例
- Python SciPy signal.group_delay用法及代码示例
- Python SciPy signal.cheb2ord用法及代码示例
- Python SciPy signal.get_window用法及代码示例
- Python SciPy signal.lfilter用法及代码示例
- Python SciPy signal.morlet用法及代码示例
- Python SciPy signal.coherence用法及代码示例
- Python SciPy signal.dfreqresp用法及代码示例
- Python SciPy signal.TransferFunction用法及代码示例
- Python SciPy signal.dbode用法及代码示例
- Python SciPy signal.residuez用法及代码示例
- Python SciPy signal.bilinear_zpk用法及代码示例
- Python SciPy signal.firls用法及代码示例
- Python SciPy signal.impulse用法及代码示例
- Python SciPy signal.buttord用法及代码示例
- Python SciPy signal.find_peaks用法及代码示例
- Python SciPy signal.freqs用法及代码示例
注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.signal.oaconvolve。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。