信号处理 (cupyx.scipy.signal)#

卷积#

convolve(in1, in2[, mode, method])

对两个 N 维数组进行卷积。

correlate(in1, in2[, mode, method])

对两个 N 维数组进行互相关。

fftconvolve(in1, in2[, mode, axes])

使用 FFT 对两个 N 维数组进行卷积。

oaconvolve(in1, in2[, mode, axes])

使用重叠相加法对两个 N 维数组进行卷积。

convolve2d(in1, in2[, mode, boundary, fillvalue])

对两个 2 维数组进行卷积。

correlate2d(in1, in2[, mode, boundary, ...])

对两个 2 维数组进行互相关。

sepfir2d(input, hrow, hcol)

使用 2-D 可分离 FIR 滤波器进行卷积。

choose_conv_method(in1, in2[, mode])

查找最快的卷积/相关方法。

correlation_lags(in1_len, in2_len[, mode])

计算 1D 互相关的滞后/位移索引数组。

B样条#

gauss_spline(x, n)

n 阶 B 样条基函数的高斯近似。

cspline1d(signal[, lamb])

计算秩-1 数组的三次样条系数。

qspline1d(signal[, lamb])

计算秩-1 数组的二次样条系数。

cspline2d(signal[, lamb, precision])

计算 2-D 三次 (3 阶) B 样条的系数。

qspline2d(signal[, lamb, precision])

计算 2-D 二次 (2 阶) B 样条的系数。

cspline1d_eval(cj, newx[, dx, x0])

在新的点集上评估三次样条。

qspline1d_eval(cj, newx[, dx, x0])

在新的点集上评估二次样条。

spline_filter(Iin[, lmbda])

对秩-2 数组进行平滑样条(三次)滤波。

滤波#

order_filter(a, domain, rank)

对 N-D 数组执行阶滤波器。

medfilt(volume[, kernel_size])

对 N 维数组执行中值滤波。

medfilt2d(input[, kernel_size])

对 2 维数组进行中值滤波。

wiener(im[, mysize, noise])

对 N 维数组执行维纳滤波。

symiirorder1(input, c0, z1[, precision])

使用一阶级联实现具有镜像对称边界条件的平滑 IIR 滤波器。第二部分使用反转序列。这实现了一个具有以下传递函数和镜像对称边界条件的系统::。

symiirorder2(input, r, omega[, precision])

使用二阶级联实现具有镜像对称边界条件的平滑 IIR 滤波器。第二部分使用反转序列。这实现了以下传递函数::。

lfilter(b, a, x[, axis, zi])

使用 IIR 或 FIR 滤波器对一维数据进行滤波。

lfiltic(b, a, y[, x])

给定输入和输出向量,为 lfilter 构建初始条件。

lfilter_zi(b, a)

为 lfilter 的阶跃响应稳态构建初始条件。

filtfilt(b, a, x[, axis, padtype, padlen, ...])

对信号正向和反向应用数字滤波器。

savgol_filter(x, window_length, polyorder[, ...])

对数组应用 Savitzky-Golay 滤波器。

deconvolve(signal, divisor)

使用逆滤波从 signal 中解卷积 divisor

sosfilt(sos, x[, axis, zi])

使用级联二阶截面对一维数据进行滤波。

sosfilt_zi(sos)

为 sosfilt 的阶跃响应稳态构建初始条件。

sosfiltfilt(sos, x[, axis, padtype, padlen])

使用级联二阶截面的前向-后向数字滤波器。

hilbert(x[, N, axis])

使用希尔伯特变换计算解析信号。

hilbert2(x[, N])

计算 x 的“二维”解析信号

decimate(x, q[, n, ftype, axis, zero_phase])

应用抗混叠滤波器后对信号进行降采样。

detrend(data[, axis, type, bp, overwrite_data])

移除数据沿轴的线性趋势。

resample(x, num[, t, axis, window, domain])

使用傅里叶方法沿给定轴将 x 重采样到 num 个样本。

resample_poly(x, up, down[, axis, window, ...])

使用多相滤波沿给定轴对 x 进行重采样。

upfirdn(h, x[, up, down, axis, mode, cval])

上采样、FIR 滤波和下采样。

滤波器设计#

bilinear(b, a[, fs])

使用双线性变换从模拟滤波器返回数字 IIR 滤波器。

bilinear_zpk(z, p, k, fs)

使用双线性变换从模拟滤波器返回数字 IIR 滤波器。

findfreqs(num, den, N[, kind])

findfreqs(num, den, N[, kind])

查找用于计算模拟滤波器响应的频率数组。

freqs(b, a[, worN, plot])

计算模拟滤波器的频率响应。

freqs(b, a[, worN, plot])

freqs_zpk(z, p, k[, worN])

计算数字滤波器的频率响应。

freqz(b[, a, worN, whole, plot, fs, ...])

计算数字滤波器的频率响应。

freqz_zpk(z, p, k[, worN, whole, fs])

计算 ZPK 形式数字滤波器的频率响应。

sosfreqz(sos[, worN, whole, fs])

计算 SOS 格式数字滤波器的频率响应。

firwin(numtaps, cutoff[, width, window, ...])

计算 SOS 格式数字滤波器的频率响应。

使用窗口法设计 FIR 滤波器。

firwin2(numtaps, freq, gain[, nfreqs, ...])

minimum_phase(h[, method, n_fft])

firls(numtaps, bands, desired[, weight, fs])

使用最小二乘误差最小化设计 FIR 滤波器。

minimum_phase(h[, method, n_fft])

将线性相位 FIR 滤波器转换为最小相位。

savgol_coeffs(window_length, polyorder[, ...])

计算一维 Savitzky-Golay FIR 滤波器的系数。

gammatone(freq, ftype[, order, numtaps, fs])

Gammatone 滤波器设计。

group_delay(system[, w, whole, fs])

计算数字滤波器的群延迟。

iirdesign(wp, ws, gpass, gstop[, analog, ...])

完整的 IIR 数字和模拟滤波器设计。

iirfilter(N, Wn[, rp, rs, btype, analog, ...])

给定阶数和临界点的 IIR 数字和模拟滤波器设计。

kaiser_atten(numtaps, width)

计算 Kaiser FIR 滤波器的衰减。

kaiser_beta(a)

计算 Kaiser 参数 beta,给定衰减 a

kaiserord(ripple, width)

确定 Kaiser 窗口方法的滤波器窗口参数。

unique_roots(p[, tol, rtype])

从根列表确定唯一根及其多重性。

residue(b, a[, tol, rtype])

计算 b(s) / a(s) 的部分分式展开。

residuez(b, a[, tol, rtype])

计算 b(z) / a(z) 的部分分式展开。

invres(r, p, k[, tol, rtype])

从部分分式展开计算 b(s) 和 a(s)。

BadCoefficients

关于条件差的滤波器系数的警告

Matlab 风格的 IIR 滤波器设计#

butter(N, Wn[, btype, analog, output, fs])

巴特沃斯数字和模拟滤波器设计。

buttord(wp, ws, gpass, gstop[, analog, fs])

巴特沃斯滤波器阶数选择。

ellip(N, rp, rs, Wn[, btype, analog, output, fs])

椭圆(Cauer)数字和模拟滤波器设计。

ellipord(wp, ws, gpass, gstop[, analog, fs])

椭圆(Cauer)滤波器阶数选择。

cheby1(N, rp, Wn[, btype, analog, output, fs])

切比雪夫 I 型数字和模拟滤波器设计。

cheb1ord(wp, ws, gpass, gstop[, analog, fs])

切比雪夫 I 型滤波器阶数选择。

cheby2(N, rs, Wn[, btype, analog, output, fs])

切比雪夫 II 型数字和模拟滤波器设计。

cheb2ord(wp, ws, gpass, gstop[, analog, fs])

切比雪夫 II 型滤波器阶数选择。

iircomb(w0, Q[, ftype, fs, pass_zero])

设计 IIR 陷波或峰值数字梳状滤波器。

iirnotch(w0, Q[, fs])

设计二阶 IIR 陷波数字滤波器。

iirpeak(w0, Q[, fs])

设计二阶 IIR 峰值(谐振)数字滤波器。

低级滤波器设计函数#

abcd_normalize([A, B, C, D])

检查状态空间矩阵并确保它们是 2-D 的。

band_stop_obj(wp, ind, passb, stopb, gpass, ...)

用于阶数最小化的带阻目标函数。

buttap(N)

返回 N 阶巴特沃斯滤波器模拟原型的 (z,p,k)。

cheb1ap(N, rp)

返回 N 阶切比雪夫 I 型模拟低通滤波器的 (z,p,k)。

cheb1ap(N, rp)

cheb2ap(N, rs)

返回N阶椭圆模拟低通滤波器的(z,p,k)。

ellipap(N, rp, rs)

返回 N 阶椭圆模拟低通滤波器的 (z,p,k)。

lp2bp(b, a[, wo, bw])

返回 N 阶椭圆模拟低通滤波器的 (z,p,k)。

将低通滤波器原型转换为带通滤波器。

lp2bp_zpk(z, p, k[, wo, bw])

lp2bs_zpk(z, p, k[, wo, bw])

lp2bp_zpk(z, p, k[, wo, bw])

lp2bs(b, a[, wo, bw])

将低通滤波器原型转换为带阻滤波器。

lp2bs_zpk(z, p, k[, wo, bw])

将低通滤波器原型转换为带阻滤波器。

lp2lp(b, a[, wo])

lp2hp(b, a[, wo])

将低通滤波器原型转换为高通滤波器。

lp2hp(b, a[, wo])

lp2hp_zpk(z, p, k[, wo])

归一化连续时间传递函数的分子/分母。

lp2lp(b, a[, wo])

将低通滤波器原型转换为不同的频率。

lp2lp_zpk(z, p, k[, wo])

zpk2sos(z, p, k[, pairing, analog])

normalize(b, a)

归一化连续时间传递函数的分子/分母。

LTI 表示#

zpk2tf(z, p, k)

从零点和极点返回多项式传递函数表示。

tf2sos(b, a[, pairing, analog])

从传递函数表示返回二阶分段

tf2ss(num, den)

传递函数到状态空间表示。

ss2tf(A, B, C, D[, input])

状态空间到传递函数。

ss2zpk(A, B, C, D[, input])

状态空间表示到零点-极点-增益表示。

sos2tf(sos)

从一系列二阶分段返回单个传递函数

sos2zpk(sos)

返回一系列二阶分段的零点、极点和增益

cont2discrete(system, dt[, method, alpha])

将连续状态空间系统转换为离散状态空间系统。

place_poles(A, B, poles[, method, rtol, maxiter])

计算K,使得特征值(A - dot(B, K))=极点。

连续时间线性系统#

lti(*system)

连续时间线性时不变系统基类。

StateSpace(*system, **kwargs)

状态空间形式的线性时不变系统。

TransferFunction(*system, **kwargs)

传递函数形式的线性时不变系统类。

ZerosPolesGain(*system, **kwargs)

零点、极点、增益形式的线性时不变系统类。

lsim(system, U, T[, X0, interp])

模拟连续时间线性系统的输出。

impulse(system[, X0, T, N])

连续时间系统的冲激响应。

step(system[, X0, T, N])

连续时间系统的阶跃响应。

freqresp(system[, w, n])

计算连续时间系统的频率响应。

bode(system[, w, n])

计算连续时间系统的伯德图幅度和相位数据。

离散时间线性系统#

dlti(*system, **kwargs)

离散时间线性时不变系统基类。

StateSpace(*system, **kwargs)

状态空间形式的线性时不变系统。

TransferFunction(*system, **kwargs)

传递函数形式的线性时不变系统类。

ZerosPolesGain(*system, **kwargs)

零点、极点、增益形式的线性时不变系统类。

dlsim(system, u[, t, x0])

模拟离散时间线性系统的输出。

dimpulse(system[, x0, t, n])

离散时间系统的冲激响应。

dstep(system[, x0, t, n])

离散时间系统的阶跃响应。

dfreqresp(system[, w, n, whole])

计算离散时间系统的频率响应。

dbode(system[, w, n])

计算离散时间系统的伯德图幅度和相位数据。

波形#

chirp(t, f0, t1, f1[, method, phi, vertex_zero])

频率扫描余弦发生器。

gausspulse(t[, fc, bw, bwr, tpr, retquad, ...])

返回高斯调制正弦信号

max_len_seq(nbits[, state, length, taps])

最大长度序列 (MLS) 发生器。

sawtooth(t[, width])

返回周期锯齿波或三角波形。

square(t[, duty])

返回周期方波波形。

unit_impulse(shape[, idx, dtype])

单位冲激信号 (离散狄拉克函数) 或单位基向量。

窗口函数#

关于窗口函数,请参阅 cupyx.scipy.signal.windows 命名空间。

cupyx.scipy.signal 命名空间中,有一个方便函数可以通过名称获取这些窗口

get_window(window, Nx[, fftbins])

返回给定长度和类型的窗口。

小波#

morlet(M[, w, s, complete])

复 Morlet 小波。

qmf(hk)

从低通滤波器返回高通 QMF 滤波器

ricker(points, a)

返回 Ricker 小波,也称为“墨西哥帽小波”。

morlet2(M, s[, w])

复 Morlet 小波,设计用于 cwt。返回 Morlet 小波的完整版本,并根据 s 进行归一化。

cwt(data, wavelet, widths)

连续小波变换。

峰值查找#

argrelmin(data[, axis, order, mode])

计算 data 的相对最小值。

argrelmax(data[, axis, order, mode])

计算 data 的相对最大值。

argrelextrema(data, comparator[, axis, ...])

计算 data 的相对极值。

find_peaks(x[, height, threshold, distance, ...])

根据峰值属性查找信号中的峰值。

peak_prominences(x, peaks[, wlen])

计算信号中每个峰值的显著性。

peak_widths(x, peaks[, rel_height, ...])

计算信号中每个峰值的宽度。

谱分析#

periodogram(x[, fs, window, nfft, detrend, ...])

使用周期图估计功率谱密度。

welch(x[, fs, window, nperseg, noverlap, ...])

使用 Welch 方法估计功率谱密度。

csd(x, y[, fs, window, nperseg, noverlap, ...])

使用 Welch 方法估计互功率谱密度 Pxy。

coherence(x, y[, fs, window, nperseg, ...])

使用 Welch 方法估计离散时间信号 X 和 Y 的幅度平方相干性估计 Cxy。

spectrogram(x[, fs, window, nperseg, ...])

使用连续傅里叶变换计算频谱图。

lombscargle(x, y, freqs)

计算 Lomb-Scargle 周期图。

vectorstrength(events, period)

确定与给定周期对应的事件的矢量强度。

stft(x[, fs, window, nperseg, noverlap, ...])

计算短时傅里叶变换 (STFT)。

istft(Zxx[, fs, window, nperseg, noverlap, ...])

执行逆短时傅里叶变换 (iSTFT)。

check_COLA(window, nperseg, noverlap[, tol])

检查是否满足恒定重叠相加 (COLA) 约束。

check_NOLA(window, nperseg, noverlap[, tol])

检查是否满足非零重叠相加 (NOLA) 约束。

Chirp Z 变换和 Zoom FFT#

czt(x[, m, w, a, axis])

计算 Z 平面中螺旋线周围的频率响应。

zoom_fft(x, fn[, m, fs, endpoint, axis])

仅计算 x 在频率范围 fn 内的 DFT。

CZT(n[, m, w, a])

创建一个可调用的 chirp z 变换函数。

ZoomFFT(n, fn[, m, fs, endpoint])

创建一个可调用的 zoom FFT 变换函数。

czt_points(m[, w, a])

返回 chirp z 变换的计算点。