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.
См. также: обратное fft, 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.
-
:
B =fft2(A)¶ -
:
B =fft2(A, m, n)¶ -
Вычисляет двумерное дискретное преобразование Фурье массива A с помощью алгоритма быстрого преобразования Фурье (FFT).
Дополнительные аргументы m и n могут быть использованы для задания количества строк и столбцов A для использования. Если любой из этих аргументов больше размера A, A переформатируется и дополняется нулями.
Если A является многомерным массивом, каждая двумерная подматрица A обрабатывается отдельно.
-
:
A =ifft2(B)¶ -
:
A =ifft2(B, m, n)¶ -
Вычисляет обратное двумерное дискретное преобразование Фурье массива B с помощью алгоритма быстрого преобразования Фурье (FFT).
Дополнительные аргументы m и n могут быть использованы для задания количества строк и столбцов B для использования. Если любой из этих аргументов больше размера B, B переформатируется и дополняется нулями.
Если B является многомерным массивом, каждая двумерная подматрица B обрабатывается отдельно.
См. также: fft2, обратное fft, ifftn, fftw.
-
:
B =fftn(A)¶ -
:
B =fftn(A, size)¶ -
Вычисляет N-мерное дискретное преобразование Фурье массива A с помощью алгоритма быстрого преобразования Фурье (FFT).
Дополнительный векторный аргумент size может быть использован для задания размеров массива. Если какой-либо элемент size меньше соответствующей размерности A, то размерность A усекается перед выполнением FFT. В противном случае, если какой-либо элемент size больше соответствующей размерности, то A переформатируется и дополняется нулями.
См. также: обратное fftn, fft, fft2, fftw.
-
:
A =ifftn(B)¶ -
:
A =ifftn(B, size)¶ -
Вычисляет обратное N-мерное дискретное преобразование Фурье массива B с помощью алгоритма быстрого преобразования Фурье (FFT).
Дополнительный векторный аргумент size может быть использован для задания размеров массива. Если какой-либо элемент size меньше соответствующей размерности B, то размерность B усекается перед выполнением обратного FFT. В противном случае, если какой-либо элемент size больше соответствующей размерности, то B переформатируется и дополняется нулями.
См. также: fftn, обратное fft, ifft2, fftw.
Octave использует библиотеки FFTW для вычисления FFT. Когда Octave запускается и инициализирует библиотеки FFTW, они считывают системный файл (в Unix-системах, как правило, /etc/fftw/wisdom), содержащий информацию, полезную для ускорения вычислений FFT. Эта информация называется wisdom. Системный файл позволяет делиться wisdom между всеми приложениями, использующими библиотеки FFTW.
Используйте функцию fftw для генерации и сохранения wisdom. С помощью утилит, поставляемых вместе с библиотеками FFTW (fftw-wisdom в Unix-системах), можно даже добавить wisdom, сгенерированный Octave, в системный файл wisdom.
-
:
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.
-
:
c =fftconv(x, y)¶ -
:
c =fftconv(x, y, n)¶ -
Свертка двух векторов с использованием преобразования Фурье для вычислений.
c = fftconv (x, y)возвращает вектор длиной, равнойlength (x) + length (y) - 1. Если x и y — векторы коэффициентов двух многочленов, возвращаемое значение — вектор коэффициентов произведения многочленов.Вычисление использует преобразование Фурье, вызывая функцию
fftfilt. Если указан необязательный аргумент n, используется N-точечное преобразование Фурье.
-
:
y =fftfilt(b, x)¶ -
:
y =fftfilt(b, x, n)¶ -
Фильтрация x с помощью FIR-фильтра b с использованием преобразования Фурье.
Если x — матрица, фильтруется каждый столбец матрицы.
При наличии необязательного третьего аргумента n,
fftfiltиспользуется метод перекрытия-сложения для фильтрации x с помощью b с использованием N-точечного преобразования Фурье. Размер преобразования Фурье должен быть четной степенью 2 и должен быть больше или равен длине b. Если указанное n не удовлетворяет этим критериям, оно автоматически корректируется до ближайшего значения, которое удовлетворяет.
-
:
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-D цифрового фильтра к данным 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=длина(a)-1 и M=длина(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
-
:
y =filter2(b, x)¶ -
:
y =filter2(b, x, shape)¶ -
Применение 2-D 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.
unwrapбудет работать вдоль измерения dim. Если dim не указан, он по умолчанию равен первому неединичному измерению.unwrapигнорирует все неконечные значения входных данных (Inf, NaN, NA).
-
:
[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 с коэффициентами авторегрессии 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-value отображается.
-
:
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. Time Series: Theory and Methods. 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.
-
:
x =ifftshift(y)¶ -
:
x =ifftshift(y, 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, Discrete-Time Signal Processing.
-
:
c =hanning(m)¶ -
:
c =hanning(m, "periodic")¶ -
:
c =hanning(m, "symmetric")¶ -
Возвращает коэффициенты фильтра окна Хэннинга длиной m.
Если задан необязательный аргумент
"periodic", возвращается периодическая форма окна. Это эквивалентно окну длиной m+1 с удаленным последним коэффициентом. Необязательный аргумент"symmetric"эквивалентен отсутствию второго аргумента.Для определения окна Хэннинга см., например, A.V. Oppenheim & R. W. Schafer, Discrete-Time Signal Processing.
-
:
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.
-
:
[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 и вектор c из 3 элементов, содержащий размер окна, приращение и тип окна, необходимый для функцииsynthesis.См. также: synthesis.
-
:
x =synthesis(y, c)¶ -
Вычислить сигнал по его кратковременному преобразованию Фурье y и вектору c из 3 элементов, определяющему размер окна, приращение и тип окна.
Значения 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/v9.2.0/Signal-Processing.html