Обработка сигналов (scipy.signal)#

Свёртка#

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

Свёртка двух N-мерных массивов.

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

Вычислить взаимную корреляцию двух N-мерных массивов.

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

Свёртка двух N-мерных массивов с использованием БПФ.

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

Свернуть два N-мерных массива с использованием метода перекрытия с накоплением.

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

Свёртка двух двумерных массивов.

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

Взаимная корреляция двух двумерных массивов.

sepfir2d(input, hrow, hcol)

Свертка с 2-D разделимым КИХ-фильтром.

choose_conv_method(in1, in2[, mode, measure])

Найти самый быстрый метод свертки/корреляции.

correlation_lags(in1_len, in2_len[, mode])

Вычисляет массив индексов задержки/смещения для 1D взаимной корреляции.

B-сплайны#

gauss_spline(x, n)

Гауссова аппроксимация базисной функции B-сплайна порядка n.

cspline1d(signal[, lamb])

Вычислить коэффициенты кубического сплайна для массива ранга 1.

qspline1d(signal[, lamb])

Вычислить коэффициенты квадратичного сплайна для массива ранга 1.

cspline2d(signal[, lamb, precision])

Коэффициенты для двумерного кубического (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-мерном массиве.

medfilt(объём[, размер_ядра])

Выполните медианную фильтрацию на N-мерном массиве.

medfilt2d(input[, kernel_size])

Медианная фильтрация двумерного массива.

wiener(im[, mysize, noise])

Выполнить фильтр Винера на N-мерном массиве.

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

Реализовать сглаживающий IIR-фильтр с зеркально-симметричными граничными условиями, используя каскад секций первого порядка.

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

Реализуйте сглаживающий БИХ-фильтр с зеркально-симметричными граничными условиями с использованием каскада звеньев второго порядка.

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

Filter data along one-dimension with an IIR or FIR filter.

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

Создает начальные условия для lfilter по заданным входным и выходным векторам.

lfilter_zi(b, a)

Построить начальные условия для lfilter для установившегося состояния переходной характеристики.

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

Применение цифрового фильтра вперед и назад к сигналу.

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

Применить фильтр Савицкого-Голея к массиву.

deconvolve(signal, divisor)

Деконволюция divisor из signal используя обратную фильтрацию.

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

Фильтрация данных вдоль одного измерения с использованием каскадных секций второго порядка.

sosfilt_zi(sos)

Построение начальных условий для sosfilt для установившегося состояния переходной характеристики.

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

Прямо-обратный цифровой фильтр с использованием каскадных секций второго порядка.

hilbert(x[, N, axis])

FFT-вычисление аналитического сигнала.

hilbert2(x[, N])

Вычислить '2-D' аналитический сигнал x

envelope(z[, bp_in, n_out, squared, ...])

Вычисление огибающей вещественного или комплексного сигнала.

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

Понизить частоту дискретизации сигнала после применения антиалиасингового фильтра.

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

Удалить линейный или постоянный тренд вдоль оси из данных.

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

Resample x to число выборки с использованием метода Фурье вдоль заданной ось.

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

Resample x вдоль заданной оси с использованием полифазной фильтрации.

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

Повысить частоту дискретизации, применить КИХ-фильтр и понизить частоту дискретизации.

Проектирование фильтров#

bilinear(b, a[, fs])

Вычислите цифровой БИХ-фильтр из аналоговой передаточной функции, используя билинейное преобразование.

bilinear_zpk(z, p, k, fs)

Вернуть цифровой IIR-фильтр из аналогового с использованием билинейного преобразования.

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

Найти массив частот для вычисления отклика аналогового фильтра.

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

Проектирование КИХ-фильтров с использованием минимизации среднеквадратичной ошибки.

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

Проектирование КИХ-фильтров с использованием оконного метода.

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

Проектирование КИХ-фильтров с использованием оконного метода.

firwin_2d(hsize, window, *[, fc, fs, ...])

Проектирование 2D КИХ-фильтров с использованием оконного метода.

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

Вычислить частотную характеристику аналогового фильтра.

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

Вычислить частотную характеристику аналогового фильтра.

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

Вычислить частотную характеристику цифрового фильтра.

sosfreqz(*args, **kwargs)

Вычислить частотную характеристику цифрового фильтра в формате SOS (устаревший).

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

Вычислите частотную характеристику цифрового фильтра в формате SOS.

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

Вычислите частотную характеристику цифрового фильтра в форме ZPK.

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

Проектирование гамматоновых фильтров.

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

Вычисление групповой задержки цифрового фильтра.

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

Полное проектирование цифровых и аналоговых фильтров IIR.

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

Проектирование цифровых и аналоговых фильтров БИХ по порядку и критическим точкам.

kaiser_atten(numtaps, width)

Вычислить затухание фильтра Кайзера FIR.

kaiser_beta(a)

Вычислить параметр Кайзера beta, учитывая затухание a.

kaiserord(пульсация, ширина)

Определить параметры окна фильтра для метода окна Кайзера.

minimum_phase(h[, method, n_fft, half])

Преобразование линейно-фазового FIR-фильтра в минимально-фазовый

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

Вычислите коэффициенты для 1-D фильтра Савицкого-Голея.

remez(numtaps, bands, desired, *[, weight, ...])

Вычислить минимаксный оптимальный фильтр с использованием алгоритма обмена Ремеза.

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) из разложения на простейшие дроби.

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

Вычислить b(z) и a(z) из разложения на простейшие дроби.

BadCoefficients

Предупреждение о плохо обусловленных коэффициентах фильтра

Функции проектирования фильтров нижнего уровня:

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

Проверить матрицы пространства состояний и убедиться, что они 2-D.

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

Целевая функция полосового заграждения для минимизации порядка.

besselap(N[, norm])

Возвращает (z,p,k) для аналогового прототипа фильтра Бесселя N-го порядка.

buttap(N)

Возвращает (z,p,k) для аналогового прототипа фильтра Баттерворта N-го порядка.

cheb1ap(N, rp)

Возвращает (z,p,k) для аналогового фильтра нижних частот Чебышёва типа I N-го порядка.

cheb2ap(N, rs)

Вернуть (z,p,k) для аналогового фильтра нижних частот Чебышёва типа II N-го порядка.

ellipap(N, rp, rs)

Возвращает (z,p,k) эллиптического аналогового фильтра низких частот N-го порядка.

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

Преобразовать прототип фильтра нижних частот в полосовой фильтр.

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

Преобразовать прототип фильтра нижних частот в полосовой фильтр.

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

Преобразовать прототип фильтра нижних частот в полосно-заграждающий фильтр.

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

Преобразовать прототип фильтра нижних частот в полосно-заграждающий фильтр.

lp2hp(b, a[, wo])

Преобразовать прототип фильтра нижних частот в фильтр верхних частот.

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

Преобразовать прототип фильтра нижних частот в фильтр верхних частот.

lp2lp(b, a[, wo])

Преобразовать прототип фильтра нижних частот в другую частоту.

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

Преобразовать прототип фильтра нижних частот в другую частоту.

normalize(b, a)

Нормализовать числитель/знаменатель передаточной функции непрерывного времени.

Проектирование фильтров БИХ в стиле Matlab#

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

Проектирование цифровых и аналоговых фильтров Баттерворта.

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

Выбор порядка фильтра Баттерворта.

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.

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

Эллиптический (Кауэра) цифровой и аналоговый проектирование фильтров.

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

Выбор порядка эллиптического (Кауэра) фильтра.

bessel(N, Wn[, btype, analog, output, norm, fs])

Проектирование цифровых и аналоговых фильтров Бесселя/Томсона.

iirnotch(w0, Q[, fs])

Спроектировать цифровой фильтр-пробку второго порядка.

iirpeak(w0, Q[, fs])

Спроектировать цифровой фильтр второго порядка с пиком (резонансный).

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

Спроектировать IIR гребенчатый фильтр с подавлением или усилением.

Линейные системы непрерывного времени#

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])

Вычислить данные амплитуды и фазы Боде для дискретной системы.

Представления LTI#

tf2zpk(b, a)

Возвращает представление нулей, полюсов, коэффициента усиления (z, p, k) из представления числителя и знаменателя линейного фильтра.

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

Возврат секций второго порядка из представления передаточной функции

tf2ss(num, den)

Преобразование передаточной функции в представление в пространстве состояний.

zpk2tf(z, p, k)

Вернуть представление передаточной функции полинома из нулей и полюсов

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

Возвращает секции второго порядка из нулей, полюсов и коэффициента усиления системы

zpk2ss(z, p, k)

Преобразование представления нулей-полюсов-усиления в представление пространства состояний

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

Пространство состояний в передаточную функцию.

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

Представление в пространстве состояний в представление нулей-полюсов-усиления.

sos2zpk(sos)

Вернуть нули, полюсы и коэффициент усиления ряда секций второго порядка

sos2tf(sos)

Возвращает единую передаточную функцию из ряда звеньев второго порядка

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

Преобразование непрерывной системы в дискретную систему пространства состояний.

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

Вычислить K так, чтобы собственные значения (A - dot(B, K))=полюсам.

Волновые формы#

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

Генератор косинуса с изменяющейся частотой.

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

Возвращает синусоиду, модулированную по Гауссу:

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

Генератор максимальной длины последовательности (MLS).

sawtooth(t[, width])

Вернуть периодическую пилообразную или треугольную волну.

square(t[, duty])

Вернуть периодическую прямоугольную волну.

sweep_poly(t, poly[, phi])

Генератор косинуса с изменяющейся частотой, зависящей от времени.

unit_impulse(shape[, idx, dtype])

Единичный импульсный сигнал (дискретная дельта-функция) или единичный базисный вектор.

Оконные функции#

Для оконных функций см. scipy.signal.windows пространство имён.

В scipy.signal namespace, существует удобная функция для получения этих окон по имени:

get_window(window, Nx[, fftbins, xp, device])

Возвращает окно заданной длины и типа.

Поиск пиков#

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

Вычислить относительные минимумы данные.

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

Вычислите относительные максимумы данные.

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

Вычислить относительные экстремумы данные.

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

Найти пики внутри сигнала на основе свойств пиков.

find_peaks_cwt(vector, widths[, wavelet, ...])

Найти пики в одномерном массиве с помощью вейвлет-преобразования.

peak_prominences(x, peaks[, wlen])

Вычислить значимость каждого пика в сигнале.

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

Вычислить ширину каждого пика в сигнале.

Спектральный анализ#

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

Оцените спектральную плотность мощности с использованием периодограммы.

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

Оценить спектральную плотность мощности, используя метод Уэлча.

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

Оценить взаимную спектральную плотность мощности, Pxy, методом Уэлча.

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

Оценить оценку квадрата величины когерентности, Cxy, дискретно-временных сигналов X и Y, используя метод Уэлча.

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

Вычислить спектрограмму с последовательными преобразованиями Фурье (устаревшая функция).

lombscargle(x, y, freqs[, precenter, ...])

Вычислить обобщенный периодограмму Ломба-Скаргла.

vectorstrength(события, период)

Определить векторную силу событий, соответствующих заданному периоду.

ShortTimeFFT(win, hop, fs, *[, fft_mode, ...])

Предоставить параметризованное дискретное коротковременное преобразование Фурье (stft) и его обратное (istft).

closest_STFT_dual_window(win, hop[, ...])

Вычислить двойное окно STFT для заданного окна, наиболее близкое к желаемому двойному окну.

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

Вычислите кратковременное преобразование Фурье (устаревшая функция).

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

Выполнить обратное кратковременное преобразование Фурье (устаревшая функция).

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

Проверить, выполняется ли ограничение Constant OverLap Add (COLA) (устаревшая функция).

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

Проверить, выполняется ли ограничение Nonzero Overlap Add (NOLA).

Z-преобразование чирпа и Zoom FFT#

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

Вычислить частотную характеристику вокруг спирали в Z-плоскости.

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

Вычислить ДПФ от x только для частот в диапазоне fn.

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

Создать вызываемую функцию z-преобразования чирпа.

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

Создать вызываемую функцию преобразования зумированного БПФ.

czt_points(m[, w, a])

Вернуть точки, в которых вычисляется z-преобразование чирпа.

Функции проще в использовании, чем классы, но менее эффективны при многократном применении одного и того же преобразования к массивам одинаковой длины, поскольку они каждый раз генерируют один и тот же чирп-сигнал. В таких случаях используйте классы для создания переиспользуемой функции.