Spec-Zone.ru › Octave 8

31 Обработка сигналов

В этом разделе описаны функции обработки сигналов и быстрого преобразования Фурье, доступные в Octave. Быстрые преобразования Фурье вычисляются с помощью библиотек FFTW или FFTPACK, в зависимости от того, как сконфигурирована Octave.

: y = fft (x) ¶
: y = fft (x, n) ¶
: y = fft (x, n, dim) ¶

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

FFT вычисляется вдоль первого неединичного измерения массива. Таким образом, если x — матрица, fft (x) вычисляет FFT для каждого столбца x.

Если вызывается с двумя аргументами, n ожидается, что это целое число, определяющее количество элементов x, которые необходимо использовать, или пустая матрица, чтобы указать, что её значение следует игнорировать. Если n больше размерности, вдоль которой вычисляется FFT, то x изменяется в размерах и дополняется нулями. В противном случае, если n меньше размерности, вдоль которой вычисляется FFT, то x усекается.

Если вызывается с тремя аргументами, dim — целое число, определяющее измерение матрицы, вдоль которого выполняется FFT.

См. также: ifft, fft2, fftn, fftw.

: x = ifft (y) ¶
: x = ifft (y, n) ¶
: x = ifft (y, n, dim) ¶

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

Обратное FFT вычисляется вдоль первого неединичного измерения массива. Таким образом, если y — матрица, ifft (y) вычисляет обратное FFT для каждого столбца y.

Если вызывается с двумя аргументами, n ожидается, что это целое число, определяющее количество элементов y, которые необходимо использовать, или пустая матрица, чтобы указать, что её значение следует игнорировать. Если n больше размерности, вдоль которой вычисляется обратное FFT, то y изменяется в размерах и дополняется нулями. В противном случае, если n меньше размерности, вдоль которой вычисляется обратное FFT, то y усекается.

Если вызывается с тремя аргументами, dim — целое число, определяющее измерение матрицы, вдоль которого выполняется обратное FFT.

См. также: fft, ifft2, ifftn, fftw.

: B = fft2 (A) ¶
: B = fft2 (A, m, n) ¶

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

Дополнительные аргументы m и n могут использоваться для указания количества строк и столбцов A, которые необходимо использовать. Если любой из них больше размера A, то A изменяется в размерах и дополняется нулями.

Если A — многомерная матрица, то каждая двумерная подматрица A обрабатывается отдельно.

См. также: ifft2, fft, fftn, fftw.

: A = ifft2 (B) ¶
: A = ifft2 (B, m, n) ¶

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

Дополнительные аргументы m и n могут использоваться для указания количества строк и столбцов B, которые необходимо использовать. Если любой из них больше размера B, то B изменяется в размерах и дополняется нулями.

Если B — многомерная матрица, то каждая двумерная подматрица B обрабатывается отдельно.

См. также: fft2, ifft, ifftn, fftw.

: B = fftn (A) ¶
: B = fftn (A, size) ¶

Вычислить N-мерное дискретное преобразование Фурье A с использованием алгоритма быстрого преобразования Фурье (FFT).

Дополнительный векторный аргумент size может использоваться для указания размеров массива, который будет использоваться. Если элемент size меньше соответствующего измерения A, то измерение A усекается перед выполнением FFT. В противном случае, если элемент size больше соответствующего измерения, то A изменяется в размерах и дополняется нулями.

См. также: ifftn, fft, fft2, fftw.

: A = ifftn (B) ¶
: A = ifftn (B, size) ¶

Вычислить обратное N-мерное дискретное преобразование Фурье B с использованием алгоритма быстрого преобразования Фурье (FFT).

Дополнительный векторный аргумент size может использоваться для указания размеров массива, который будет использоваться. Если элемент size меньше соответствующего измерения B, то измерение B усекается перед выполнением обратного FFT. В противном случае, если элемент size больше соответствующего измерения, то B изменяется в размерах и дополняется нулями.

См. также: fftn, ifft, ifft2, fftw.

Octave использует библиотеки FFTW для выполнения вычислений FFT. При запуске и инициализации Octave библиотек FFTW, они считывают системный файл (в Unix-системах, как правило, /etc/fftw/wisdom), содержащий информацию, полезную для ускорения вычислений FFT. Эта информация называется мудростью. Системный файл позволяет использовать мудрость всеми приложениями, использующими библиотеки FFTW.

Используйте функцию fftw для генерации и сохранения мудрости. С помощью утилит, поставляемых вместе с библиотеками FFTW (fftw-wisdom в Unix-системах), вы даже можете добавить мудрость, сгенерированную Octave, в системный файл мудрости.

: method = fftw ("planner") ¶
: fftw ("planner", method) ¶
: wisdom = fftw ("dwisdom") ¶
: fftw ("dwisdom", wisdom) ¶
: nthreads = fftw ("threads") ¶
: fftw ("threads", nthreads) ¶

Управление данными мудрости FFTW.

Данные мудрости могут значительно ускорить вычисления БПФ, но подразумевают начальные затраты на их вычисление. При инициализации библиотек FFTW они считывают системный файл мудрости (обычно в /etc/fftw/wisdom), что позволяет обмениваться мудростью между приложениями, отличными от Octave. В качестве альтернативы, можно использовать функцию fftw для импорта мудрости. Например,

wisdom = fftw ("dwisdom")

сохранит используемую в Octave мудрость в строку wisdom. Затем эту строку можно сохранить в файл и восстановить с помощью команд save и load соответственно. Эту существующую мудрость можно повторно импортировать следующим образом

fftw ("dwisdom", wisdom)

Если wisdom — пустая строка, то мудрость очищается.

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

"estimate"

Указывает, что измерение времени выполнения оптимального способа вычисления конкретного значения не выполняется, и используется простая эвристика для выбора (вероятно, неоптимального) плана. Преимущество этого метода заключается в том, что накладные расходы на генерацию плана минимальны или отсутствуют, что подходит для преобразования Фурье, которое будет вычисляться один раз.

"measure"

В этом случае рассматривается ряд алгоритмов для выполнения преобразования, и лучший выбирается на основе времени их выполнения.

"patient"

Аналогично "measure", но рассматривается более широкий спектр алгоритмов.

"exhaustive"

Подобно "measure", но рассматриваются все возможные алгоритмы, которые могут быть использованы для обработки преобразования.

"hybrid"

Поскольку измерение времени выполнения алгоритма может быть дорогостоящим, это компромисс, где "measure" используется для преобразований размером до 8192, а свыше используется метод "estimate".

По умолчанию используется метод "estimate". Текущий метод можно запросить с помощью

method = fftw ("planner")

или установить с помощью

fftw ("planner", method)

Обратите внимание, что рассчитанная мудрость будет потеряна при перезапуске Octave. Однако данные мудрости могут быть загружены повторно, если они сохранены в файле, как описано выше. Файлы сохраненной мудрости не следует использовать на разных платформах, поскольку они не будут эффективными, и смысл вычисления мудрости теряется.

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

fftw ("threads", NTHREADS)

Обратите внимание, что Octave должен быть скомпилирован с поддержкой многопоточного FFTW для этой функции. По умолчанию используется меньшее из числа (логических) процессоров, доступных текущему процессу, или 3.

См. также: fft, ifft, fft2, ifft2, fftn, ifftn.

: c = fftconv (x, y) ¶
: c = fftconv (x, y, n) ¶

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

c = fftconv (x, y) возвращает вектор длиной, равной length (x) + length (y) - 1. Если x и y — векторы коэффициентов двух многочленов, возвращаемое значение — вектор коэффициентов произведения многочленов.

Вычисление использует БПФ, вызывая функцию fftfilt. Если задан необязательный аргумент n, используется БПФ с размером N.

См. также: deconv, conv, conv2.

: y = fftfilt (b, x) ¶
: y = fftfilt (b, x, n) ¶

Фильтрация x с помощью FIR-фильтра b с использованием БПФ.

Если x — матрица, фильтруется каждый столбец матрицы.

С необязательным третьим аргументом n, fftfilt использует метод наложения-сложения для фильтрации x с помощью b с использованием БПФ размера N. Размер БПФ должен быть чётной степенью 2 и должен быть больше или равен длине b. Если заданное n не соответствует этим критериям, оно автоматически корректируется до ближайшего значения, которое соответствует.

См. также: filter, filter2.

: y = filter (b, a, x) ¶
: [y, sf] = filter (b, a, x, si) ¶
: [y, sf] = filter (b, a, x, [], dim) ¶
: [y, sf] = filter (b, a, x, si, dim) ¶

Применить 1-мерный цифровой фильтр к данным x.

filter возвращает решение следующего линейного, неизменяемого во времени разностного уравнения:

N                   M
SUM a(k+1) y(n-k) = SUM b(k+1) x(n-k)    for 1<=n<=length(x)
k=0                 k=0

где N=length(a)-1 и M=length(b)-1. Результат вычисляется по первой не-одноэлементной размерности x или по dim, если задано.

Эквивалентная форма уравнения:

N                   M
y(n) = - SUM c(k+1) y(n-k) + SUM d(k+1) x(n-k)  for 1<=n<=length(x)
         k=1                 k=0

где c = a/a(1) и d = b/a(1).

Если четвёртый аргумент si задан, он рассматривается как начальное состояние системы, а конечное состояние возвращается как sf. Вектор состояния — это столбец, длина которого равна длине самого длинного вектора коэффициентов минус один. Если si не задан, начальный вектор состояния устанавливается в нули.

В терминах Z-преобразования, y — результат пропуска дискретного сигнала x через систему, характеризуемую следующей рациональной функцией системы:

M
         SUM d(k+1) z^(-k)
         k=0
H(z) = ---------------------
            N
       1 + SUM c(k+1) z^(-k)
           k=1

См. также: filter2, fftfilt, freqz.

: y = filter2 (b, x) ¶
: y = filter2 (b, x, shape) ¶

Применение 2-мерного FIR-фильтра b к x.

Если аргумент shape задан, возвращается массив нужной формы. Возможные значения:

"full"

дополнение x нулями со всех сторон перед фильтрацией.

"same"

недополненное x (по умолчанию)

"valid"

обрезка x после фильтрации, чтобы исключить эффекты края.

Обратите внимание, что это просто вариация свертки, с обратным порядком параметров и b, повернутым на 180 градусов.

См. также: conv2.

: [h, w] = freqz (b, a, n, "whole") ¶
: [h, w] = freqz (b) ¶
: [h, w] = freqz (b, a) ¶
: [h, w] = freqz (b, a, n) ¶
: h = freqz (b, a, w) ¶
: [h, w] = freqz (…, Fs) ¶
: freqz (…) ¶

Возвращает комплексную частотную характеристику h рационального IIR-фильтра, коэффициенты числителя и знаменателя которого равны b и a соответственно.

Характеристика вычисляется в n угловых частотах от 0 до 2*pi.

Выходное значение w — вектор частот.

Если a опущено, знаменатель принимается равным 1 (это соответствует простому FIR-фильтру).

Если n опущено, используется значение 512. Для наибольшей скорости вычислений n должно быть произведением малого числа малых простых чисел.

Если четвёртый аргумент, "whole", опушен, характеристика вычисляется в частотах от 0 до pi.

freqz (b, a, w)

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

[…] = freqz (…, Fs)

Возвращать частоты в Гц вместо радиан, предполагая частоту дискретизации Fs. Если вы вычисляете характеристику в заданных частотах w, эти частоты должны быть запрошены в Гц, а не в радианах.

freqz (…)

Построить график амплитудной и фазовой характеристик h вместо их возвращения.

См. также: freqz_plot.

: freqz_plot (w, h) ¶
: freqz_plot (w, h, freq_norm) ¶

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

Если необязательный аргумент freq_norm имеет значение true, вектор частот w задан в нормированных радианах. Если freq_norm имеет значение false или не задан, то w измеряется в Герцах.

См. также: freqz.

: y = sinc (x) ¶

Вычислить функцию sinc.

Возвращает sin(pi*x) / (pi*x).

: b = unwrap (x) ¶
: b = unwrap (x, tol) ¶
: b = unwrap (x, tol, dim) ¶

Раскрутить фазы в радианах, добавляя или вычитая кратные 2*pi по мере необходимости, чтобы удалить скачки, превышающие tol.

tol по умолчанию равен pi.

Раскручивание выполняется вдоль измерения dim. Если dim не указан, используется первое измерение, не являющееся одинаковым.

: [a, b] = arch_fit (y, x, p, iter, gamma, a0, b0) ¶

Подогнать модель ARCH к временным рядам y с использованием алгоритма подбора в оригинальной статье Энгеля про ARCH.

Модель имеет вид

y(t) = b(1) * x(t,1) + … + b(k) * x(t,k) + e(t),
h(t) = a(1) + a(2) * e(t-1)^2 + … + a(p+1) * e(t-p)^2

в котором e(t) имеет распределение N(0, h(t)), заданном для временного ряда y до момента времени t-1 и матрицы (обычных) регрессоров x до момента времени t. Порядок регрессии дисперсии остатка задаётся параметром p.

Если вызов имеет вид arch_fit (y, k, p) с положительным целым числом k, подогнать ARCH(k, p) процесс, то есть выполнить вышеуказанное действие с t-ой строкой x следующим образом

[1, y(t-1), …, y(t-k)]

Необязательно можно задать число итераций iter, множитель обновления gamma и начальные значения a0 и b0 для алгоритма подбора.

: y = arch_rnd (a, b, t) ¶

Моделировать последовательность ARCH длиной t с коэффициентами AR b и CH a.

Результат y(t) соответствует модели

y(t) = b(1) + b(2) * y(t-1) + … + b(lb) * y(t-lb+1) + e(t),

где e(t), при заданном y до момента времени t-1, имеет распределение N(0, h(t)) с

h(t) = a(1) + a(2) * e(t-1)^2 + … + a(la) * e(t-la+1)^2
: [pval, lm] = arch_test (y, x, p) ¶

Для линейной модели регрессии

y = x * b + e

выполнить тест Лагранжа — Мультипликатора (LM) нулевой гипотезы отсутствия условной гетероскедастичности против альтернативной гипотезы CH(p).

То есть модель имеет вид

y(t) = b(1) * x(t,1) + … + b(k) * x(t,k) + e(t),

при заданном y до момента времени t-1 и x до момента времени t, e(t) имеет распределение N(0, h(t)) с

h(t) = v + a(1) * e(t-1)^2 + … + a(p) * e(t-p)^2,

и нулевая гипотеза — a(1) == … == a(p) == 0.

Если второй аргумент — скалярное целое число k, выполнить тот же тест в линейной авторегрессионной модели порядка k, то есть с

[1, y(t-1), …, y(t-k)]

в качестве t-ой строки x.

В случае нулевой гипотезы LM приблизительно имеет распределение хи-квадрат со p степенями свободы, и pval — p-значение (1 минус функция распределения этого распределения в точке LM) теста.

Если не указаны аргументы возврата, p-значение отображается.

: x = arma_rnd (a, b, v, t, n) ¶

Возвращает симуляцию ARMA-модели.

ARMA-модель определяется следующим образом

x(n) = a(1) * x(n-1) + … + a(k) * x(n-k)
     + e(n) + b(1) * e(n-1) + … + b(l) * e(n-l)

где k — длина вектора a, l — длина вектора b, и e — гауссовский белый шум с дисперсией v. Функция возвращает вектор длиной t.

Необязательный параметр n задаёт количество фиктивных x(i) используемых для инициализации, т. е. генерируется последовательность длиной t+n, и возвращается x(n+1:t+n). Если n опущено, n = 100.

: x = autoreg_matrix (y, k) ¶

Для временного ряда (вектора) y возвращает матрицу с единицами в первом столбце и первыми k запаздывающими значениями y в других столбцах.

Другими словами, для t > k, [1, y(t-1), …, y(t-k)] является t-ой строкой результата.

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

: c = bartlett (m) ¶

Возвращает коэффициенты фильтра окна Бартлетта (треугольного) длиной m.

Определение окна Бартлетта см., например, в A.V. Oppenheim & R. W. Schafer, Discrete-Time Signal Processing.

: c = blackman (m) ¶
: c = blackman (m, "periodic") ¶
: c = blackman (m, "symmetric") ¶

Возвращает коэффициенты фильтра окна Блэкмана длиной m.

Если необязательный аргумент "periodic" задан, возвращается периодическая форма окна. Это эквивалентно окну длиной m+1 с удалённым последним коэффициентом. Необязательный аргумент "symmetric" эквивалентен отсутствию второго аргумента.

Определение окна Блэкмана см., например, в A.V. Oppenheim & R. W. Schafer, Discrete-Time Signal Processing.

: y = detrend (x, p) ¶

Если x является вектором, detrend (x, p) удаляет наилучшую аппроксимацию многочлена степени p из данных x.

Если x является матрицей, detrend (x, p) выполняется то же самое для каждого столбца в x.

Второй аргумент p является необязательным. Если он не указан, предполагается значение 1. Это соответствует удалению линейной тенденции.

Степень многочлена также может быть задана в виде строки, в этом случае p должен быть либо "constant" (соответствует p=0) либо "linear" (соответствует p=1).

См. также: polyfit.

: [d, dd] = diffpara (x, a, b) ¶

Возвращает оценку d для параметра дифференцирования интегрированного временного ряда.

Для оценки используются частоты из [2*pi*a/t, 2*pi*b/T]. Если b опущено, используется интервал [2*pi/T, 2*pi*a/T]. Если оба b и a опущены, то a = 0.5 * sqrt (T) и b = 1.5 * sqrt (T) используется, где T — размер выборки. Если x является матрицей, параметр дифференцирования каждого столбца оценивается.

Оценки для всех частот в описанных выше интервалах возвращаются в dd.

Значение d просто является средним значением dd.

Ссылка: P.J. Brockwell & R.A. Davis. Временные ряды: Теория и методы. Springer 1987.

: [newphi, newv] = durbinlevinson (c, oldphi, oldv) ¶

Выполнить один шаг алгоритма Дарбина-Левинсона.

Вектор c задает автоковариации [gamma_0, …, gamma_t] от лага 0 до t, oldphi задает коэффициенты на основе c(t-1), а oldv задает соответствующую ошибку.

Если oldphi и oldv опущены, выполняются все шаги с 1 по t алгоритма.

: y = fftshift (x) ¶
: y = fftshift (x, dim) ¶

Выполнить сдвиг вектора x, для использования с функциями fft и ifft, чтобы переместить частоту 0 в центр вектора или матрицы.

Если x является вектором из N элементов, соответствующих N временным отсчетам с шагом dt, то fftshift (fft (x)) соответствует частотам

f = [ -(ceil((N-1)/2):-1:1), 0, (1:floor((N-1)/2)) ] * df

где df = 1 / (N * dt).

Если x является матрицей, то же самое справедливо для строк и столбцов. Если x является массивом, то же самое справедливо для каждого измерения.

Необязательный аргумент dim может использоваться для ограничения измерения, по которому происходит перестановка.

См. также: ifftshift.

: y = ifftshift (x) ¶
: y = ifftshift (x, dim) ¶

Отменить действие функции fftshift.

Для векторов x чётной длины fftshift является обратной себе функцией, но для нечётных длин различия незначительные.

См. также: fftshift.

: fd = fractdiff (x, d) ¶

Вычислить дробные разности (1-L)^d x, где L обозначает оператор запаздывания, а d больше -1.

: c = hamming (m) ¶
: c = hamming (m, "periodic") ¶
: c = hamming (m, "symmetric") ¶

Возвращает коэффициенты фильтра окна Хамма для длины m.

Если указан необязательный аргумент "periodic", возвращается периодическая форма окна. Это эквивалентно окну длины m+1 с удаленным последним коэффициентом. Необязательный аргумент "symmetric" эквивалентен отсутствию второго аргумента.

Для определения окна Хамма см., например, A.V. Oppenheim & R. W. Schafer, Цифровое обработка сигналов.

: c = hanning (m) ¶
: c = hanning (m, "periodic") ¶
: c = hanning (m, "symmetric") ¶

Возвращает коэффициенты фильтра окна Ханна для длины m.

Если указан необязательный аргумент "periodic", возвращается периодическая форма окна. Это эквивалентно окну длины m+1 с удаленным последним коэффициентом. Необязательный аргумент "symmetric" эквивалентен отсутствию второго аргумента.

Для определения окна Ханна см., например, A.V. Oppenheim & R. W. Schafer, Цифровое обработка сигналов.

: H = hurst (x) ¶

Оценить параметр Херста выборки x с помощью статистики масштабированного диапазона.

Если x является матрицей, параметр оценивается для каждого столбца.

: pp = pchip (x, y) ¶
: yi = pchip (x, y, xi) ¶

Возвращает полином кубической интерполяции по Хермиту (pchip) для точек x и y.

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

При вызове с третьим аргументом, pchip вычисляет полином pchip в точках xi. Третий вариант вызова эквивалентен ppval (pchip (x, y), xi).

Переменная x должна быть строго монотонным вектором (либо возрастающим, либо убывающим) длины n.

y может быть вектором или массивом. Если y является вектором, то его длина должна совпадать с длиной n вектора x. Если y является массивом, размер y должен иметь вид [s1, s2, …, sk, n]. Массив преобразуется внутри в матрицу, где ведущее измерение задается s1 * s2 * … * sk, и каждая строка этой матрицы затем обрабатывается отдельно. Обратите внимание, что это прямо противоположно interp1, но сделано для совместимости с MATLAB.

См. также: spline, ppval, mkpp, unmkpp.

: [Pxx, w] = periodogram (x) ¶
: [Pxx, w] = periodogram (x, win) ¶
: [Pxx, w] = periodogram (x, win, nfft) ¶
: [Pxx, f] = periodogram (x, win, nfft, Fs) ¶
: [Pxx, f] = periodogram (…, "range") ¶
: periodogram (…) ¶

Возвращает периодограмму (Плотность спектральной мощности) сигнала x.

Возможные входные данные:

x

вектор данных. Если x вещественный, оценивается односторонний спектр. Если x комплексный или "range" указывает "twosided", оценивается полный спектр.

win

вектор весов окна. Если окно пустое или не указано, используется прямоугольное окно по умолчанию. В противном случае, окно применяется к сигналу (x .* win) перед вычислением периодограммы. Данные окна должны быть вектором той же длины, что и x.

nfft

число бинов частоты. По умолчанию 256 или ближайшая большая степень двойки, чем длина x (max (256, 2.^nextpow2 (length (x)))). Если nfft больше длины входных данных, то x дополняется нулями до длины nfft.

Fs

частота дискретизации. По умолчанию 1.

range

"Диапазон" спектра. "onesided" вычисляет спектр с [0:nfft/2+1]. "twosided" вычисляет спектр с [0:nfft-1].

Дополнительный второй выход w представляет собой нормированные угловые частоты. Для одностороннего вычисления w находится в диапазоне [0, pi], если nfft четное, и [0, pi), если nfft нечетное. Аналогично, для двустороннего вычисления w находится в диапазоне [0, 2*pi] или [0, 2*pi), в зависимости от nfft.

Если указана частота дискретизации, Fs, то выходные частоты f будут в диапазоне [0, Fs/2] или [0, Fs/2) для односторонних вычислений. Для двусторонних вычислений диапазон будет [0, Fs).

При вызове без вывода, периодограмма сразу отображается в текущем окне графика.

См. также: fft.

: y = sinetone (freq, rate, sec, ampl) ¶

Возвращает синусоидальный тон с частотой freq, длительностью sec секунд, частотой дискретизации rate и амплитудой ampl.

Аргументы freq и ampl могут быть векторами одинаковой размерности.

Значения по умолчанию: rate = 8000, sec = 1, и ampl = 64.

См. также: sinewave.

: y = sinewave (m, n, d) ¶

Возвращает вектор длиной m с i-ым элементом, равным sin (2 * pi * (i+d-1) / n).

Значение по умолчанию для d — 0, а значение по умолчанию для n — m.

См. также: sinetone.

: sde = spectral_adf (c) ¶
: sde = spectral_adf (c, win) ¶
: sde = spectral_adf (c, win, b) ¶

Возвращает оценщик спектральной плотности, заданный вектором автоковариаций c, именем окна win и шириной полосы b.

Имя окна, например, "triangle" или "rectangle", используется для поиска функции под названием win_lw.

Если win опущено, используется треугольное окно.

Если b опущено, используется 1 / sqrt (length (x)).

См. также: spectral_xdf.

: sde = spectral_xdf (x) ¶
: sde = spectral_xdf (x, win) ¶
: sde = spectral_xdf (x, win, b) ¶

Возвращает оценщик спектральной плотности, заданный вектором данных x, именем окна win и шириной полосы b.

Имя окна, например, "triangle" или "rectangle", используется для поиска функции под названием win_sw.

Если win опущено, используется треугольное окно.

Если b опущено, используется 1 / sqrt (length (x)).

См. также: spectral_adf.

: savg = spencer (x) ¶

Возвращает 15-точечную скользящую среднюю Спенсера каждого столбца x.

: y = stft (x) ¶
: y = stft (x, win_size) ¶
: y = stft (x, win_size, inc) ¶
: y = stft (x, win_size, inc, num_coef) ¶
: y = stft (x, win_size, inc, num_coef, win_type) ¶
: [y, c] = stft (…) ¶

Вычисляет кратковременное преобразование Фурье вектора x с num_coef коэффициентами, применяя окно размера win_size и инкремент inc.

Перед вычислением преобразования Фурье применяется одно из следующих окон:

"hanning"

win_type = 1

"hamming"

win_type = 2

"rectangle"

win_type = 3

Имена окон могут быть переданы в виде строк или числами win_type.

По умолчанию используются следующие параметры: win_size = 80, inc = 24, num_coef = 64, и win_type = 1.

y = stft (x, …) возвращает абсолютные значения коэффициентов Фурье в соответствии с num_coef положительными частотами.

[y, c] = stft (x, …) возвращает полную матрицу STFT y и 3-элементный вектор c, содержащий размер окна, инкремент и тип окна, необходимый для функции synthesis.

См. также: synthesis.

: x = synthesis (y, c) ¶

Вычисляет сигнал по его кратковременному преобразованию Фурье y и 3-элементному вектору c, определяющему размер окна, инкремент и тип окна.

Значения y и c можно получить из

[y, c] = stft (x , …)

См. также: stft.

: [a, v] = yulewalker (c) ¶

Оценивает модель AR (p) методом Юла-Уокера, заданной вектором c автоковариаций [gamma_0, …, gamma_p].

Возвращает коэффициенты AR, a, и дисперсию белого шума, v.

© 1996–2023 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v8.1.0/Signal-Processing.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API